2012-03-23 175 views
0

用下面的代码我听出灰度图像所有的广场:如何按颜色过滤OpenCV图像中的矩形区域?

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的功能使用?

回答

2

你必须使用的ROI和GetAverage():

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

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