Isi kandungan:
- Langkah 1: Fail Header
- Langkah 2: Menangkap Video
- Langkah 3: Menangkap Bingkai dan Menentukan Warna
- Langkah 4: Melindungi dan Mengekstrak
- Langkah 5: Akhirnya Dipaparkan
- Langkah 6: Demo
Video: Pengesanan Warna Ringkas Menggunakan OpenCV: 6 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:08
Hai! Hari ini saya akan menunjukkan kaedah mudah untuk mengesan warna dari video langsung menggunakan OpenCV dan python.
Pada dasarnya saya hanya akan menguji warna yang diperlukan ada pada bingkai latar belakang atau tidak dan menggunakan modul OpenCV saya akan menutupi kawasan itu dan secara serentak memaparkan bingkai.
Langkah 1: Fail Header
Sekarang di sini saya telah menggunakan dua fail header iaitu cv2 dan NumPy. Pada dasarnya cv2 adalah perpustakaan OpenCV yang memuat semua fail c ++ yang penting semasa menggunakan perintah dalam kod (ia mengandungi semua definisi).
Dan Numpy adalah perpustakaan python yang penting untuk menyimpan susunan pelbagai dimensi. Kami akan menggunakan untuk menyimpan koordinat rangkaian warna kami.
Dan numpy kerana np pada asasnya membantu kod kita untuk memendekkan sedikit dengan menggunakan np setiap kali dan bukannya numpy.
Langkah 2: Menangkap Video
Ini cukup mudah semasa menggunakan python. Di sini kita hanya perlu menghidupkan perakam video supaya dapat mula merakam bingkai.
Sekarang nilai di dalam VideoCapture menunjukkan kamera, dalam kes saya kamera disambungkan ke komputer riba saya, jadi 0.
Anda boleh pergi ke angka 1 untuk kamera sekunder dan seterusnya. VideoCapture mencipta objek untuknya.
Langkah 3: Menangkap Bingkai dan Menentukan Warna
Sekarang di sini kita harus melakukan sesuatu supaya kita dapat merakam kerangka segera video yang akan membantu kita mengekstrak gambar dan kita dapat mengerjakannya mengikut keperluan.
Gelung "while" akan membantu kita menjalankan loop mengikut masa keperluan kita. Sekarang "_, frame = cap.read ()" digunakan untuk memeriksa kesahan Frame yang ditangkap dan menyimpannya. "cap.read () adalah pemboleh ubah boolean dan kembali benar jika bingkai dibaca dengan betul dan jika anda tidak mendapat bingkai, ia tidak akan menunjukkan sebarang kesalahan, anda akan mendapat Tiada.
Sekarang baris 11 dan baris 12 pada dasarnya menentukan julat warna yang perlu kita mengesan. Untuk ini, saya biasa menggunakan warna biru.
Anda boleh meneruskan warna apa pun untuk itu, anda hanya perlu menaip nilai BGR untuk warna tertentu. Lebih baik mentakrifkan dua tatasusunan menggunakan susunan numpy kerana mengesan warna tertentu di dunia nyata tidak akan memenuhi tujuan kita sebaliknya kita akan menentukan julat warna biru sehingga dapat mengesannya dalam julat.
Untuk ini, saya telah menentukan dua pemboleh ubah yang menyimpan nilai BGR bawah dan nilai BGR atas.
Langkah 4: Melindungi dan Mengekstrak
Sekarang inilah tugas utama untuk menutupi bingkai dan mengekstrak warna bingkai. Saya menggunakan arahan yang telah ditetapkan di perpustakaan di OpenCV untuk melakukan penyamaran. Pada dasarnya penyamaran adalah proses membuang sebahagian bahagian bingkai, iaitu kita akan membuang piksel yang warnanya BGR nilai yang tidak terletak pada julat warna yang ditentukan dan ini dilakukan oleh cv2.inRange. Setelah itu, kami menerapkan rentang warna pada gambar bertopeng bergantung pada nilai piksel dan untuk ini, kami akan menggunakan cv2.bitwise_and, Ia hanya akan menetapkan warna ke kawasan bertopeng bergantung pada nilai topeng dan rentang warna.
Pautan untuk cv2. bitwise_and:
Langkah 5: Akhirnya Dipaparkan
Di sini saya telah menggunakan cv2.imshow asas () untuk memaparkan untuk setiap bingkai sebagai gambar. Oleh kerana saya mempunyai data bingkai yang tersimpan dalam pemboleh ubah, saya dapat mengambilnya dalam imshow (). Di sini saya telah memaparkan ketiga-tiga bingkai, asli, bertopeng, dan berwarna.
Sekarang kita harus keluar dari loop sementara. Untuk ini, kita hanya boleh melaksanakan cv2.wait. Key (). Pada dasarnya ia memberitahu masa menunggu sebelum bertindak balas. Oleh itu, jika anda lulus 0, ia akan menunggu tanpa had dan 0xFF memberitahu bahawa senibina adalah 64bit. "ord ()" menentukan watak yang ketika ditekan akan menjalankan perintah break jika blok dan ia akan keluar dari gelung.
Kemudian cap.release () menutup perakam video dan cv2.destroyAllWindows () menutup semua tetingkap yang dibuka.
Sekiranya anda mempunyai sebarang masalah, beritahu saya.
Pautan ke kod sumber:
Disyorkan:
Pengesanan Warna di Python Menggunakan OpenCV: 8 Langkah
Pengesanan Warna di Python Menggunakan OpenCV: Helo! Instruksional ini digunakan untuk membimbing bagaimana mengekstrak warna tertentu dari gambar di python menggunakan perpustakaan openCV. Sekiranya anda baru menggunakan teknik ini, jangan risau, pada akhir panduan ini, anda akan dapat memprogramkan warna anda sendiri
Pengesanan Objek W / Dragonboard 410c atau 820c Menggunakan OpenCV dan Tensorflow .: 4 Langkah
Pengesanan Objek W / Dragonboard 410c atau 820c Menggunakan OpenCV dan Tensorflow .: Instruksional ini menerangkan cara memasang rangka kerja OpenCV, Tensorflow, dan pembelajaran mesin untuk Python 3.5 untuk menjalankan aplikasi Objek Deteksi
Keselamatan Rumah DIY - Cara Membuat Pengesanan Gerak Ringkas - Versi Baru: 6 Langkah
Keselamatan Rumah DIY - Cara Membuat Pengesanan Gerak Ringkas | Versi Baru: Dalam projek ini saya akan menunjukkan kepada anda cara membuat penggera pemberitahuan keselamatan rumah DIY kos rendah! Lihat versi lama: Cara Membuat Sistem Keselamatan WiFi $ 10 di Rumah
Cara yang Sangat Sederhana / mudah / tidak rumit untuk Membuat Orang / Manusia / Haiwan / Robot Kelihatan Seperti Mereka Mempunyai Penglihatan Panas / Warna Panas (Warna Pilihan Anda) Menggunakan GIMP: 4 Langkah
Cara yang Sangat Sederhana / mudah / tidak rumit untuk Membuat Orang / Manusia / Haiwan / Robot Kelihatan Seperti Mereka Mempunyai Penglihatan Panas / Warna Panas (Warna Pilihan Anda) Menggunakan GIMP: Baca … tajuk
Pengesanan Warna Menggunakan LED RGB: 4 Langkah
Pengesanan Warna Menggunakan LED RGB: Pernahkah anda menginginkan kaedah automatik untuk mengesan warna objek? Dengan menyinari warna tertentu pada objek dan melihat seberapa banyak cahaya dipantulkan ke belakang, anda dapat mengetahui warna apa objek itu. Contohnya, jika anda menyinari lampu merah o