Bagaimana Mengkonversi Citra Berwarna, Citra Keabuan dan Citra Biner?

Table of Contents
Seringkali dalam proses pengolahan citra, citra berwarna harus dikonversi ke dalam bentuk citra lain yaitu citra keabuan (grayscale), ataupun bisa juga citra keabuan dikonversi ke dalam citra biner. Konversi ini diperlukan karena operasi pemrosesan citra membutuhkan jenis citra yang sesuai. Berikut penjelasannya. 

Mengonversi Citra Berwarna ke Citra Keabuan

Secara umum, citra berwarna dapat dikonversi ke citra berskala keabuan menggunakan rumus 1 berikut : 

I=a x R+b x G+c x B,   dengan a+b+c=1

dengan R menyatakan nilai komponen merah, G menyatakan nilai komponen hijau, dan B menyatakan nilai komponen biru. Misalnya, sebuah piksel mempunyai komponen R, G, B sebagai berikut:

R = 50
G = 70
B = 61

Jika a, b, dan c pada rumus 1 dibuat sama, akan diperoleh hasil seperti berikut :

I = (50 + 70 + 60) / 3 = 60

Salah satu contoh rumus yang biasa dipakai untuk mengubah ke skala keabuan yaitu rumus 2 berikut :

I=0,2989 x R+0,5870 x G+0,1141 x B

Contoh berikut menunjukkan cara melakukan konversi dari citra berwarna ke citra berskala keabuan menggunakan rumus 2. Sementara itu gambar 1 menunjukkan citra berwarna sebelum proses konversi ke citra keabuan. 

Gambar 1 Citra Warna
Img = imread('gambarWarna.jpg');
hasil = uint8(0.2989 * double(Img(:,:,1)) + ...
        0.5870*double(Img(:,:,2)) + ...
        0.1141 * double(Img(:,:,3))); 
imshow(hasil)
Kode diatas adalah rumus 2 untuk merubah citra berwarna ke citra keabuan, tentunya ada beberapa rumus lain yang dapat digunakan. Rumu-rumus untuk merubah citra ke grayscale telah saya jelaskan lebih dalam di Tiga Metode Algoritma Mengubah R G B Menjadi Grayscale

Penjelasan kode :
  • Tanda ... menyatakan bahwa perintah pada baris tersebut masih memiliki lanjutan pada baris berikutnya. 
  • Tanda : berarti semua nilai
  • double dipakai untuk melakukan konversi dari tipe bilangan bulat 8 bit (uint8) ke tipe double (yang memungkinkan pemrosesan bilangan real berpresisi ganda).
  • uint8 berguna untuk mengonversi dari tipe double ke uint8 (tipe bilangan bulat 8 bit).
Hasil konversi ditunjukkan oleh gambar 2 berikut : 

Gambar 2 Hasil konversi citra berwarna ke citra keabuan
Mengkonversi citra berskala keabuan ke citra biner

Strategi yang dipakai untuk mengkonversi dari citra berskala keabuan ke citra biner adalah dengan cara menerapkan nilai yang dikenal sebagai nilai ambang (threshold). Nilai ambang digunakan untuk menentukan suatu intensitas akan dikonversi menjadi 0 atau menjadi 1. Secara matematis, konversi dinyatakan dengan rumus :




Program berikut merupakan contoh untuk mengkonversi citra berskala keabuan ke citra biner :

% KEBINER Digunakan untuk mengonversi file 
%    daun_gray.png ke citra biner
 
Img = imread('c:\Image\daun_gray.png');
[tinggi, lebar] =  size(Img);
 
ambang = 180; % Nilai ini bisa diubah-ubah
biner = zeros(tinggi, lebar);
for baris=1 : tinggi
    for kolom=1 : lebar
        if Img(baris, kolom) >= ambang
           Biner(baris, kolom) = 0;
        else
           Biner(baris, kolom) = 1;
        end   
    end
end
    
imshow(Biner);

Citra keabuan yang digunakan adalah citra daun :
Citra daun berskala keabuan 
Citra keabuan setelah dikonversi menjadi citra biner dengan nilai ambang 180 : 

Citra daun berskala biner
Untuk memperoleh hasil terbaik, nilai ambang pada program dapat diubah-ubah. Berikut ini adalah hasil citra biner dengan nilai ambang yang berbeda-beda :

Hasil konversi ke citra biner dengan nilai ambang yang berbeda
Semoga penjelasan singkat tersebut bermanfaat. 

Salam







Referensi : 
  • Kadir, Abdul dan Susanto, Adhi. Teori dan Aplikasi Pengolahan Citra. Yogyakarta : Andi. 2012

10 comments

Terima kasih telah mampir di blog kami. Jika ingin menghubungi penulis, silakan kirim pesan via email di kitainformatika@gmail.com atau via WA di 087750503014. Jika mood penulis lagi baik, biasanya fast respon.
Comment Author Avatar
May 19, 2016 at 9:17 AM Delete
postingan yang bermanfaat..
saya mau tanya, gimana mengembalikan/mengkonversi citra keabuan ke citra berwarna? bisa tidak ya gan? mohon dijawab ya
Comment Author Avatar
May 19, 2016 at 3:55 PM Delete
Mengembalikan dari grayscale ke RGB kemungkinan bisa dilakukan, namun kombinasi warna RGBnya pun akan menjadi acak. Tapi bisa dilakukan
Comment Author Avatar
June 19, 2016 at 4:44 AM Delete
Gimana caranya ya merubah grayscale ke RGB?
Comment Author Avatar
June 19, 2016 at 4:44 AM Delete
Gimana caranya ya merubah grayscale ke RGB?
Comment Author Avatar
June 20, 2016 at 4:10 AM Delete
Googling gan (^_^)
Comment Author Avatar
November 2, 2016 at 10:49 AM Delete
Nice info gan,.. haha
pengen terdokumentasikan kek gini, kuliah lalu ditulis di blog. :3
Comment Author Avatar
November 3, 2016 at 11:44 AM Delete
Ayo semangat ngeblog fal...
Comment Author Avatar
May 16, 2017 at 8:10 AM Delete
Gan boleh minta programnya ini enggak?..
Comment Author Avatar
September 26, 2017 at 7:19 PM Delete
download aja phyton
Comment Author Avatar
June 28, 2018 at 8:02 AM Delete
Bermanfaat, coba kunjungi https://rootorial.com jika ingin belajar pemrograman android dan python