2011-11-19 33 views
0

我有2個序列。一個(讓我們調用這個cvSeq x),其中包含一些輪廓(從cvFindContours派生)和第二個(讓我們調用這個cvSeq y),我已經使用了cvCreateSeq,但實際上並沒有任何內容。我循環遍歷x中的所有輪廓,並且如果輪廓符合特定條件,我將它添加到y中。我能夠做循環,但是我不知道如何在y中添加一個輪廓,如果它符合標準。處理OpenCV中的序列?

有誰知道如何在一個序列中添加一個輪廓到另一個序列(這是空的)?代碼示例將不勝感激。

PS:cvStartFindContours不是一個選項。

回答

1

解決方案是使用C++接口,而不是舊接口。使用起來要簡單得多。輪廓存儲爲vector<vector<Point>>

可以以類似的方式使用它:

Mat myImg = (Mat)myIplImage; 
//or better 
Mat myImg = imread("image.jpg"); 

vector<vector<Point>> contours; 

cv::findContours(myImg, contours,...); 

現在進入輪廓和點是非常簡單和容易

注意我沒有檢查代碼準確性。您必須驗證發送參數的正確方法,以查找曲面,以及其他所有內容。

+0

謝謝。還有一個問題 - 你說輪廓被存儲爲矢量>。這仍然適用於單個輪廓嗎?這不會被存儲爲矢量? – fdh

+0

應以與其他輪廓存儲相同的方式進行存儲。所以包含輪廓的矢量將具有size()== 1。 – Sam

+0

明白了。謝謝。 – fdh