如何按颜色过滤OpenCv图像中的矩形区域?

时间:2012-03-23 09:17:30

标签: opencv colors filtering

使用以下代码检测灰度图像中的所有方块:

for (;contours != null; contours = contours.HNext)
{
    var approxContour = contours.ApproxPoly(contours.Perimeter * 0.05,
       contours.Storage);

    var rect = approxContour.GetMinAreaRect();

    if (IsSquare(rect, rect.size.Height * 0.1f))
      boxes.Add(rect);
}

我正在寻找一种根据颜色过滤方块的方法。例如。我想删除平均灰度值小于128的所有正方形。

我必须使用哪个OpenCv功能?

1 个答案:

答案 0 :(得分:2)

您必须使用ROI和GetAverage():

var rect = approxContour.GetMinAreaRect();
gray.ROI = approxContour.BoundingRectangle;
var average = gray.GetAverage();
gray.ROI = Rectangle.Empty;

if (average.Intensity > 100)
{
    continue;
}