繁体   English   中英

计算坐标区域中的黑色像素

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM