KONVERSI FORMAT CITRA RGB KE FORMAT GRAYSCALE
MENGGUNAKAN VISUAL BASIC
Hanif Al Fatta
STMIK AMIKOM Yogyakarta e-mail : hanivonitch@yahoo.com
ABSTRACTS
This paper explains how to manipulate image file format. The development of image processing requires image file type that is small enough to calculate but doesn’t erase the major feature of the image. This paper aims to explain how to manipulate RGB image into grayscale format
The first step is to extract the red value, green value and Blue value from a pixel. And then from these three values, the grayscale value calculated. Using the algorithm perform in this paper, an RGB can be transformed into Grayscale less than a seconds.
Keyword: RGB, Grayscale, image
1. PENDAHULUAN
Pada aplikasi image processing, konversi format citra ke format citra yang lain adalah hal yang sangat esensial. Hal ini berkaitan dengan beberapa hal, diantaranya adalah ukuran file yang akan diproses idealnya adalah ukuran file yang paling kecil sehingga beberapa format file gambar harus diubah misalnya dari format .bmp ke format .jpg. Konversi format file juga berpengaruh terhadap beberapa algoritma, beberapa format citra menggunakan lebih dari 1 matriks untuk merepresentasikan warna misalnya format citra RGB. Beberapa algoritma image processing hanya bisa diberlakukan untuk citra yang direpresentasikan dengan 1 matriks tunggal saja, sehingga format RGB perlu dikonversi. Pada tulisan ini akan dibahas teknik mngubah format citra .bmp yang bersifat RGB ke format grayscale.
1.1. Citra RGB
Suatu citra biasanya mengacu ke citra RGB. Sebenarnya bagaimana citra disimpan dan dimanipulasi dalam komputer diturunkan dari teknologi televisi, yang pertama kali mengaplikasikannya untuk tampilan grafis komputer. Jika dilihat dengan kaca pembesar, tampilan monitor komputer akan terdiri dari sejumlah triplet titik warna merah (RED), hijau (GREEN) dan biru (BLUE). Tergantung pada pabrik monitornya untuk menentukan apak titik tersebut merupakan titik bulat atau kotak kecil, tetapi akan selalu terdiri dari 3 triplet red, green dan blue.
citra setiap pixel pada citra direpresentasikan dengan dengan 24 bit, 8 bit untuk R, 8 bit untuk G dan 8 bit untuk B, dengan pengaturan seperti pada gambar 1.
1.2. Citra Grayscale
Dalam komputasi, suatu citra digital grayscale atau greyscale adalah suatu citra dimana nilai dari setiap pixel merupakan sample tunggal. Citra yang ditampilkan dari citra jenis ini terdiri atas warna abu-abu, bervariasi pada warna hitam pada bagian yang intensitas terlemah dan warna putih pada intensitas terkuat. Citra grayscale berbeda dengan citra ”hitam-putih”, dimana pada konteks komputer, citra hitam putih hanya terdiri atas 2 warna saja yaitu ”hitam” dan ”putih” saja. Pada citra grayscale warna bervariasi antara hitam dan putih, tetapi variasi warna diantaranya sangat banyak. Citra grayscale seringkali merupakan perhitungan dari intensitas cahaya pada setiap pixel pada spektrum elektromagnetik single band .
Citra grayscale disimpan dalam format 8 bit untuk setiap sample pixel, yang memungkinkan sebanyak 256 intensitas. Format ini sangat membantu dalam pemrograman karena manupulasi bit yang tidak terlalu banyak. Pada aplikasi lain seperti pada aplikasi medical imaging dan remote sensing biasa juga digunakan format 10,12 maupun 16 bit.
2. CARA PENELITIAN
2.1. Bahan Penelitian
Untuk melakukan penelitian ini, sumber data berupa citra RGB bertipe .bmp. Citra ini akan di konversi dengan software yang dibangun dengan software Visual Basic. Hasil akhirnya adalah citra yang telah diubah kedalam format grayscale.
2.2. Proses Konversi
Adapun proses pengubahan citra RGB ke dalam citra grayscale dapat dilihat pada gambar 3
B G R
Proses pertama adalah mengambil nilai R, G dan B dari suatu citra bertipe RGB. Pada tipe .bmp citra direpresentasikan dalam 24 bit, sehingga diperlukan proses untuk mengambil masing-masing 3 kelompok 8 bit dari 24 bit tadi. Sebagai contoh suatu pixel memiliki nilai RGB 24 bit sebagai berikut :
111100001111000011111111, untuk mendapatkan masing-masing nilai R, G dan B dilakukan operasi-operasi sebagai berikut. Untuk mendapatkan nilai R dilakukan operasi modulo dengan bilangan 256 sebagai berikut :
Nilai R = 111100001111000011111111 mod 10000000
= 11111111
Sedangkan untuk nilai G, dapat dicari dengan cara sebagai berikut:
Nilai G = (111100001111000011111111 and 1111111100000000)/100000000 = 11110000
Untuk Nilai B, dapat dicari dengan menggunakan rumus
Nilai B= (111100001111000011111111 and
111111110000000000000000)/10000000000000000 = 11110000
sehingga dari nilai pixel 1111000011110000111111112 atau 15790335 diperoleh nilai R =
Citra RGB
Ekstraksi Komponen
R, G dan B
Nilai R
Nilai G
Nilai B
Kalkulasi Nilai Grayscale
11111111 = 255
G = 11110000 = 240 B = 11110000= 240
Sehingga diperoleh triplet RGB= (255,240,240).
Setelah nilai triplet RGB kita peroleh, maka kita bisa mendapatkan nilai grayscale dari pixel tersebut. Ide dasarnya sebenarnya adalah membuat band tunggal dari 3 band RGB tadi dengan rumus tertentu. Pada penelitian ini digunakan rumus :
red = (red * 5) \ 10 green = (green * 8) \ 10 blue = (blue * 3) \ 10
gray = ((red + green + blue) * 10) \ 16
Dengan mengaplikasikan prosedur tadi pada semua pixel akan kita dapatkan citra dengan format grayscale.
3. HASIL DAN PEMBAHASAN
Program kemudian dikembangkan dalam bahasa Visual Basic. Detail programnya sebagai berikut :
Public Sub GrayScale(pict As PictureBox) On Error Resume Next
x = pict.ScaleWidth y = pict.ScaleHeight
For i = 0 To y - 1 For j = 0 To x - 1 pixel = pict.Point(j, i) red = pixel& Mod 256
green = (pixel And &HFF00) / 256& blue = (pixel And &HFF0000) / 65536
' my algorithm to grayscale picture ' is it correct?
gray = ((red + green + blue) * 10) \ 16
pict.PSet (j, i), RGB(gray, gray, gray) Next
pict.Refresh Next
End Sub
Tingkat keabuan dari citra grayscale yang diperoleh, sangat ditentukan oleh fungsi pada bagian :
red = (red * 5) \ 10 green = (green * 8) \ 10 blue = (blue * 3) \ 10
gray = ((red + green + blue) * 10) \ 16
Dengan mengganti beberapa konstanta pada persamaan-persamaan diatas akan didapatkan citra grayscale dengan tingkat keabuan yang berbeda. Berikut ini contoh hasil konversi dari RGB ke grayscale.
Gambar 4: hasil konversi citra RGB ke grayscale
4. KESIMPULAN
1. Konversi citra dari format RGB ke grayscale sangat diperlukan untuk keperluan
pemrosesan citra, diantaranya untuk memperkecil ukuran file dan untuk memenuhi syarat beberapa algoritma identifikasi yang memerlukan citra matriks tunggal.
2. Untuk mengkonversi perlu diekstraksi dulu niali R, G dan B dari suatu pixel untuk
kemudian dijadikan input untuk menentukan nilai grayscale dari pixel tersebut.
RGB format BMP Gray scale
format BMP
GrayScale(pict As PictureBox)
5. DAFTAR PUSTAKA
[1] Alfatta, H, 2007, Merancangbangun Sistem Presensi Karyawan Berbasis Pengenalan
Wajah dengan algoritma Eigenface (studi kasus : STMIK AMIKOM Yogyakarta), Sekolah Pasca Sarjana Universitas Gadjah Mada, Yogyakarta
[2]
[3] http://exchange.manifold.net/manifold/manuals/5_userman/mfd50RGB_Images_and_Chan
nels.htm
[4] Diakses tanggal : 7 Januari 2007
[5]
[6] http://en.wikipedia.org/wiki/Grayscale