Back
- Home
- Blog
-
Image Processing Menggunakan OpenCV
Image Processing Menggunakan OpenCV
April 2, 2023
Kita akan belajar bagaimana caranya memproses sebuah gambar
dengan menggunakan beberapa library. Untuk memudahkan proses
belajar dan iterasi, silahkan gunakan Jupyter Notebook atau
Google Colab yaa. Kemudian import librarynya seperti yang ada di
bawah ini.
Jadi kita akan menggunakan gambar burung diatas ini sebagai contoh
untuk memahami bagaimana sebuah gambar diproses.
Kita akan baca gambar diatas, pastikan sudah melakukan import
library yang sudah dibutuhkan dan simpan gambar diatas di
root directory kalian.
Ketika dijalankan, pasti teman-teman akan menemukan kumpulan
array. Betul, jadi gambar tadi akan dibaca berdasarkan channel
warnanya.
Semua gambar umumnya memiliki 3 channel warna yang kita sebut RGB.
Contohya pada gambar burung diatas artinya dia memiliki lebar
10px, tinggi 5px, dan kedalaman 3 channel warna.
Cara mencek-nya seperti ini:
(1200, 1600, 3)
3 channel warna ini bisa memiliki valuenya masing-masing. Skalanya
dari 0 - 255. Value inilah yang akhirnya akan menghasilkan warna
pada gambar.
Contohnya channel warna Red 240, Green 60, Blue 234 pasti akan
menghasilkan warna pink. Tidak percaya? Silahkan cek di
RGB Calculator
Namun ada yang sedikit berbeda dengan OpenCV. Jika umumnya kita
sering mendengar istilah RGB, OpenCV justru membaca sebuah gambar
dengan channel BGR (Blue Green Red). Sehingga nanti warna dari
output gambarnya akan berbeda.
Baca gambar dengan OpenCV
Cek shape gambar
Tampilkan gambar yang dibaca dengan OpenCV
Tada!! Harusnya kamu sudah melihat gambar burung tadi dengan
channel warna yang dimulai dengan BGR.
Jujur saya belum tahu alasan kenapa OpenCV membaca warna dari BGR
bukan RGB.
Namun di beberapa kasus, kita kadang hanya membutuhkan 1 channel
warna saja, atau yang biasa kita sebut Grayscale image. Dalam
grayscale juga hanya memiliki value dari skala 0 - 255. Dimana
semakin ke tinggi, warnanya akan semakin cerah.
Atau mudahnya, 0 adalah hitam dan 255 adalah putih.
Tujuan dari konversi gambar ke grayscale ini adalah untuk membantu
komputer lebih mudah memahami gambar kita. Secara logika memahami
1 hal lebih mudah daripada memahami 3 hal sekaligus.
Untuk melakukan convert ke grayscale kita akan menggunakan fungsi
convert color dari OpenCV, menggunakan image yang tadi sudah kita
proses yaa.
Membaca gambar burung dan membaca shapenya. Terdeteksi gambar
masih memiliki 3 channel warna.
(1200, 1600, 3)
Convert ke grayscale
(1200, 1600)
Tampilkan gambarnya
Viola! Kamu sudah berhasil mengubah sebuah gambar ke dalam bentuk
grayscale dengan menggunakan fungsi convert color di OpenCV.
Mari kita lihat pixel per pixel dari pojok kiri gambar yang sudah
diconvert ke grayscale ini
# Hasil
array([[63, 59, 54, 50, 52, 57, 58, 56, 55, 54],
[60, 59, 56, 53, 53, 56, 56,
54, 57, 55],
[56, 58, 58, 55, 54, 54, 54,
53, 55, 52],
[52, 56, 58, 56, 53, 53, 55,
55, 54, 52],
[51, 55, 58, 55, 52, 54, 56,
58, 56, 55],
[51, 55, 58, 55, 53, 55, 57,
58, 56, 56],
[52, 56, 59, 58, 56, 56, 56,
54, 55, 54],
[52, 57, 60, 60, 59, 57, 54,
50, 58, 55],
[60, 62, 56, 64, 58, 65, 57,
58, 59, 60],
[58, 59, 57, 60, 58, 61, 57,
57, 60, 60]], dtype=uint8)
Tampilkan gambar dengan Matplotlib
Di atas ini adalah pojok kiri gambar atas dengan ukuran 10x10
pixel, dari ukuran gambar aslinya 1200x1600 pixel.
Kemudian akan ada saatnya kita perlu meresize gambar kita, baik
itu menjadi lebih kecil atau lebih besar. Kita juga bisa
menggunakan fungsi resize yang ada di dalam OpenCV.
(400, 500)
Tampilkan gambar yang sudah dikecilkan
Kita juga bisa memperbesarnya
(1600, 2000)
Tampilkan gambarnya
Tada!!! Kamu sudah berhasil mempelajari image processing sederhana
yang nantinya akan berguna ketika masuk mendalami tentang
computer vision. Namun masih banyak yang bisa kamu eksplor
dalam library OpenCV ini seperti
Contour, Edge detection, Median blur, dan lain-lain. Ada
juga library lainnya yang bisa kamu gunakan, seperti Glob, Pillow,
dan Scikit-image.
Sekian modul tentang image processing ini, sampai jumpa di tulisan
berikutnya! π
Eric Julianto
Research Analyst at Braincore
βHe, who has a why to live for, can bear with almost any
how.β