Isi kandungan:
- Bekalan
- Langkah 1: Mengimport Perpustakaan
- Langkah 2: Membuat Jalur Jalur
- Langkah 3: Membuat TrackBars untuk Warna, Ketepuan dan Nilai
- Langkah 4: Cara Membaca dan Mengubah saiz Imej
- Langkah 5: Membaca Nilai Bar Jejak untuk Menerapkannya pada Gambar
- Langkah 6: Memaparkan Gambar dan Menetapkan Had Atas dan Bawah
- Langkah 7: Sekarang Langkah Akhir
- Langkah 8: Hasil Akhir
Video: Pengesanan Warna di Python Menggunakan OpenCV: 8 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:08
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, di akhir panduan ini, anda akan dapat memprogramkan program pengesanan warna anda sendiri.
Berikut adalah fungsinya atau kita boleh mengatakan teknik yang akan anda pelajari, 1. Cara membaca gambar
2. Cara membuat Track Bar
3. Cara menyesuaikan nilai Hue, Saturation dan nilai gambar menggunakan track bar
4. Dan kemudian akan ada hasil akhir anda
Anda boleh menonton video output yang telah saya lampirkan di bawah.
Oleh itu, mari kita mulakan
Bekalan
- Python 3
- perpustakaan openCV
- perpustakaan numpy
Langkah 1: Mengimport Perpustakaan
Gambar berwarna ferrari kuning seperti yang ditunjukkan dan kami akan memprogram untuk mengekstrak warna kuning sahaja dari gambar tersebut
Langkah pertama ialah mengimport perpustakaan kami
1. Termasuk perpustakaan openCV. Ia dipanggil cv2 dalam python
2. Termasuk perpustakaan numpy sebagai np. Huruf "as" membolehkan kita menjadi tidak baik seperti np sehingga tidak perlu menulis numpy berulang-ulang kali
Langkah 2: Membuat Jalur Jalur
Jalur Jalur dibuat untuk menyesuaikan nilai Hue, Ketepuan dan Nilai dalam gambar.
cv2.namedWindow ("TrackBars") Baris kod ini digunakan untuk membuat tetingkap keluaran baru dan nama tetingkap diberikan sebagai TrackBars (Anda dapat memberikan nama yang anda inginkan)
cv2.resizeWindow ("TrackBars", 600, 250) Fungsi ini digunakan untuk mengubah saiz tetingkap. "TrackBars" adalah tetingkap yang anda mahu ubah saiznya kerana saya mahu mengubah saiz tetingkap TrackBars yang saya tuliskan nama itu. Diikuti oleh dua bilangan bulat. Dua bilangan bulat itu adalah lebar dan tinggi. Anda boleh bermain-main dengan dua nombor tersebut untuk menukar ukuran
Langkah 3: Membuat TrackBars untuk Warna, Ketepuan dan Nilai
Sekarang kita akan membuat 6 TrackBar untuk Hue, Saturation dan nilai. Masing-masing mempunyai dua iaitu 1 untuk minimum dan 1 untuk maksimum. Kami akan menggunakan fungsi createTrackbar openCV. Pertama kita akan melihat sintaks fungsi ini.
cv2.createTrackbar ("WINDOWNAME", "MAINWINDOWNAME", "RANGE"). Ini mungkin membingungkan tetapi jangan bimbang kita akan melalui setiap langkah. Perlu diingat bahawa nilai openCV rona adalah 179, tepu 255 dan nilainya 255
1. Membuat TrackBar untuk hue min:
cv2.createTrackbar ("Hue min", "TrackBars", 0, 179, kosong)
Dalam Hue min ini adalah nama trackbar, TrackBars adalah tetingkap utama, 0 adalah posisi di mana slider kami berada dan 179 adalah julat yang bermaksud silder akan bergerak dari 0-179
2. Membuat TrackBar untuk hue max:
cv2.createTrackbar ("Hue max", "TrackBars", 179, 179, kosong)
Dalam Hue max ini adalah nama trackbar, TrackBars adalah tetingkap utama, 179 adalah posisi di mana slider kami akan berada dan 179 adalah julat maksimum yang bermaksud silder akan bergerak dari 179-0
3. Demikian juga ulangi langkah untuk sat min, sat max, val min dan val max seperti yang ditunjukkan dalam gambar
Gambar dengan latar belakang putih adalah gambar output. Ini adalah bagaimana bar trek anda akan kelihatan
Langkah 4: Cara Membaca dan Mengubah saiz Imej
cv2.imread () membolehkan anda membaca gambar. Satu yang penting anda perlu ingat bahawa lokasi gambar anda mesti berada di folder yang sama di mana program disimpan. Kami akan memasukkan loop sementara kerana ia harus berjalan sehingga membaca gambar atau kita boleh mengatakan sehingga keadaannya benar
img = cv2.imread ("ferrari.jpg")
- Dalam ini saya telah membuat nama pemboleh ubah "img" di mana saya menyimpan gambar
- Di dalam cv2.imread tuliskan nama gambar dengan lanjutannya dalam petikan berganda
Untuk mengubah saiz gambar kita akan menggunakan fungsi cv2.resize. Bahagian ini adalah pilihan, jika anda mahu mengubah saiznya maka anda boleh menggunakan fungsi ini
Di dalam cv2. ukuran terlebih dahulu tuliskan nama pemboleh ubah di mana gambar disimpan dan kemudian lebar dan tinggi
Langkah 5: Membaca Nilai Bar Jejak untuk Menerapkannya pada Gambar
Baiklah sekarang kita akan membaca nilai bar bar supaya kita dapat menerapkannya pada gambar kita. Kami akan mendapat nilai menggunakan fungsi cv2.getTrackbarPos ().
Mari mulakan dengan bahagian itu …
h_min = cv2.getTrackbarPos ("Hue min", "TrackBars")
Dalam pernyataan di atas saya membuat nama pemboleh ubah h_min di mana saya akan menyimpan nilai Hue min. Jadi di dalam argumen 1st cv2.getTrackbarPos adalah "Hue min" kerana saya mahukan nilai hue min (Ejaannya harus sama persis seperti fungsi createTrackbar) dan argumen ke-2 akan menjadi nama tetingkap bar trek yang menjadi miliknya.
- Ulangi proses yang sama untuk h_max dan sisa fungsi seperti yang ditunjukkan pada gambar di atas dan kemudian cetak semua nilai menggunakan cetak ()
- Keluaran ditunjukkan pada gambar kedua. Ia mencetak nilai h_min, h_max, s_min, s_max, v_min, s_max
Langkah 6: Memaparkan Gambar dan Menetapkan Had Atas dan Bawah
Sekarang kita mempunyai nilai rona, saturasi dan nilai min dan maksimum, kita akan menggunakan nilai ini untuk menyaring gambar sehingga kita dapat menghasilkan warna tertentu dari gambar.
Kami akan membuat topeng untuk ini menggunakan fungsi cv2.inRange. Dan sebelum itu kita akan menetapkan had rona, ketepuan dan nilai atas dan bawah
Oleh itu, buat nama pemboleh ubah "lebih rendah" dan gunakan fungsi susunan numpy tetapkan julat min untuk ketiga-tiga seperti berikut
lebih rendah = np.array ([h_min, s_min, v_min])
Ulangi langkah yang sama untuk bahagian atas
atas = np.array ([h_max, s_max, v_max])
Sekarang kita akan membuat topeng seperti berikut
mask = cv2.inRange (ubah saiz, bawah, atas) Di dalam cv2.inRang argumen pertama adalah pemboleh ubah di mana gambar akhir saya disimpan, argumen ke-2 akan menjadi had bawah dan argumen ke-3 adalah had atas.
Sekarang kita akan memaparkan gambar dan topeng utama. Untuk memaparkan kita akan menggunakan fungsi cv2.imshow ()
cv2.imshow ("img", ubah saiz) Ini untuk memaparkan gambar utama. Argumen pertama adalah nama tetingkap yang anda boleh berikan nama yang anda mahukan dan argumen ke-2 berubah-ubah di mana gambar utama saya disimpan yang anda mahu paparkan.
Begitu juga ulangi langkah untuk topeng
cv2.imshow ("Output", topeng)
Langkah 7: Sekarang Langkah Akhir
Pada langkah terakhir ini kita akan mengekstrak warna kereta dan paparan.
Saya telah membuat hasil nama berubah-ubah. Sekali lagi anda boleh memberikan apa sahaja nama yang anda mahukan. Oleh itu, kita akan menggunakan fungsi cv2.bitwise_and () di mana kita akan menambah gambar bersama-sama dan membuat gambar baru. Dan di mana sahaja piksel di kedua-dua gambar itu ada, ia akan mengambilnya sebagai ya atau "1".
hasil = cv2.bitwise_and (ubah saiz, ubah saiz, topeng = topeng)
- Dalam ini argumen pertama akan menjadi gambaran kita
- Hujah ke-2 juga akan menjadi gambar asal kita tetapi diikuti dengan topeng yang kita buat sebelumnya
- Dan akhirnya hanya memaparkan hasilnya menggunakan fungsi imshow
Cukup copy paste langkah terakhir ini hanya kelewatan dan anda boleh keluar dari tetingkap output dengan menekan "a" pada papan kekunci
Langkah 8: Hasil Akhir
Disyorkan:
Mesin Cat Pengesanan Warna: 4 Langkah
Mesin Cat Pengesanan Warna: Mesin cat pengesan warna menyalin warna di sekeliling anda dan membolehkan anda melukisnya. Sekiranya anda mempunyai cat warna primer, anda boleh menggunakan sensor warna RGB untuk merasakan warna yang anda inginkan dan mencampurkannya. Tetapi ingat, gunakan objek berwarna terang
Pengesanan Warna Ringkas Menggunakan OpenCV: 6 Langkah
Pengesanan Warna Ringkas Menggunakan OpenCV: 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 di bingkai latar belakang atau tidak dan menggunakan modul OpenCV saya akan menutupi kawasan itu dan
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
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