Anda di halaman 1dari 4

Modul Pengolahan Citra dengan Python dan OpenCV

indeks_kolom_ke:indeks_kolom_ke, nomor_channel]. Nilai nomor_channel berurutan


adalah Blue=0, Green=1, Red=2. Contoh penerapan dapat dilihat pada Gambar 3.7.

Bisa juga ditulis:


cobawarna[:,:,0]

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.

3. Menampilkan Beberapa Citra Sekaligus


Saat Anda mempelajari beberapa teknis pengambilan informasi dasar pada citra pada sub bab G.2,
Anda akan mendapati terdapat kekurangan dalam mengeksekusi citra pada Python, dimana
beberapa citra bisa dibaca sekaligus dalam skrip Python, namun Python tidak mendukung fitur
untuk menampilkan citra secara bersamaan, tapi seakan-akan bertumpuk. Jika kita close salah satu
output citra, output citra lain baru bisa tampil begitu seterusnya. Hal ini tentu akan menyulitkan
kita untuk ingin menampilkan keluaran berupa beberapa citra sekaligus dalam satu kali eksekusi.
Oleh karena itu, pada Python perlu ditambahkan modul lain untuk dapat menampilkan output lebih
dari satu citra dalam satu kali eksekusi. Bisa menggunakan hstack() dan vstack() yang
disediakan oleh modul numpy atau bisa juga menggunakan subplot() yang disediakan oleh
modul matplotlib.pyplot.

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 Contoh Penggunaan Metode hstack()

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.

Gambar 3.9 Proses Instalasi Matplotlib

Setelah Matplotlib terpasang, untuk menggunakannya cukup menuliskan import


matplotlib.pyplot di awal skrip Python. Pengunaan metode subplot() yang disediakan
modul inilah yang menjadi alternatif terhadap penggunaan cv2.imshow() dalam menampilkan
citra sekaligus.

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 Contoh Penggunaan subplot()

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().

4. Membuat Inversi Citra (Citra Negatif) dan Kecerahan Intensitas Citra


Citra negatif merupakan citra yang dihasilkan dengan membalik nilai setiap elemen piksel citra.
Pada citra berskala grayscale dapat dilakukan dengan menggunakan rumus:
matriksCitraNegatif = 255 – matriksCitraGrayscale. Rumus ini mendefinisikan
bahwa terjadi operasi pengurangan matriks antara nilai skalar 255 dikurangi semua elemen matriks
dari citra grayscale. Contoh penerapannya dapat dilihat pada Gambar 3.11.

Kode:

52

Anda mungkin juga menyukai