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