2011-11-25 83 views
4

我需要找到圖像中的所有輪廓。我知道整個findcontours()和drawContours()的東西,但它使用Canny邊緣檢測器,我遇到了麻煩。要使用查找輪廓,您需要使用Canny邊緣檢測或閾值圖像。我無法對圖像進行閾值處理,因爲這會導致多個邊緣模糊(邊緣的「合併」)。所以我決定使用Canny Edge檢測。但是,當我使用它而不是獲得完美的邊緣時,我會看到各種線條,其中有空隙。這可以防止我獲得良好的輪廓例如,如果不是獲取正方形的邊緣,我會得到4個單獨的線,由小間隙分隔,導致我得到4個輪廓而不是一個。我試圖擴張,打開,關閉,高斯模糊和基本上每個形態學操作符,但沒有一個正在做這項工作。有些不合併線條,有些合併線條與不相關的線條。所以我想知道有沒有人有解決方案,我可以從Canny Edge檢測中獲得實際的輪廓,或者如果沒有人有任何替代方案可以從圖像中獲取所有輪廓?如何在OpenCV的圖像中查找輪廓?

+0

發佈樣本圖像和代碼,將有助於這一個... – mevatron

+0

這是一個非常典型的問題。玩弄Canny參數和形態的結構元素是解決這個問題的常用方法。 :) – AruniRC

+0

得到它謝謝:) – fdh

回答