如何计算二进制图像中每个区域的像素数(Android)

时间:2015-05-21 01:35:14

标签: android image-processing computer-vision

我拍了两个物体的照片。我删除噪音,将RGB转换为灰度,提高对比度并将灰度转换为biner。最后,我想计算每个区域的像素数,在这种情况下可以看到图片。我如何计算android中的每个区域?我必须提前检测到方形区域吗?并减少像素方形区域的像素总数?任何的想法?我应该使用什么算法?

enter image description here

2 个答案:

答案 0 :(得分:0)

好的,如果你想"计算"例如,所有黑色像素,您需要在图像上执行两个循环(一个水平和一个垂直)。像这样:

Drawable d = imageView.getDrawable();
Bitmap bitmap = ((BitmapDrawable) d).getBitmap();
for(int x = 0; x < imageView.getWidth();x++){
    for(int y = 0; y < imageView.getWidth();y++){
        int color = bitmap.getPixel(x, y);
        // here you have the color
    }
}

code reference

答案 1 :(得分:0)

您可以反转图像,然后总结Contour的边界矩形中的每个像素。由于黑色= 0且白色= 1,反转黑色的总和将是轮廓中黑色像素的数量。只要边界矩形中没有其他轮廓,它就可以正常工作。