Citra berwarna dapat diketahui komponen Red-Green-Blue penyusunnya. Dalam OpenCV sedikit berbeda, yaitu Blue-Green-Red (BGR). Sistem yang menentukan kematangan buah misalnya, membutuhkan nilai RGB suatu buah yang matang atau belum. Nah, di sini kita coba menggunakan OpenCV yang berjalan di Google Colab untuk menentukan kadar RGB-nya yang kemudian dihitung rata-rata untuk menentukan warna dominan-nya. Dalam prakteknya tidak hanya menggunakan rata-rata melainkan dengan sistem berbasis Jaringan Syaraf Tiruan atau Deep Learning.
Mengimpor Library
Beberapa Library diperlukan antara lain CV2, NumPy, dan Google Colab File (untuk input output interface). Gunakan kode berikut di awal untuk sel baru.
-
import cv2
-
import numpy as np
-
import pandas as pd
-
from google.colab.patches import cv2_imshow
-
from google.colab import files
-
import io
Jalankan sel tersebut pastikan tidak ada kesalahan karena akan menentukan instruksi berikutnya.
Mengambil File Citra
Berikutnya adalah mengupload citra. Sebenarnya upload bisa lewat mekanisme upload di Google Colab. Tapi bisa juga dengan memanfaatkan I/O Google Colab, kita tinggal memilih file citra yang akan diuplad.
-
upload_files=files.upload()
-
for filename in upload_files.keys():
-
upload_files.keys
-
print(‘nama file: ‘,filename)
-
citra=cv2.imread(filename)
Di sini variabel upload_files berisi filename yang akan digunakan untuk imread pada OpenCV untuk mengambil matriks RGB citra tersebut. Gunakan citra RGB untuk latihan ini.
Mengolah Matriks Citra
Citra berwarna memiliki tiga komponen matriks yaitu biru, hijau, dan merah yang masing-masing berturut-turut diberi indeks 0, 1, dan 2.
-
blue=citra[:,:,0]
-
green=citra[:,:,1]
-
red=citra[:,:,2]
-
b=np.average(blue)
-
g=np.average(green)
-
r=np.average(red)
-
print(b)
-
print(g)
-
print(r)
Variabel b, g, dan r berturut-turut rata-rata dari total matriks blue, green, dan red. Fungsi print hanya digunakan untuk mengetahui skor rata-rata untuk mengecek akurasi if-else tahap berikutnya.
Deteksi Warna Dominan
Langkah terakhir adalah instruksi if-else untuk mendeteksi mana nilai yang terbesar apakah blue, green, ataukah red.
-
if b>g:
-
if b>=r:
-
result=print(‘warna dominan: blue’)
-
print(b)
-
else:
-
if g>=r:
-
result=print(‘warna dominan: green’)
-
print(g)
-
else:
-
result=print(‘warna dominan: red’)
-
print(r)
Jalankan dan pastikan warna dominan sesuai dengan kenyataannya.