处理OpenCV中的序列?

时间:2011-11-19 02:18:31

标签: c++ opencv sequences contour

我有2个序列。一个(让我们称之为cvSeq x),它包含许多轮廓(从cvFindContours派生)和第二个(让我们称之为cvSeq y),我已经使用了cvCreateSeq,但实际上并没有任何内容。我循环遍历x中的所有轮廓,如果轮廓符合特定条件,我将其添加到y。我能够进行循环,但是如果它符合标准,我不知道如何在x到y中添加轮廓。

有谁知道如何将序列中的轮廓添加到另一个序列(即空)?代码示例将不胜感激。

PS:cvStartFindContours不是一个选项。

1 个答案:

答案 0 :(得分:1)

解决方案是使用C ++接口,而不是旧接口。它使用起来要简单得多。轮廓存储为vector<vector<Point>>

您可以以类似的方式使用它:

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

vector<vector<Point>> contours;

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

现在访问轮廓和点更简单,更容易

注意我没有检查代码的准确性。您必须验证将params发送到findContours的正确方法,以及所有其他方法。