[英]Count black pixels in coordinate area
我有以下问题:
我有一个仅包含黑白像素的二进制图像。 如何计算图像特定区域中的黑色像素数?
例如,我想知道在此图像区域坐标中黑色像素的数量是多少:
[175,145],[229,145],[175,221],[229,221] =顶部L&R和下部L&R坐标
知道我如何做到这一点,请... :)
谢谢!
通过遍历行,然后遍历该行中的每个像素(就像一个电子表格一样),您可以测试每个像素并将其添加到计数中。
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的compare函数将整个部分与纯白色图像进行比较。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.