Pengesanan Tepi Canny

Nov 24, 2024 pm 07:01 PM

Pengesanan tepi ialah teknik pemprosesan imej dalam penglihatan komputer yang melibatkan mengenal pasti garis besar objek dalam imej.

Canny Edge Detection

Pengesanan tepi canny ialah salah satu teknik terbaik untuk pengesanan tepi. Ia direka bentuk untuk mengesan tepi yang bersih dan jelas sambil mengurangkan hingar dan mengelakkan tepi palsu. Ia menggunakan kaedah ambang dua kali untuk mengesan tepi dalam imej: ambang tinggi dan rendah.

img = cv2.Canny('photo.jpg')
img_edges = cv2.Canny(img, 100, 200)
// 100 is the low threshold
// 200 is the high threshold

Ambang menentukan apa yang menjadi kelebihan dan apa yang tidak. Untuk membuat keputusan ini, kami menggunakan nilai kecerunan:

  • Jika nilai kecerunan berada di atas ambang tinggi, nilai itu dianggap sebagai kelebihan kukuh dan ditambahkan pada peta tepi. (tepi kuat)
  • Jika di bawah ambang rendah, ia diabaikan. (bukan tepi)
  • Jika ia berada di antara ambang tinggi dan rendah, ia hanya disimpan jika ia disambungkan ke tepi yang kuat. (potensi tepi)

Apakah nilai kecerunan?

Nilai kecerunan bukan nilai imej mentah. Ia adalah nombor yang dikira yang diperoleh daripada imej mentah dengan menyemak berapa banyak perubahan keamatan piksel dalam imej. Kami menggunakan nilai kecerunan kerana nilai imej mentah tidak secara langsung memberitahu kami di mana bahagian tepi berada.

Contoh mudah untuk menggambarkan perubahan dalam keamatan piksel: jika dua piksel bersebelahan mempunyai nilai yang sangat berbeza (mis. 50 dan 200 dan nilai kecerunan ialah 150), terdapat perubahan besar — ​​ia mungkin kelebihan. Tetapi jika dua piksel berjiran mempunyai nilai yang serupa (cth. 50 dan 52 dan nilai kecerunan ialah 2), terdapat sedikit perubahan & sangat sedikit kemungkinan untuk menjadi kelebihan.

Selepas nilai kecerunan dikira, nilai tersebut kemudiannya dibandingkan dengan ambang untuk menentukan apa yang layak sebagai kelebihan kuat, kelebihan berpotensi atau bukan tepi.

Bagaimanakah kita tahu nilai di antara ambang disambungkan kepada kelebihan yang kukuh?

Dengan menggunakan kaedah yang dipanggil pengesanan tepi oleh histerisis yang menentukan tepi yang disambungkan dan harus disimpan VS dibuang. Algoritma ini berfungsi dengan melihat 8 jiran (piksel bersebelahan langsung - atas, bawah, kiri, kanan dan pepenjuru) bagi setiap piksel tepi yang berpotensi. Sebarang piksel yang disambungkan secara langsung atau tidak langsung ke tepi yang kuat disertakan dalam hasil akhir.

Cara penjejakan tepi berfungsi:

   50   80  110   90
   70  250  190  120
   60  180  150   70
   40   60   80   50

Bayangkan peta kecerunan ini di atas:

Selepas menggunakan ambang (rendah = 100, tinggi = 200), piksel tepi kuat ( > 200) disimpan dengan serta-merta sebagai tepi. Di sini, hanya piksel 250 ditandakan sebagai kelebihan yang kuat.

Piksel tepi yang berpotensi (100–200) ialah 110, 190, 120, 180 dan 150. Kini setelah kami mempunyai kumpulan tepi yang berpotensi, kami melakukan penjejakan tepi untuk memutuskan perkara yang akan kekal & perkara yang dibuang. Algoritma menyemak sama ada mana-mana tepi berpotensi disambungkan secara langsung atau tidak langsung ke tepi kuat (250).

Contohnya:

  • 190 adalah jiran 250, ia disambungkan terus ke tepi yang kuat supaya ia disimpan.
  • 150 adalah jiran 190, ia secara tidak langsung disambungkan ke tepi yang kuat supaya ia juga disimpan.

Piksel tepi lemah (< 100) seperti 80, 90 dan selebihnya diabaikan sepenuhnya, kerana ia dianggap bunyi. Ia tidak akan menjadi sebahagian daripada imej akhir.

Atas ialah kandungan terperinci Pengesanan Tepi Canny. 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

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT

Stock Market GPT

Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk mengautomasikan kemasukan data dari Excel ke borang web dengan Python? Bagaimana untuk mengautomasikan kemasukan data dari Excel ke borang web dengan Python? Aug 12, 2025 am 02:39 AM

Kaedah mengisi data Excel ke dalam bentuk web menggunakan Python adalah: pertama menggunakan panda untuk membaca data Excel, dan kemudian gunakan selenium untuk mengawal penyemak imbas untuk mengisi secara automatik dan menyerahkan borang; Langkah -langkah khusus termasuk memasang pandas, openpyxl dan perpustakaan selenium, memuat turun pemacu penyemak imbas yang sepadan, menggunakan pandas untuk membaca nama, e -mel, telefon dan medan lain dalam fail data.xlsx, melancarkan pelayar melalui selenium untuk membuka. Bentuk dan proses semua baris data dalam gelung.

Apakah kaedah kelas dalam python Apakah kaedah kelas dalam python Aug 21, 2025 am 04:12 AM

Classmethodsinpythonareboundtotheclassandnottoinstances, membolehkanThemTobeCalledWithoutCreatingAnobject.1.theyaredefinedusingthe@Classmethoddecoratorandtakeclsasthefirstparameter, referringtotheclassitervarfe.2.TheycanCasteScess,

HDF5 Nama Dataset Konflik dan Nama Kumpulan: Penyelesaian dan Amalan Terbaik HDF5 Nama Dataset Konflik dan Nama Kumpulan: Penyelesaian dan Amalan Terbaik Aug 23, 2025 pm 01:15 PM

Artikel ini menyediakan penyelesaian terperinci dan amalan terbaik untuk masalah yang nama dataset bertentangan dengan nama kumpulan ketika mengendalikan fail HDF5 menggunakan perpustakaan H5PY. Artikel ini akan menganalisis punca konflik secara mendalam dan memberikan contoh kod untuk menunjukkan cara untuk menghindari dan menyelesaikan masalah tersebut dengan berkesan untuk memastikan bacaan dan penulisan fail HDF5 yang betul. Melalui artikel ini, pembaca akan dapat lebih memahami struktur fail HDF5 dan menulis lebih banyak kod H5PY yang mantap.

contoh giliran python asyncio contoh giliran python asyncio Aug 21, 2025 am 02:13 AM

Asyncio.queue adalah alat giliran untuk komunikasi yang selamat antara tugas -tugas asynchronous. 1. Pengeluar menambah data melalui Awaitqueue.put (item), dan pengguna menggunakan Awaitqueue.get () untuk mendapatkan data; 2. Untuk setiap item yang anda proses, anda perlu memanggil giliran.task_done () untuk menunggu giliran.join () untuk menyelesaikan semua tugas; 3. Gunakan tiada sebagai isyarat akhir untuk memberitahu pengguna untuk berhenti; 4 Apabila pengguna berganda, isyarat akhir perlu dihantar atau semua tugas telah diproses sebelum membatalkan tugas; 5. Giliran menyokong menetapkan kapasiti had maksimum, meletakkan dan mendapatkan operasi secara automatik menggantung dan tidak menyekat gelung acara, dan program akhirnya melewati Canc

Bagaimana untuk mengendalikan dataset besar di Python yang tidak sesuai dengan ingatan? Bagaimana untuk mengendalikan dataset besar di Python yang tidak sesuai dengan ingatan? Aug 14, 2025 pm 01:00 PM

Apabila memproses set data besar yang melebihi memori dalam python, mereka tidak boleh dimuatkan ke dalam RAM pada satu masa. Sebaliknya, strategi seperti pemprosesan pemprosesan, penyimpanan cakera atau streaming harus diterima pakai; Fail CSV boleh dibaca dalam ketulan melalui parameter Pandas 'dan blok diproses oleh blok. Dask boleh digunakan untuk merealisasikan penjadualan dan penjadualan tugas yang serupa dengan sintaks pandas untuk menyokong operasi data memori yang besar. Tulis fungsi penjana untuk membaca fail teks mengikut baris untuk mengurangkan penggunaan memori. Gunakan format penyimpanan kolumnar parket yang digabungkan dengan pyarrow untuk membaca lajur atau kumpulan baris tertentu dengan cekap. Gunakan Memmap Numpy untuk memori peta tatasusunan berangka besar untuk mengakses serpihan data pada permintaan, atau menyimpan data dalam data ringan seperti SQLite atau DuckDB.

Bagaimana untuk menggunakan ungkapan biasa dengan modul Re di Python? Bagaimana untuk menggunakan ungkapan biasa dengan modul Re di Python? Aug 22, 2025 am 07:07 AM

Ekspresi biasa dilaksanakan di Python melalui modul Re untuk mencari, memadankan dan memanipulasi rentetan. 1. Gunakan re.search () untuk mencari perlawanan pertama dalam keseluruhan rentetan, re.match () hanya sepadan pada permulaan rentetan; 2. Gunakan kurungan () untuk menangkap subkumpulan yang sepadan, yang boleh dinamakan untuk meningkatkan kebolehbacaan; 3. Re.findall () mengembalikan semua perlawanan yang tidak bertindih, dan re.finditer () mengembalikan iterator objek yang sepadan; 4. Re.sub () menggantikan teks yang sepadan dan menyokong penggantian fungsi dinamik; 5. Corak umum termasuk \ d, \ w, \ s, dan lain -lain, anda boleh menggunakan re.ignorecase, re.multiline, re.dotall, re re.

Cara Lulus Argumen Barisan Perintah ke Skrip di Python Cara Lulus Argumen Barisan Perintah ke Skrip di Python Aug 20, 2025 pm 01:50 PM

Penggunaan.ArgvforsimpleArentGumentAccess, whereagrumentemanmuallyhandledandnoautomaticvalidationorhelpispisprovided.2.useAragparseforrobustintinterfaces, asitsupportsautomatichelp, dyechecking, opsyenal

Cara meratakan senarai bersarang atau senarai senarai di Python Cara meratakan senarai bersarang atau senarai senarai di Python Aug 12, 2025 am 09:49 AM

FlatteninganestedlistinpythonconvertsalistwithsublistsIntoasingleFlatlist, andthebestmethoddependsonThenestingDepthanddatasize.forone levelnesting, uselistcomprehension [

See all articles