Bagaimana Mengkonversi Citra Berwarna, Citra Keabuan dan Citra Biner ?

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

Subscribe to receive free email updates:

10 Responses to "Bagaimana Mengkonversi Citra Berwarna, Citra Keabuan dan Citra Biner ?"

  1. postingan yang bermanfaat..
    saya mau tanya, gimana mengembalikan/mengkonversi citra keabuan ke citra berwarna? bisa tidak ya gan? mohon dijawab ya

    ReplyDelete
    Replies
    1. Mengembalikan dari grayscale ke RGB kemungkinan bisa dilakukan, namun kombinasi warna RGBnya pun akan menjadi acak. Tapi bisa dilakukan

      Delete
    2. Gimana caranya ya merubah grayscale ke RGB?

      Delete
    3. Gimana caranya ya merubah grayscale ke RGB?

      Delete
  2. Nice info gan,.. haha
    pengen terdokumentasikan kek gini, kuliah lalu ditulis di blog. :3

    ReplyDelete
  3. Gan boleh minta programnya ini enggak?..

    ReplyDelete
  4. Bermanfaat, coba kunjungi https://rootorial.com jika ingin belajar pemrograman android dan python

    ReplyDelete

Terima Kasih Telah Berkunjung, Silakan Berkomentar...
Kritik dan Saran Teman-Teman Sangat Memotivasi Saya (^_^)