2012-10-17 27 views
2

在我的項目中我使用cvFindContours來檢測對象。 有了結果,我想標記輸入圖像的roi(如果檢測到的斑點之間的距離很高,我想迭代roi的標記)。如何合併2個CvRects與cvContour結果的最小距離

我的問題是,從找到的斑點幾個rects重疊或是一個更大的斑點的一部分。 是否有一個快速的解決方案來移除內部斑點並以最小距離合並斑點?

例如:

+0

增加一個示例圖像表示讚賞。 –

回答

1

您可以檢查是否矩形使用operator& of cv::Rect overlaping:

cv::Rect a(x1,y1,w1,h1); 
cv::Rect b(x2,y2,w2,h2); 
cv::Rect intersect = a&b; // if intersect is not empty, the rect overlaps 

至於你的「最小距離」,有沒有辦法做到這一點使用標準OpenCV的功能。你必須確定矩形之間的「距離」是什麼:它們中心之間的距離(不推薦)?邊界之間的距離?然後提醒你有2個維度。你可以做到,但你必須自己編寫代碼。

+0

嗨,我在JavaCV中實現了這一點。謝謝 –