2014-04-29 50 views
1

我需要能夠檢測到卡的邊緣,目前它在背景無干擾時有效,最好是對比但在非對比背景下仍能很好地工作。自適應雙邊濾波器保留邊緣

問題發生在卡處於顛覆性背景時,雙邊濾波器允許噪聲過大並導致邊緣檢測不準確。

這裏是我使用的代碼:

bilateralFilter(imgGray, detectedEdges, 0, 175, 3, 0); 
Canny(detectedEdges, detectedEdges, 20, 65, 3); 

dilate(detectedEdges, detectedEdges, Mat::ones(3,3,CV_8UC1)); 

imgGray是原始圖像的灰度版本。

這裏是一個顛覆性的背景下一些測試,結果(在所有圖像失真的聯繫信息):

色卡:

結果:

enter image description here

這裏是一張白色卡片:

enter image description here

結果:

enter image description here

誰能告訴我,而去除噪聲,我可以怎樣保護卡的邊緣,無論背景,顏色?

+0

確實canny計算從灰度圖像的邊緣?也許你可以嘗試在色調通道上工作? – Micka

+1

我試着將色調通道用作雙邊濾鏡和canny的輸入,這給藍卡帶來了很好的效果,但對於白卡卻有不好的結果。但我認爲訣竅將是在邊緣檢測中考慮顏色信息! – Micka

回答

1

使用canny找到您已經在做的邊緣,然後在圖像中找到contour並找到合適的rectangle using bounding box並在矩形的佔用和尺寸上應用一些閾值。這應該歸結爲您的矩形,即您的卡片邊緣,並將其作爲ROI,您可以繼續工作。

+1

Down-Voter應該解釋他們何時倒票。這不是關於我的答案,但應該會更好。 –

+0

我認爲,你必須解釋你的想法與你的代碼。因爲像你們一樣尋找解決方案的失望答案。 –

+0

大聲笑,你可能是對的可以,但我不想勺子飼料,這些都是非常基本的構造,可以很容易地在谷歌上找到。無論如何,美好的一天:)。 –