Rumah >pembangunan bahagian belakang >Tutorial Python >Pengesan Edge Canny Menggunakan Python

Pengesan Edge Canny Menggunakan Python

William Shakespeare
William Shakespeareasal
2025-02-28 09:49:10885semak imbas

Pengesanan kelebihan adalah teknik analisis imej penting untuk pengiktirafan objek berdasarkan garis besar dan penting untuk pemulihan maklumat imej. Ia mengekstrak ciri -ciri utama seperti garis dan lengkung, yang sering digunakan oleh penglihatan komputer lanjutan dan algoritma pemprosesan imej. Algoritma pengesanan kelebihan yang mantap mengenal pasti tepi utama sambil menekan tepi palsu yang disebabkan oleh bunyi.

tepi mewakili perubahan tempatan yang signifikan dalam intensiti imej (nilai piksel), biasanya berlaku di sempadan rantau. Tutorial ini menerangkan algoritma pengesanan kelebihan canny dan pelaksanaan pythonnya.

pengesan kelebihan canny

Dinamakan selepas penciptanya, John F. Canny (1986), pengesan canny mengambil imej skala kelabu sebagai input dan output imej yang menonjolkan kecenderungan intensiti (tepi).

Proses ini melibatkan:

  1. pengurangan bunyi:
  2. Pengiraan kecerunan: pengendali derivatif pertama menyoroti kawasan dengan derivatif spatial yang tinggi. Magnitud dan arah kecerunan ditentukan menggunakan derivatif x dan y, penting untuk pengenalan arah tepi.
  3. Penindasan bukan maksimal: Langkah ini mengetuk tepi. Algoritma mengesan di sepanjang rabung kecerunan, menetapkan piksel bukan rabung menjadi sifar, menghasilkan garis tepi nipis. Ini melibatkan membandingkan kecerunan kepada jiran -jirannya; Hanya kecerunan maksimal yang dikekalkan.
  4. ambang histerisis: Dua ambang, (atas) dan t1 (lebih rendah), dengan t2, pengesanan tepi kawalan. Penjejakan bermula pada mata di atas t1 > t2 dan berterusan sehingga kecerunan jatuh di bawah t1. Mata di atas t2 sentiasa tepi; titik di bawah t1 tetapi di atas t1 hanya tepi jika disambungkan ke mata di atas t2. t1
Lebar kernel Gaussian dan ambang

/t1 adalah parameter yang mempengaruhi output pengesan canny. t2

Pelaksanaan Python

Dua kaedah ditunjukkan: menggunakan

dan scikit-image. OpenCV

Menggunakan scikit-image

Pasang

(mis., scikit-image on Ubuntu). Fungsi sudo apt-get install python-skimage (dalam modul canny()) menggunakan pengesan canny. feature

menggunakan gambar sampel "bot.png" (ditunjukkan di bawah):

Canny Edge Detector Using Python Kod:

output (imej yang dikesan tepi):
<code class="language-python">from skimage import io, feature

im = io.imread('boat.png')
edges = feature.canny(im)
io.imshow(edges)
io.show()</code>

Pelarasan parameter menghasilkan hasil pengesanan kelebihan yang berbeza -beza. Canny Edge Detector Using Python

Menggunakan

Pasang OpenCV (lihat panduan pemasangan yang berkaitan untuk sistem operasi anda). Fungsi OpenCV Canny() melakukan pengesanan kelebihan.

Kod:

<code class="language-python">from skimage import io, feature

im = io.imread('boat.png')
edges = feature.canny(im)
io.imshow(edges)
io.show()</code>

Argumen: im (imej), ambang yang lebih rendah (25), ambang atas (255), L2gradient=False (menggunakan l1-norma). matplotlib memaparkan hasilnya.

output (imej yang dikesan tepi):

Canny Edge Detector Using Python

Kesimpulan

Tutorial ini meliputi pengesan kelebihan canny dan pelaksanaannya yang mudah menggunakan

dan scikit-image, menunjukkan keberkesanannya dalam pengesanan tepi. OpenCV

Atas ialah kandungan terperinci Pengesan Edge Canny Menggunakan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn