Mengkonversi Ruang Warna di MATLAB

Tuesday 26 April 2016

Oleh: Muryan Awaludin 


Secara otomatis toolbox MATLAB menggunakan ruang warna RGB (Red, Green, Blue) dalam mempresentasikan warna. Namun, ternyata masih ada beberapa ruang warna lain dengan kondisi tertentu daripada menggunakan RGB. Ruang warna tersebut seperti NTSC, YCbCr, HSV, CMY, CMYK, dan HSI. Toolbox MATLAB sudah menyediakan fungsi-fungsi untuk mengkonversi dari RGB ruang warna di atas atau sebaliknya.

Nah, sekarang saya akan coba satu-satu membedah beberapa ruang warna. Pertama saya akan mencoba membahas secara singkat tentang ruang warna NTSC. Sistem warna NTSC umumnya yang dipakai di Amerika Serikat. Salah satu keuntungannya ialah informasi kabuan terpisah dari data warna, sehingga signal yang sama dapat digunakan untuk televisi monokrom atau warna. Dalam format NTSC, data memuat 3 komponen luminance (Y) atau pencahayaan, komponen hue (I), dan komponen saturation (Q), dimana pemilihan YIQ berdasarkan pemilihan konvensional. Komponen Y merupakan data keabuan dan kedua komponan lainnya mempresentasikan data warna atas suatu signal televisi. Komponen YIQ dapat diperoleh dari komponen RGB menggunakan tranformasi:


Perhatikan bahwa elemen-elemen pada baris pertama berjumlah 1 dan penjumlahan elemen-elemen pada dua baris lainnya adalah 0. Hal ini karena untuk suatu citra abu-abu semua komponen RGB mempunyai nilai yang sama, sedangakan komponen I dan Q bernilai 0. Fungsi rgb2ntsc sudah disediakan MATLAB untuk melakukan transformasi dengan sintaks: YIQ=rgb2ntsc (RGB)

Dimana citra masukan RGB bertipe unit8, unit16, atau double. Citra keluaran adalah suatu array berukuran m x n x 3 bertipe class double. Komponen Y adalah YIQ(:,:,1), komponen I adalah YIQ(:,:,2), dan komponen Q adalah YIQ(:,:,3).

Dengan cara yang sama, komponen RGB dapat diperoleh dari komponen YIQ menggunakan tranformasi:


Fungsi ntsc2rgb juga sudah disediakan MATLAB untuk melakukan transformasi, dengan sintaks: RGB=ntsc2rgb (YIQ).

Kita bisa memperhatikan kedua matriks transformasi tersebut saling berketerbalikan. Proses konversi RGB menjadi YIQ dan kembali menjadi RGB, dapat dituliskan sript MATLAB sebagai berikut:

RGB=imread('muryan.jpg'), imshow (RGB);
NTSC=rgb2ntsc(RGB), imshow (NTSC);
RGB1=ntsc2rgb(NTSC), imshow (RGB1);

Hasilnya seperti pada gambar bahwa RGB merupakan RGB1:


0 komentar:

Post a Comment

Terimakasih atas komentar atau sarannya...

 
Muryan Awaludin © 2012 | Designed by Bubble Shooter, in collaboration with Reseller Hosting | Developer by Muryan Awaludin