Tutorial MATLAB : Konversi Manual Citra Digital RGB ke Citra Biner

Konversi citra digital RGB ke grayscale dan biner dapat dilakukan menggunakan MATLAB. MATLAB menyediakan sintaksis-sintaksis yang mempermudahkan konversi gambar secara langsung. Contoh berapa sintaksis untuk konversi gambar yang disediakan oleh MATLAB yaitu sebagai berikut.

  1. Sintaksis imbinarize(I) berfungsi untuk merubah citra (image) ke citra biner.
  2. Sintaksis rgb2gray(RGB) berfungsi untuk merubah citra RGB ke citra
  3. Sintaksis imbinarize(I, T) berfungsi untuk merubah citra ke citra biner berdasarkan ambang batas (threshold) intensitas gambar. Jika nilai di atas threshold, maka akan dinyatakan menjadi putih. Sebaliknya, jika nilai di bawah threshold, maka akan dinyatakan menjadi hitam.


Gambar 1. Warna RGB dalam koordinat kartesian dan kubus warna gambar

Lalu, bagaimanakah kita merubah citra RGB ke citra biner tanpa menggunakan sintaksis dari MATLAB? Pertama, kita perlu mengerti terlebih dahulu konsep citra berwarna dan representasi warnanya, serta pengaplikasiannya pada MATLAB. Pada Gambar 1 telah digambarkan tiga komponen utama warna yaitu red (R), blue (B), dan green (G).  Maka, gambar tersebut dapat direpresentasikan menjadi  warna atau 16.581.375 warna. Hal ini menyimpulkan bahwa penyusun warna suatu piksel pada citra terdiri dari tiga susunan yaitu R, G, dan B.

Gambar 2. Citra RGB

Pada command window MATLAB, Gambar 2. akan diukur menggunakan perintah size, yaitu sebagai berikut.

  • citraRGB = imread (‘E:\gambar.png’);
  • size (citraRGB)

ans =   383   511     3

Deret ketiga menyatakan 3, hal ini mengartikan bahwa terdapat tiga sususan pada citra tersebut, yaitu R, G, dan B. Maka dari itu, R, G, dan B dapat direpresentasikan sebagai berikut.

  • R = citraRGB(:,:,1);
  • G = citraRGB(:,:,2);
  • B = citraRGB(:,:,3);

Kedua, setelah melewati tahap pertama, Gambar 2. akan diubah menjadi grayscale sebelum diubah menjadi biner agar lebih mempermudah. Citra RGB dapat diubah ke grayscale berdasarkan rekomendasi ITU-R BT. 601-7, yaitu menggunakan ru mus berikut.

0.299 * R + 0.587 * G + 0.114 * B

Kita maksukan R, G, dan B yang telah diinisialisasi pada tahap sebelumnya sebagai berikut.

  • citraAbu = uint8 (0.2990*double(R)+0.587*double(G)+0.114*double(B))

Sintaksis uint8(X) berfungsi untuk mengubah nilai X ke tipe uint8 (8-bit unsigned integer arrays) yang mengkonversi nilai X menjadi rentang nilai 0 sampai 255. Setelah itu, tampilkan citra menggunakan sintaksis imshow(citraAbu).

  • imshow(citraAbu)

Terakhir, citra grayscale diubah menjadi bentuk biner berdasarkan threshold yang telah ditentukan. Citra grayscale yang telah dikonversi (citraAbu) akan diubah menjadi citra biner. Berikut proses yang dilakukan.

  • [tinggi, lebar] = size (citraAbu);

threshold = 125;

citraBiner = zeros(tinggi, lebar)

for baris= 1 : tinggi

for kolom= 1 : lebar

if citraAbu (baris, kolom) >= threshold

citraBiner (baris, kolom) = 0;

else

citraBiner (baris, kolom) = 1;

end

end

end

imshow (citraBiner)

Jika baris dan kolom lebih atau sama dengan threshold maka akan piksel menjadi putih, sebaliknya, jika baris dan kolom kurang dari threshold maka piksel menjadi hitam.

 

Ditulis oleh Aaron Abel – Engineering Assistant

Unit Laboratorium Fakultas Ilmu Terapan

View posts by Unit Laboratorium Fakultas Ilmu Terapan

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>