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

时间:2016-10-11 03:31:19

标签: javascript php jquery

我有以下问题:

我的二进制图像只包含黑白像素。如何计算图像某个区域的黑色像素数?

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

[175,145],[229,145],[175,221],[229,221] =顶部L& R和下L& R坐标

我知道如何制作这个,请......:)

谢谢!

1 个答案:

答案 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的比较功能将整个部分与纯白图像进行比较。