计算坐标区域的黑色像素

Count black pixels in coordinate area

本文关键字:黑色 像素 区域 坐标 计算      更新时间:2023-09-26

我有以下问题:

我有一个只包含黑白像素的二值图像。如何计算图像中特定区域的黑色像素数?

例如,我想知道图像区域坐标中黑色像素的数量:

[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函数将整个部分与纯白色图像进行比较。