Daftar Isi:
- Perlengkapan
- Langkah 1: Mengimpor Perpustakaan
- Langkah 2: Membuat Track Bar
- Langkah 3: Membuat TrackBars untuk Hue, Saturation dan Value
- Langkah 4: Cara Membaca dan Mengubah Ukuran Gambar
- Langkah 5: Membaca Nilai Track Bar untuk Menerapkannya ke Gambar
- Langkah 6: Menampilkan Gambar dan Mengatur Batas Atas dan Bawah
- Langkah 7: Sekarang Langkah Terakhir
- Langkah 8: Hasil Akhir
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
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 program deteksi warna Anda sendiri.
Berikut ini adalah fungsi atau bisa kita katakan teknik yang akan Anda pelajari, 1. Cara membaca gambar
2. Cara membuat Track Bar
3. Bagaimana mengatur nilai Hue, Saturation dan nilai dari sebuah gambar menggunakan track bar
4. Dan kemudian akan ada hasil akhir Anda
Anda dapat menonton video dari output yang saya lampirkan di bawah ini.
Jadi mari kita mulai
Perlengkapan
- Python 3
- perpustakaan openCV
- perpustakaan numpy
Langkah 1: Mengimpor Perpustakaan
Gambar ferrari kuning seperti yang ditunjukkan dan kami akan memprogram untuk mengekstrak hanya warna kuning dari gambar itu
Langkah pertama adalah mengimpor perpustakaan kami
1. Termasuk perpustakaan openCV. Itu disebut cv2 di python
2. Termasuk perpustakaan numpy sebagai np. The "as" memungkinkan kita untuk numpy sebagai np jadi tidak perlu menulis numpy lagi dan lagi
Langkah 2: Membuat Track Bar
Track Bar dibuat untuk menyesuaikan nilai Hue, Saturation dan Value dalam sebuah gambar.
cv2.namedWindow("TrackBars") Baris kode ini digunakan untuk membuat jendela keluaran baru dan nama jendela diberikan sebagai TrackBars (Anda dapat memberikan nama apa pun yang Anda inginkan)
cv2.resizeWindow("TrackBars", 600, 250) Fungsi ini digunakan untuk mengubah ukuran jendela. "TrackBars" adalah jendela mana yang ingin Anda ubah ukurannya karena saya ingin mengubah ukuran jendela TrackBars Saya telah menulis nama itu. Diikuti oleh dua bilangan bulat. Kedua bilangan bulat itu adalah lebar dan tinggi. Anda dapat bermain-main dengan dua angka itu untuk mengubah ukurannya
Langkah 3: Membuat TrackBars untuk Hue, Saturation dan Value
Sekarang kita akan membuat total 6 TrackBars untuk Hue, Saturation dan value. Masing-masing akan memiliki dua yaitu 1 untuk minimum dan 1 untuk maksimum. Kami akan menggunakan fungsi createTrackbar dari openCV. Pertama kita akan melihat sintaks dari fungsi ini.
cv2.createTrackbar("WINDOWNAME", "MAINWINDOWNAME", "RANGE"). Ini mungkin membingungkan tapi jangan khawatir kita akan melalui setiap langkah. Ingatlah satu hal bahwa dalam openCV nilai hue adalah 179, saturasi adalah 255 dan nilainya adalah 255
1. Membuat TrackBar untuk rona min:
cv2.createTrackbar("Hue min", "TrackBars", 0, 179, kosong)
Dalam Hue min ini adalah nama trackbar, TrackBars adalah jendela utama, 0 adalah posisi dimana slider kita akan berada dan 179 adalah range yang berarti 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 jendela utama, 179 adalah posisi dimana slider kita akan berada dan 179 adalah jangkauan maksimum yang berarti silder akan bergerak dari 179-0
3. Demikian pula ulangi langkah-langkah untuk sat min, sat max, val min dan val max seperti yang ditunjukkan pada gambar
Gambar dengan latar belakang putih adalah gambar keluaran. Beginilah tampilan bilah trek Anda
Langkah 4: Cara Membaca dan Mengubah Ukuran Gambar
cv2.imread() memungkinkan Anda membaca gambar. Satu pemikiran penting yang perlu Anda ingat bahwa lokasi gambar Anda harus berada di folder yang sama dengan tempat program disimpan. Kita akan memasukkan while loop karena harus dijalankan sampai sedang membaca gambar atau bisa kita katakan sampai kondisinya benar
img = cv2.imread("ferrari.jpg")
- Dalam hal ini saya telah membuat nama variabel " img " di mana saya menyimpan gambar
- Di dalam cv2.imread tulis nama gambar dengan ekstensi di dalam tanda kutip ganda
Untuk mengubah ukuran gambar kita akan menggunakan fungsi cv2.resize. Bagian ini opsional, jika Anda ingin mengubah ukuran maka Anda dapat menggunakan fungsi ini
Di dalam cv2.resize pertama tulis nama variabel di mana gambar disimpan dan kemudian lebar dan tingginya
Langkah 5: Membaca Nilai Track Bar untuk Menerapkannya ke Gambar
Ok jadi sekarang kita akan membaca nilai trackbar bar sehingga kita bisa menerapkannya pada gambar kita. Kita akan mendapatkan nilai menggunakan fungsi cv2.getTrackbarPos().
Mari kita mulai dengan bagian itu…
h_min = cv2.getTrackbarPos("Hue min", "TrackBars")
Dalam pernyataan di atas saya membuat nama variabel h_min di mana saya akan menyimpan nilai Hue min. Jadi di dalam cv2.getTrackbarPos argumen pertama adalah " Hue min " karena saya ingin nilai hue min (Ejaannya harus sama persis dengan fungsi createTrackbar) dan argumen kedua adalah nama jendela trackbar tempatnya.
- Ulangi proses yang sama untuk h_max dan fungsi lainnya seperti yang ditunjukkan pada gambar di atas dan kemudian cetak semua nilai menggunakan print()
- Outputnya ditunjukkan pada gambar kedua. Itu mencetak nilai h_min, h_max, s_min, s_max, v_min, s_max
Langkah 6: Menampilkan Gambar dan Mengatur Batas Atas dan Bawah
Sekarang kita memiliki nilai min dan max dari hue, saturation dan value, kita akan menggunakan nilai ini untuk memfilter gambar sehingga kita bisa mendapatkan output warna tertentu dari sebuah gambar.
Kami akan membuat topeng untuk ini menggunakan fungsi cv2.inRange. Dan sebelum itu kita akan mengatur batas atas dan bawah dari hue, saturation dan value
Jadi buat nama variabel " lebih rendah " dan gunakan fungsi array numpy atur rentang min untuk ketiganya sebagai berikut
lebih rendah = np.array([h_min, s_min, v_min])
Ulangi langkah yang sama untuk bagian atas
atas = np.array([h_max, s_max, v_max])
Sekarang kita akan membuat topeng sebagai berikut
mask = cv2.inRange(resize, lower, upper) Di dalam cv2.inRang argumen pertama akan menjadi variabel di mana gambar terakhir saya disimpan, argumen ke-2 akan menjadi batas bawah dan argumen ke-3 akan menjadi batas atas.
Sekarang kita akan menampilkan gambar utama dan topeng. Untuk menampilkan kita akan menggunakan fungsi cv2.imshow()
cv2.imshow("img", ubah ukuran) Ini untuk menampilkan gambar utama. Argumen pertama adalah nama jendela yang dapat Anda beri nama apa pun yang Anda inginkan dan argumen kedua adalah variabel di mana gambar utama saya disimpan yang ingin Anda tampilkan.
Demikian pula ulangi langkah untuk topeng
cv2.imshow("Keluaran", topeng)
Langkah 7: Sekarang Langkah Terakhir
Pada langkah terakhir ini kita akan mengekstrak warna mobil dan tampilannya.
Saya telah membuat hasil nama variabel. Sekali lagi Anda dapat memberikan nama yang Anda inginkan. Jadi kita akan menggunakan fungsi cv2.bitwise_and() di mana kita akan menambahkan gambar bersama-sama dan membuat gambar baru. Dan di mana pun piksel di kedua gambar ada, itu akan dianggap sebagai ya atau " 1 ".
hasil = cv2.bitwise_and(mengubah ukuran, mengubah ukuran, mask=mask)
- Dalam argumen 1 ini akan menjadi gambar kita
- Argumen ke-2 juga akan menjadi gambar asli kami tetapi diikuti oleh topeng yang diterapkan yang kami buat sebelumnya
- Dan akhirnya hanya menampilkan hasilnya menggunakan fungsi imshow
Cukup salin tempel langkah terakhir ini hanya penundaan dan Anda dapat keluar dari jendela output dengan menekan " a " pada keyboard