Koversi Manual Citra Digital Red Green Blue (RGB) ke Citra Biner Menggunakan MATLAB
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.
- Sintaksis imbinarize(I) berfungsi untuk merubah citra (image) ke citra biner.
- Sintaksis rgb2gray(RGB) berfungsi untuk merubah citra RGB ke citra
- 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.
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.
Gambar 1. Warna RGB dalam koordinat kartesian dan kubus warna gambar
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.