2013-02-07 101 views
0

My program's objective用於識別攝像機中最大的輪廓並用紅線繪製。輪廓線閃爍

我發現,在檢測到最大的輪廓(在我的計劃又名largest_contours)時,輪廓的輪廓線將閃爍, 有時 將中斷功能在周圍畫一個紅色的線(因爲輪廓的線沒有連接再也不會在圖像內檢測到輪廓)。

我的問題是:

  1. ,這是什麼問題發生的原因?
  2. 如何避免(或者我們可以避免)發生這個問題?
  3. 任何建議,以改善我的輪廓的檢測程序?

在此先感謝。

注:有關代碼,圖片和更多信息,請點擊HEREVIDEO HERE!!!

+0

的「閃爍」的問題很可能是由噪聲/燈光造成的,是的,但是這也是沒有使用任何其他先前幀你可能指示有。您可能需要平均幀數,然後使用此方法的典型建議。但是,要提供任何準確的幫助,您必須包含您自己所描述問題的一些簡短示例視頻。 – mmgp

+0

添加視頻。 http://www.youtube.com/watch?v=4GLabxxd228&feature=youtu.be –

+0

這是一個運行你的應用程序的視頻,沒有人需要它。需要的是您的原始幀,請檢查'VideoWriter'。 – mmgp

回答

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代替​​