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

Pengesan Edge Canny Menggunakan Python

William Shakespeare
Lepaskan: 2025-02-28 09:49:10
asal
879 orang telah melayarinya

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):
from skimage import io, feature

im = io.imread('boat.png')
edges = feature.canny(im)
io.imshow(edges)
io.show()
Salin selepas log masuk
Salin selepas log masuk

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:

from skimage import io, feature

im = io.imread('boat.png')
edges = feature.canny(im)
io.imshow(edges)
io.show()
Salin selepas log masuk
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan