opencv:如何填充区域外的 area/edge
opencv: How to fill the area/edge outside a region
下图仅包含阈值处理后的黑白像素。我在此图像的顶部绘制了一个灰色的旋转矩形。现在我想计算这个旋转矩形内的黑色像素数,但不包括白色矩形矩形外的黑色像素(即白色矩形内的像素数)。
最好的方法是什么?我应该用白色像素填充白色矩形之外的区域吗?欢迎任何建议。
如果您知道要搜索的区域的角度和大小,您可以使用此技术将其从图像中裁剪出来:
How to straighten a rotated rectangle area of an image using opencv in python?
(我知道它 Python,但有一个 c++ 等效项)
编辑
您可以使用此代码 return 并打印每个像素的值,这样您就可以了解返回的值类型(如果是二值图像,应该只是 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));
获得这些值后,可能会制作一个计数器,每当像素值超过某个阈值时计数器就会递增
下图仅包含阈值处理后的黑白像素。我在此图像的顶部绘制了一个灰色的旋转矩形。现在我想计算这个旋转矩形内的黑色像素数,但不包括白色矩形矩形外的黑色像素(即白色矩形内的像素数)。
最好的方法是什么?我应该用白色像素填充白色矩形之外的区域吗?欢迎任何建议。
如果您知道要搜索的区域的角度和大小,您可以使用此技术将其从图像中裁剪出来:
How to straighten a rotated rectangle area of an image using opencv in python?
(我知道它 Python,但有一个 c++ 等效项)
编辑
您可以使用此代码 return 并打印每个像素的值,这样您就可以了解返回的值类型(如果是二值图像,应该只是 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));
获得这些值后,可能会制作一个计数器,每当像素值超过某个阈值时计数器就会递增