Anggri Yulio P
Web Developer, sekarang mulai jatuh hati pada Computer Vision.
March 8, 2017 10:04 pm

Mengubah Gambar Menjadi Binary Image di OpenCV

Hola, sebelumnya saya sudah membahas tentang dasar manipulasi gambar pada OpenCV dan Python. Kali ini saya akan sedikit membahas tentang bagaimana Mengubah Gambar Menjadi Gambar berbentu Biner (Binary Image).

Jadi apa itu Binary Image ? Tentu masih ingat dong tentang sistem bilangan biner sebuah sistem penulisan angka dengan menggunakan dua simbol yaitu 0 dan 1. Nah intinya Binary Image adalah keadaan dimana gambar tersebut hanya mempunyai dua warna, salah satu warnanya bisa jadi hitam atau putih. Jika membahas hitam putih, apa yang kalian ingat pertama kali ? 😀

Deddy Corbuzier

Deddy Corbuzier

OpenCV mempunyai sebuah fungsi yaitu threshold dengan penulisan cv2.threshold()  dengan parameter pertama merupakan sumber gambar (grayscale), parameter kedua adalah ambang batas (threshold) untuk mengklasifikasikan nilai pixel, parameter ketiga adalah nilai maximal pixel dan parameter keempat adalah teknik yang kita gunakan untuk mengkonversi gambar menjadi biner.

Ok, mari kita mulai. Saya menggunakan foto om Deddy Corbuzier diatas dalam menerapkan fungsi threshold ini. Langkah yang saya jalankan untuk mengubah gambar menjadi gambar biner dalam tulisan ini adalah :

  1. Membaca gambar dalam bentuk grayscale
  2. Menentukan ambang batas (threshold), nilai maksimal pixel
  3. Menampilkan gambar serta membandingkan teknik dalam mengkonversi gambar.

 

Membaca Gambar

Kode diatas adalah membaca file gambar hitamputih.jpg dalam format grayscale (parameter kedua).

Menentukan Nilai Threshold dan Maksimum Pixel

Jadi Nilai Threshold itu apaan sih ? Nilai threshold merupakan nilai batas. Misalkan kita menentukan nilai batas sebesar 125 dan nilai maksimum adalah 255 maka OpenCV akan membaca setiap pixel gambar dan mengubah nilai pixel tersebut, jika nilai pixel tersebut kurang dari 125 maka akan diubah menjadi 0 namun jika lebih besar dari 125 maka akan diubah menjadi 225.

Mari kita coba mengkonversi gambar menjadi biner. Perlu diketahui bahwa fungsi cv2.threshold mengembalikan dua nilai yaitu nilai batas dan hasil treshold.

Jalankan kode diatas, maka kita akan mendapatkan hasil seperti gambar dibawah.

Hasil Threshold

Hasil Threshold

 

Membandingkan Metode Threshold

OpenCV menyediakan beberapa teknik yang bisa kita gunakan dalam menkonversi gambar menjadi binary image.

  • cv2.THRESH_BINARY
  • cv2.THRESH_BINARY_INV
  • cv2.THRESH_TRUNC
  • cv2.THRESH_TOZERO
  • cv2.THRESH_TOZERO_INV

Mari kita bandingkan teknik diatas.

Perbandingan Teknik Threshold OpenCV

Perbandingan Teknik Threshold OpenCV

Dari hasil diatas terlihat jelas bagaimana perbandingan antara teknik yang gunakan diatas, penggunaan teknik diatas tergantung kebutuhan sistem yang akan kita bangun. Jadi kita harus pandai memilih teknik yang tepat yang akan kita gunakan.

Kesimpulan

Penggunaan Teknik Tresholding dalam OpenCV cukup mudah dan cukup banyak teknik yang telah disediakan Library yang satu ini. Kekurangan teknik-teknik diatas adalah kita harus menentukan secara manual batas ambang (nilai threshold), tentu kita akan sulit dalam menkonversi lebih dari satu gambar yang mempunyai tingkat kecerahan atau warna yang berbeda sehingga dalam kasus seperti ini kita harus mengubah nilai threshold untuk mendapatkan nilai threshold yang pas.

Silahkan download Source Code Mengubah Gambar Menjadi Binary Image di OpenCV dibawah, like dulu yah ^_^

 

Nah, untuk solusi masalah yang telah saya jelaskan diatas, pada tulisan selanjutnya saya akan membahas tentang bagaimana menerapkan teknik Adaptive Threshold dan Otsu’s Binarization kedua metode ini akan mempermudah kita dalam menentukan nilai ambang batas (threshold). Jadi, jangan lupa berlanggaan artikel di DevTrik.com biar selalu update tentang Trik & Tips OpenCV.

%d bloggers like this: