我有以下问题:
我的二进制图像只包含黑白像素。如何计算图像某个区域的黑色像素数?
例如,我想知道图像区域坐标中的黑色像素数量是多少:
[175,145],[229,145],[175,221],[229,221] =顶部L& R和下L& R坐标
我知道如何制作这个,请......:)
谢谢!
答案 0 :(得分:0)
通过遍历行,然后遍历该行中的每个像素(就像电子表格中的每个像素一样),您可以测试每个像素并将其添加到计数器中。
PHP中有许多与图像一起使用的函数。我用于类似目的的是GD。您可以使用imagecolorat直接测试每个像素的RGB值。
伪代码
$image = imagecreatefromjpeg('/path/to/image.jpg'); //replace with your image type
$totalBlack = 0;
$area = array( //for your area to evaluate
array(175, 145),
array(229, 145),
array(175, 221),
array(229, 221)
);
for ($y = $area[0][1]; $y < $area[2][1]; $y++ ) {
for($x = $area[0][0]; $x < $area[3][0]; $x++ ) {
$value = imagecolorat($image, $x, $y);
if ($value == /*test for black*/) {
$totalBlack++;
}
}
}
使用ImageMagick
您可以将图像裁剪为提供的x,y值,然后使用ImageMagick的比较功能将整个部分与纯白图像进行比较。