Gambar 3.7 Menampilkan Citra dalam Channel 0 (Blue), 1 (Green), dan 2 (Red)
Gambar 3.7 menunjukkan bahwa ketika citra ditampilkan ke dalam channel warnanya masing-
masing, warna citra yang muncul tetap terlihat seperti grayscale, hanya yang membedakan adalah
kecerahan dari ketiga citra, tergantung dominan warna apa di citra, apakah blue, green, ataukah
red.
hstack() digunakan untuk menggabungkan citra dalam beberapa baris. Perintah untuk
menggunakan hstack() adalah numpy.hstack(citra1,citra2). Sedangkan vstack()
digunakan untuk menggabungkan citra dalam beberapa kolom. Perintah untuk menggunakan
vstack() adalah numpy.vstack(citra1,citra2). Cara penggunaan dapat dilihat pada
Gambar 3.8
Kode:
49
Modul Pengolahan Citra dengan Python dan OpenCV
Output:
Gambar 3.8 menunjukkan bagaimana penggunaan metode hstack() (baris yang ditandai pada
kotak warna merah) dapat menggabungkan citra dalam beberapa baris. Akan tetapi ada kelemahan
dalam menggunakan hstack() ataupun vstack(), yaitu dimensi matriks citra baik jumlah baris,
kolom, dan jumlah channel warna harus sama. Maka dari itu, skrip Python pada Gambar 3.8
menunjukkan bahwa saat citrawarna dipanggil dengan cv2.imread(), maka citrawarna memiliki
3 dimensi matriks, sedangkan saat citraabuabu dibuat dengan mengkonversi citrawarna melalui
metode cvtColor RGB2GRAY ke citraabuabu yang hanya memiliki 1 dimensi matriks. Perbedaan
jumlah dimensi pada citrawarna dan citrabuabu inilah yang membuat metode hstack() atau
vstack() akan error jika dijalankan, sehingga perlu mengkonversi lagi citraabubuabubu dari 1
dimensi grayscale ke 3 dimensi BRG (cvtColor GRAY2BRG) melalui baris yang ditandai pada kotak
berwarna hijau. Kelemahan lain dari penggunaan hstack() ataupun vstack() adalah citra
sudah dalam keadaan bergabung dan Anda tidak bisa memberikan judul disetiap tampilan citra.
Untuk itulah metode subplot() pada modul matplotlib.pyplo hadir untuk mengatasi
permasalahan tersebut. Namun untuk bisa menggunakan metode ini, terlebih dahulu melakukan
instalasi dengan menuliskan perintah python -m pip install -U matplotlib, lalu enter
pada Command Prompt (Run as administrator). Sebelum perintah diketik, pastikan komputer
terhubung dengan jaringan internet. Setelah perintah dieksekusi, tunggu proses download dan
instalasi sampai selesai seperti yang ditunjukkan pada Gambar 3.9.
50
Modul Pengolahan Citra dengan Python dan OpenCV
Metode subplot() menggunakan bilangan bulat untuk menentukan jumlah baris dan kolom pada
window grafik, serta nomor urut untuk menampilkan citra dalam grafik. Cara untuk menggunakan
metode ini adalah dengan menuliskan perintah pyplot.subplot(bariskolomno_urut) tanpa
spasi, kemudian dilanjutkan menuliskan pyplot.imshow(). Untuk penulisan pyplot ini bisa
Anda singkat dengan inisial. Contoh penggunaan dapat dilihat pada Gambar 3.9.
Kode:
Blok subplot(121)
Blok subplot(122)
Output:
Gambar 3.9 menunjukkan bahwa ketika menggunakan pyplot.subplot() (atau bisa ditulis
singkat menurut inisial, misal pl, maka bisa ditulis pl.subplot()), maka Anda menciptakan blok
subplot() pada koordinat tertentu yang bisa Anda isi metode pl.imshow(), pl.title(), dan
lain sebagainya. Jangan lupa di baris terakhir menuliskan pl.show() guna menampilkan seluruh
blok subplot(). Kemudian perintah seperti pl.subplot(121) itu bermakna area yang bisa
digunakan adalah sebanyak 1 baris dan 2 kolom, serta nilai 1 paling akhir bernilai urutan tampil.
Konsep penomorannya dan tata letak subplot(), bisa dilihat pada Gambar 3.10
51
Modul Pengolahan Citra dengan Python dan OpenCV
1 2
3 4
Gambar 3.10 Contoh Penomoran dan Tata Letak subplot(22…)
Hal yang perlu diperhatikan dalam menggunakan imshow pada subplot() adalah format
warnanya yang berbeda dengan cv2.imshow pada OpenCV. Kalau cv2.imshow() format
warnanya adalah BGR, sedangkan imshow() pada subplot() berformat RGB. Untuk itu, matriks
citra 3 dimensi BGR yang terbaca oleh cv2.imread() dalam objek citrafruitwarna harus
dikonversi menjadi RGB karena imshow() pada subplot() menggunakan format RGB (kode
konversi dapat dilihat pada kotak yang ditandai berwarna hijau). Jika terlupa, maka akan diperoleh
citra yang cenderung kebiruan. Begitu juga objek citrafruitabuabu yang merupakan hasil
konversi citrafruitwarna ke dalam grayscale. Jika objek ini ingin ditampilkan melalui metode
imshow() pada subplot() yang berformat RGB, maka perlu dikonversi lagi ke bentuk grayscale
pada subplot() melalui kode perintah yang tertulis pada kotak yang ditandai berwarna merah.
Jika tidak, maka citrafruitabuabu yang sebenarnya sudah berformat grayscale tetap akan
ditampilkan dalam format RGB oleh subplot().
Kode:
52