首頁 > 後端開發 > Python教學 > 使用Python的Canny邊緣檢測器

使用Python的Canny邊緣檢測器

William Shakespeare
發布: 2025-02-28 09:49:10
原創
885 人瀏覽過

邊緣檢測是基於輪廓的對象識別的至關重要的圖像分析技術,對於圖像信息恢復至關重要。 它提取關鍵功能,例如線條和曲線,通常由高級計算機視覺和圖像處理算法使用。 強大的邊緣檢測算法準確地識別了主要邊緣,同時抑制了噪聲引起的虛假邊緣。 邊緣代表圖像強度(像素值)的重大局部變化,通常發生在區域邊界處。本教程解釋了Canny Edge檢測算法及其Python實現。

chany邊緣檢測器

> >以其發明者John F. Canny(1986)的名字命名,Canny探測器以灰度圖像為輸入,並輸出圖像突出顯示強度不連續性(邊緣)。 該過程涉及:

降低噪聲:

高斯卷積使輸入圖像平滑,降低噪聲。
  1. 梯度計算:第一導數操作員突出了具有高空間衍生物的區域。 使用X和Y衍生物確定梯度幅度和方向,對於邊緣方向識別至關重要。
  2. 非最大抑制:
  3. 此步驟將邊緣變細。 該算法沿梯度山脊跟踪,將非ridge像素設置為零,從而導致邊緣線。 這涉及將梯度與鄰居進行比較;僅保留最大梯度。 >
  4. 滯後閾值:
  5. 兩個閾值,(upper)和(下),帶有
  6. ,控制邊緣跟踪。 跟踪從上方的點開始,然後繼續直到梯度降至以下。 上方的點始終是邊緣; >下方的點僅在t1>上方的點上方時t2t1 > t2 t1高斯內核寬度和/t2閾值是影響Canny檢測器輸出的參數。 t1t1 Python實現t2t1
  7. 顯示了兩種方法:使用

t1t2使用

> install

(例如,在ubuntu上函數(在scikit-image模塊中)應用了Canny檢測器。 OpenCV使用示例圖像“ boat.png”(如下所示):

scikit-image代碼:

輸出(邊緣檢測的圖像):scikit-image sudo apt-get install python-skimagecanny() feature

參數調整產生不同的邊緣檢測結果。

使用Canny Edge Detector Using Python

>安裝OpenCV(請參閱操作系統的相關安裝指南)。 OPENCV的Canny()函數執行邊緣檢測。

代碼:

from skimage import io, feature

im = io.imread('boat.png')
edges = feature.canny(im)
io.imshow(edges)
io.show()
登入後複製

參數:im(圖像),下閾值(25),上閾值(255),L2gradient=False(使用L1-norm)。 matplotlib顯示結果。

輸出(邊緣檢測的圖像):

Canny Edge Detector Using Python

結論

該教程使用scikit-imageOpenCV涵蓋了Canny邊緣檢測器及其直接實現,證明了其在邊緣檢測中的有效性。

以上是使用Python的Canny邊緣檢測器的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板