opencv:如何填充区域外的区域/边缘

时间:2015-02-24 10:34:04

标签: c++ opencv

下面的图像仅包含阈值处理后的黑白像素。我在此图像的顶部绘制一个灰色的旋转矩形。现在我想计算这个旋转矩形内的黑色像素数,但不包括白色矩形矩形外的黑色像素(即白色矩形内的像素数)。

这样做的最佳方法是什么?我应该用白色像素填充白色矩形外面的区域吗?欢迎任何建议。

enter image description here

1 个答案:

答案 0 :(得分:1)

如果您知道要搜索的区域的角度和大小,可以使用此技术将其剪切出图像:

How to straighten a rotated rectangle area of an image using opencv in python?

(我知道它的Python,但有一个c ++等价物)

修改

您可以使用此代码返回并打印每个像素的值,以便您可以了解要返回的值的类型(如果是二进制图像,则应该为0和1/255)

for(int i=0; i<img.rows; i++)
    for(int j=0; j<img.cols; j++) 
        std::cout<<"Value: "<<static_cast<int>(gray_image.at<uchar>(i,j));

获得这些值后,可能会生成一个计数器,每当像素的值超过某个阈值时,该计数器就会递增