处理序列在OpenCV

Dealing with sequences in OpenCV?

本文关键字:OpenCV 处理      更新时间:2023-10-16

我有两个序列。一个(让我们称之为cvSeq x),其中包含许多轮廓(来自cvFindContours)和第二个(让我们称之为cvSeq y),我使用cvCreateSeq,但实际上没有任何东西在它。我循环遍历x中的所有轮廓,如果一个轮廓满足特定的条件,我就把它添加到y中。我可以进行循环,但我不知道如果满足条件,如何将x中的轮廓添加到y中。

有人知道如何将序列中的轮廓添加到另一个序列(即空序列)吗?代码示例将被欣赏。

PS: cvStartFindContours不是一个选项

解决方案是使用c++接口,而不是旧的接口。它使用起来要简单得多。等高线存储为vector<vector<Point>>

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

Mat myImg = (Mat)myIplImage;
//or better
Mat myImg = imread("image.jpg");
vector<vector<Point>> contours;
cv::findContours(myImg, contours,...);

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

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