使用opencv尋找邊緣

使用Canny算子

Canny 邊緣檢測是一種從不同的視覺對像中提取有用的結構信息並顯著減少要處理的數據量的技術。它已廣泛應用於各種計算機視覺系統。Canny發現,邊緣檢測在不同視覺系統上的應用需求是比較相似的。因此,可以在各種情況下實施滿足這些要求的邊緣檢測解決方案。邊緣檢測的一般標準包括:

錯誤率低的邊緣檢測,這意味著檢測應該盡可能準確地捕獲圖像中顯示的邊緣
算子檢測到的邊緣點應該準確地定位在邊緣的中心。
圖像中的給定邊緣應僅標記一次,並且在可能的情況下,圖像噪聲不應產生錯誤邊緣。

以下為一個簡單使用範例

使用cartToPolar

使用 cv2.Sobel 函數計算圖像的梯度值和方向,並使用 cv2.cartToPolar 函數將梯度值和方向轉換為極坐標形式。

在上面的方法中,要注意的是使用cv.CV_64F能有較好的結果,若想要有CV_8U的結果,可以先採用CV_64F再用下面方式轉為CV_8U

分水嶺演算法

OpenCV 實現了一種基於標記的分水嶺算法,您可以在其中指定哪些是要合併的所有谷點,哪些不是。它是一種交互式圖像分割。我們所做的是為我們所知道的對象賦予不同的標籤。用一種顏色(或強度)標記我們確定是前景或物體的區域,用另一種顏色標記我們確定是背景或非物體的區域,最後是我們不確定的區域,用 0 標記它。那是我們的標記。然後應用分水嶺算法。然後我們的標記將使用我們提供的標籤進行更新,並且對象的邊界值為 -1。


下面是我自己的嘗試

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *