轮廓线闪烁

时间:2013-02-07 11:51:30

标签: c++ image-processing opencv video-processing contour

My program's objective用于识别摄像机中最大的轮廓并用红线绘制。

我发现当检测到最大轮廓(我的程序中名为largest_contours)时,轮廓的轮廓线将闪烁并且某时将中断该功能以在其周围绘制一条红线(因为轮廓线不再连接,因此在图像内部不再检测到轮廓)。

我的问题是:

  1. 这个问题发生的原因是什么?
  2. 如何避免(或我们可以避免)这个问题的发生?
  3. 有关改进轮廓检测程序的建议吗?
  4. 提前致谢。

    PS:有关代码,图片和更多信息,请点击HEREVIDEO HERE!!!

1 个答案:

答案 0 :(得分:0)

findContours OpenCV的API会修改用于查找轮廓的图像。您可以尝试以下操作。

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