Daftar Isi:
- Langkah 1: File Header
- Langkah 2: Menangkap Video
- Langkah 3: Menangkap Bingkai dan Menentukan Warna
- Langkah 4: Masking dan Ekstraksi
- Langkah 5: Akhirnya Menampilkan
- Langkah 6: Demo
Video: Deteksi Warna Sederhana Menggunakan OpenCV: 6 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:54
Hai! Hari ini saya akan menunjukkan metode sederhana untuk mendeteksi warna dari video langsung menggunakan OpenCV dan python.
Pada dasarnya saya hanya akan menguji warna yang diperlukan ada di bingkai latar belakang atau tidak dan menggunakan modul OpenCV saya akan menutupi wilayah itu dan secara bersamaan menampilkan bingkai.
Langkah 1: File Header
Nah disini saya sudah menggunakan dua file header yaitu cv2 dan NumPy. Pada dasarnya cv2 adalah perpustakaan OpenCV yang memuat semua file c++ yang penting saat menggunakan perintah dalam kode (berisi semua definisi).
Dan Numpy adalah pustaka python yang penting untuk menyimpan array multidimensi. Kami akan menggunakan untuk menyimpan koordinat rentang warna kami.
Dan numpy as np pada dasarnya membantu kode kita untuk mempersingkat sedikit dengan menggunakan np setiap kali alih-alih numpy.
Langkah 2: Menangkap Video
Ini cukup sederhana saat menggunakan python. Di sini kita hanya perlu menyalakan perekam video agar bisa mulai merekam frame.
Sekarang nilai di dalam VideoCapture menunjukkan kamera, dalam kasus saya kamera terhubung ke laptop saya, jadi 0.
Anda dapat menggunakan cara yang sama dengan 1 untuk kamera sekunder dan seterusnya. VideoCapture membuat objek untuk itu.
Langkah 3: Menangkap Bingkai dan Menentukan Warna
Sekarang di sini kita harus melakukan sesuatu sehingga kita dapat menangkap bingkai instan dari video yang akan membantu kita mengekstrak gambar dan kita dapat mengerjakannya sesuai kebutuhan.
Loop "while" akan membantu kita menjalankan loop ke waktu yang dibutuhkan. Sekarang " _, frame = cap.read() " digunakan untuk memeriksa validitas Frame yang diambil dan menyimpannya. "cap.read() adalah variabel boolean dan mengembalikan nilai true jika frame dibaca dengan benar dan jika Anda tidak mendapatkan frame, itu tidak akan menampilkan kesalahan apa pun, Anda hanya akan mendapatkan None.
Sekarang baris 11 dan baris 12 pada dasarnya menentukan rentang warna yang perlu kita deteksi. Untuk ini, saya telah menggunakan warna biru.
Anda dapat melanjutkan dengan warna apa pun untuk itu Anda hanya perlu mengetikkan nilai BGR untuk warna tertentu. Lebih baik mendefinisikan dua array menggunakan array numpy karena mendeteksi warna tertentu di dunia nyata tidak akan sesuai dengan tujuan kita, melainkan kita akan mendefinisikan rentang warna biru sehingga mendeteksi dalam rentang tersebut.
Untuk ini, saya telah mendefinisikan dua variabel yang menyimpan nilai BGR bawah dan nilai BGR atas.
Langkah 4: Masking dan Ekstraksi
Sekarang inilah tugas utama menutupi bingkai dan mengekstrak warna bingkai. Saya menggunakan perintah yang telah ditentukan yang ada di perpustakaan di OpenCV untuk melakukan masking. Pada dasarnya masking adalah proses menghilangkan beberapa bagian dari frame, yaitu kita akan menghapus piksel yang nilai BGR warnanya tidak terletak pada rentang warna yang ditentukan dan ini dilakukan oleh cv2.inRange. Setelah itu, kami menerapkan rentang warna ke gambar bertopeng tergantung pada nilai piksel dan untuk ini, kami akan menggunakan cv2.bitwise_and, Ini hanya akan menetapkan warna ke wilayah bertopeng tergantung pada nilai topeng dan rentang warna.
Tautan untuk cv2. bitwise_and:
Langkah 5: Akhirnya Menampilkan
Di sini saya telah menggunakan cv2.imshow() dasar untuk menampilkan setiap frame sebagai gambar. Karena saya memiliki data bingkai yang disimpan dalam variabel, saya dapat mengambilnya di imshow(). Di sini saya telah menampilkan ketiga bingkai, asli, bertopeng, dan berwarna.
Sekarang kita harus keluar dari loop while. Untuk ini, kita cukup mengimplementasikan cv2.wait. Key(). Pada dasarnya ini memberi tahu waktu tunggu sebelum merespons. Jadi jika Anda melewati 0 itu akan menunggu tanpa batas dan 0xFF memberi tahu arsitekturnya adalah 64bit. " ord() " menentukan karakter yang ketika ditekan akan mengeksekusi perintah break di blok if dan akan keluar dari loop.
Kemudian cap.release() menutup perekam video dan cv2.destroyAllWindows() menutup semua jendela yang terbuka.
Jika Anda memiliki masalah, beri tahu saya.
Tautan ke kode sumber:
Direkomendasikan:
Cara Menggunakan Deteksi Warna TCS3200 Dengan SkiiiD: 9 Langkah
Cara Menggunakan Deteksi Warna TCS3200 Dengan SkiiiD: Tutorial untuk mengembangkan Deteksi Warna TCS3200 dengan skiiiD
Mesin Cat Deteksi Warna: 4 Langkah
Mesin Cat Deteksi Warna: Mesin cat pendeteksi warna menyalin warna di sekitar Anda dan membiarkan Anda menggambar dengannya. Jika Anda memiliki cat warna primer, Anda dapat menggunakan sensor warna RGB untuk merasakan warna yang Anda inginkan dan mencampurnya. Tapi ingat, gunakan objek berwarna cerah
Deteksi Warna dengan Python Menggunakan OpenCV: 8 Langkah
Deteksi Warna dengan Python Menggunakan OpenCV: Halo! Instruksi ini digunakan untuk memandu tentang cara mengekstrak warna tertentu dari gambar dengan python menggunakan pustaka openCV. Jika Anda baru mengenal teknik ini maka jangan khawatir, di akhir panduan ini Anda akan dapat memprogram warna Anda sendiri
Deteksi Objek W/ Dragonboard 410c atau 820c Menggunakan OpenCV dan Tensorflow.: 4 Langkah
Deteksi Objek W/ Dragonboard 410c atau 820c Menggunakan OpenCV dan Tensorflow.: Instruksi ini menjelaskan cara menginstal OpenCV, Tensorflow, dan kerangka kerja pembelajaran mesin untuk Python 3.5 untuk menjalankan aplikasi Deteksi Objek
Deteksi Warna Menggunakan LED RGB: 4 Langkah
Deteksi Warna Menggunakan LED RGB: Pernahkah Anda menginginkan cara otomatis untuk mendeteksi warna suatu objek? Dengan menyinari cahaya dengan warna tertentu pada objek dan melihat seberapa banyak cahaya yang dipantulkan kembali, Anda dapat mengetahui apa warna objek tersebut. Misalnya, jika Anda menyinari lampu merah