Membuat Color Trackbar Menggunakan Opencv Python


Pada akhir posting ini, Anda akan membuat trackbar / slider warna HSV dasar yang cukup menyaring berbagai warna, sehingga Anda memiliki rentang warna yang ingin Anda identifikasi. HSV adalah singkatan dari 'Hue, Saturation, Value'. Ini terdiri dari 3 nilai terpisah yang menentukan rentang warna yang ingin Anda temukan. Kita juga akan mencoba menambahkan salah satu operasi morfologi yaitu erosi. Kemudian nanti anda bisa bereksperimen sendiri untuk membuat trackbar yang anda inginkan seperti max min dan lain lain.

Tutorial ini mengasumsikan Anda pernah menggunakan Python dan telah mencoba-coba dengan OpenCV. Jika Anda belum pernah menyentuh OpenCV, tutorial ini masih memiliki tautan ke apa pun yang perlu Anda ketahui untuk menyelesaikan penulisan kode ini. Library yang digunakan adalah opencv dan numpy, untuk menginstallnya cukup menggunakan pip install cv2 dan pip install numpy.

1. Membuat Trackbar


OpenCV memiliki tutorial yang cukup bagus untuk membuat trackbars, tetapi disini kita akan memodifikasi sedikit sesuai yang dibutuhkan. Anda bisa banyak membaca pada dokumentasi yang disediakan opencv karena saya rasa disana cukup lengkap sehingga nantinya anda cukup untuk memodifikasi sesuai kebutuhan anda. 
Disini kita akan mencoba menyelesaikan suatu masalah yang berbeda. Anda mungkin bertanya-tanya apa parameter fungsi cv2.createTrackbar (). Jadi parameternya adalah sebagai berikut:

cv2.createTrackbar (trackbar name, window name, minimum, maksimum, argumen)


Pada baris 2-3 kita melakukan pemanggilan packages/library yang kita gunakan yaitu opencv dan numpy. Pada baris 6-10 kita membuat sebuah fungsi yang diberi nama kamera dengan inputan x dimana digunakan untuk memilih kamera dan memberi nama window yaitu gambar. Kernel disini digunakan untuk  mengembalikan array baru dari bentuk dan jenis yang diberikan, diisi dengan nilai satu.

Kami menetapkan nama trackbar di baris 13-18 dan kita juga sebenarnya bisa langsung memasukkan nama tersebut saat membuat trackbar. Pada baris 21-26, posisi minimum trackbar untuk semua instance adalah 0. Dalam istilah yang lebih sederhana, ketika Anda menggeser slider, itu tidak akan di bawah nilai 0 karena tidak ada nilai HSV negatif. Posisi maksimum bervariasi. Untuk nilai-nilai Hue itu pergi dari 0-180, dan untuk Saturasi dan Val, itu pergi dari 0-255.

2. Proses Trackbar


Jangan khawatir jika Anda tidak mendapatkan kode, tetapi cobalah membaca dan memahami sebanyak yang Anda bisa.
Yang kami lakukan di sini adalah membaca aliran yang sebelumnya kami tetapkan sebagai cap. Membaca frame menggunakan fungsi x.read () mengembalikan tuple. Anda dapat mengabaikan nilai pertama untuk saat ini, dan memanggil frame nilai kedua. Variabel frame ini sebenarnya merupakan array nilai. Setiap elemen dari array ini mengandung nilai BGR (Biru, Hijau, Merah). Secara konkret, setiap elemen adalah sebuah pixel.

Kami juga memperkenalkan Gaussian Blur. Ini biasanya diterapkan untuk mengurangi anomali piksel tunggal saat mencari larik. Baca lebih lanjut tentang fungsi Gaussian blur di sini, tetapi demi kesederhanaan, ingatlah bahwa parameter pertama adalah larik piksel yang Anda terima dari cap.read (), dan nomor lainnya umumnya tidak tersentuh.

Konversi antara BGR ke HSV adalah diibaratkan mengkonversi antara mp3 dan wav untuk file musik Anda. Anda pada dasarnya mengubah data dalam frame sehingga menjadi dapat dibaca dengan cara yang berbeda. Itulah fungsi cv2.cvtColor (). Anda kemudian menamai array baru Anda 'hsv'.
Hal-hal di atas cukup jelas. Anda membaca trackbars dengan cv2.getTrackbarPos () dan menetapkan mereka ke variabel (Anda dapat menamai semuanya).
Di baris 19-10, frame terakhir Anda seharusnya tidak menampilkan seluruh frame, seharusnya hanya menampilkan rentang yang ditentukan oleh trackbar Anda. Untuk melakukan itu, Anda harus membuat array numpy dengan nilai HSV yang lebih rendah, dan satu dengan nilai HSV Anda yang lebih tinggi. Anda kemudian harus membuat mask untuk menerapkan rentang ini ke frame. Itulah yang dilakukan cv2.inRange(). Kemudian kita juga akan menampilkan frame erosi yaitu menggunakan fungsi cv2.erode().
Fungsi cv2.bitwise_and memungkinkan Anda untuk menampilkan mask Anda (gambar HSV dengan rentang yang difilter) kembali ke frame awal Anda. cv2.imshow () mengambil 2 parameter, yaitu, window name dan image array. Kami akan menyimpan nama jendela awal kami, dan kami akan memilih untuk menampilkan res array, karena itu berisi array yang difilter yang ditampilkan pada frame awal. Baris 6-8 hanya memungkinkan Anda untuk keluar dari keseluruhan proses dengan menekan ‘q’. Untuk merunning program cukup dengan menjalankan python Color_trackbar.py. Sekarang coba-coba dengan trackbars untuk menemukan rentang warna yang Anda inginkan. Untuk full codenya bisa download disini.

Untuk saat ini mungkin sekian dulu yang bisa saya share, good luck codeers

Membuat Color Trackbar Menggunakan Opencv Python Membuat Color Trackbar Menggunakan Opencv Python Reviewed by thinkstudio on July 11, 2018 Rating: 5

No comments:

Powered by Blogger.