簡體   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