【发布时间】:2019-03-26 00:08:16
【问题描述】:
如何计算轮廓轮廓(不是边界框)内像素的黑白比例?
图片经过cv::threshold(src, img, 0, 255, cv::THRESH_BINARY | cv::THRESH_OTSU);预处理,再反转img = 255 - img;
我通过cv::RETR_EXTERNAL寻找表格(轮廓)的矩形轮廓。我想计算轮廓内的黑色像素
图像中可能还有其他组件,所以我不能只计算所有非零像素
这是二值化和倒置前的原图
【问题讨论】:
-
您能否准确地说“轮廓的黑白比例”是什么意思?在图像处理中,轮廓通常由 1 像素宽的曲线定义,这让我对这个问题感到困惑。
-
我不是 openCV 方面的专家,所以我可能不会 100% 正确。但我需要计算轮廓内黑白像素的比率
-
轮廓被定义为白色像素。白色像素 = 轮廓,黑色像素 = 无轮廓。所以我还是很困惑。你有一个可视化的例子来说明你称之为黑白像素的轮廓吗?所以也许我们可以就词汇达成一致,看看我能不能帮你:)
-
好的,如果我说我想将轮廓曲线内的所有像素复制到蒙版中怎么办?
-
使用
cv::drawContours创建一个厚度为cv::FILLED的蒙版,然后将cv::countNonZero与蒙版一起使用(以及反转的蒙版)