2012-03-23 131 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; 
}