Имеете дело с последовательностями в OpenCV? - PullRequest
0 голосов
/ 19 ноября 2011

У меня есть 2 последовательности. Один (давайте назовем это cvSeq x), который содержит несколько контуров (производных от cvFindContours) и второй (давайте назовем это cvSeq y), который я использовал для cvCreateSeq, но на самом деле в нем ничего нет. Я перебираю все контуры в x, и если контур соответствует определенным критериям, я добавляю его к y. Я могу выполнить цикл, но я не знаю, как добавить контур по x к y, если он соответствует критериям.

Кто-нибудь знает, как добавить контур в последовательности в другую последовательность (то есть пустую)? Будем благодарны за примеры кода.

PS: cvStartFindContours не вариант.

1 Ответ

1 голос
/ 19 ноября 2011

Решением будет использование интерфейса C ++ вместо старого. Это намного проще в использовании. Контуры хранятся как vector<vector<Point>>

Вы можете использовать его аналогичным образом:

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

vector<vector<Point>> contours;

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

Теперь доступ к контурам и точкам стал намного проще и проще

Примечание Я не проверял точность кода. Вы должны проверить правильный способ отправки параметров для findContours и всего остального.

...