Мигающая контурная линия

Цель моей программы это определить самый большой контур с видеокамеры и нарисовать его красной линией.

Я обнаружил, что когда самый большой контур (ака largest_contours в моей программе), контурная линия контура будет мигать и когда-то прервет функцию, чтобы нарисовать красную линию вокруг нее (поскольку линия контура больше не связана, поэтому контур внутри изображения не обнаружен).

Мои вопросы:

  1. Какова причина возникновения этой проблемы?
  2. Как избежать (или мы можем избежать) этой проблемы?
  3. Есть предложения по улучшению программы обнаружения моего контура?

Заранее спасибо.

PS: для кодов, фото и дополнительной информации, нажмите ВОТ. ВИДЕО ЗДЕСЬ !!!

0

Решение

findContours API OpenCV изменяет изображение, которое он использует для поиска контуров. Вы можете попробовать следующее.

Mat displayContours = Mat::zeros(image.rows,image.cols,CV_8UC1);
for(int i = 1;i<(int)largest_contours[0].size();i++)
{
line(displayContours,largest_contours[0][i-1],largest_contours[0][i],255,2,8,0);
line(image,largest_contours[0][i-1],largest_contours[0][i],cv::Scalar(0,0,255),2,8,0);
}

Теперь отобразите displayContours вместо foreground

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]