我有2个序列。一个(让我们称之为cvSeq x),它包含许多轮廓(从cvFindContours派生)和第二个(让我们称之为cvSeq y),我已经使用了cvCreateSeq,但实际上并没有任何内容。我循环遍历x中的所有轮廓,如果轮廓符合特定条件,我将其添加到y。我能够进行循环,但是如果它符合标准,我不知道如何在x到y中添加轮廓。
有谁知道如何将序列中的轮廓添加到另一个序列(即空)?代码示例将不胜感激。
PS:cvStartFindContours不是一个选项。
答案 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的正确方法,以及所有其他方法。