Skip to content Skip to sidebar Skip to footer

Bagaimana Menghitung Jumlah Warna Pada Citra Digital?

Saat ini, kemampuan grafis sebuah komputer dalam mengenali jumlah warna terbilang fantastis, tercatat lebih dari 16 juta macam warna mampu dikenali. Bahkan sangat mungkin akan bertambah seiring bertambahnya jumlah Bit pada komputer. Baiklah, barangkali akan menarik jika citra digital yang kita miliki mampu diketahui berapa jumlah warna yang terkandung didalamnya. Jika mengandalkan mata manusia untuk menghitung jumlah warna, tentu hasilnya kurang maksimal karena keterbatasan kemampuan. Biar hasil perhitungan jumlah warna lebih akurat dan konsisten, coba kita perintahkan komputer untuk menghitungnya.

Jenis citra digital yang akan dihitung jumlah warnanya adalah citra beruang warna RGB, selain karena cakupan jumlah warnanya lebih luas, kamera digital pun kebanyakan menghasilkan citra digital jenis tersebut. Gambar 1 adalah salah satu contoh citra digital RGB yang akan kita hitung jumlah warnanya. 

Gambar 1 Citra Digital RGB
Penghitungan warna dilakukan dengan mula-mula menyusun komponen R, G, dan B untuk setiap piksel menjadi sebuah nilai dengan komposisi seperti terlihat pada Gambar 9.11. Untuk keperluan seperti itu, maka:
  • G perlu digeser ke kiri sebanyak 8 bit dan
  • R perlu digeser ke kiri sebanyak 16 bit.
Pada MATLAB, penggeseran bit dilakukan melalui fungsi bitshift.
Gambar 2 Komposisi R,G dan B dalam sebuah nilai

Setelah nilai gabungan R, G, dan B terbentuk dan diletakkan ke larik  Data, isi larik tersebut diurutkan. Pengurutan tersebut dimaksudkan untuk mempermudah penghitungan jumlah warna. Implementasi penghitungan pada data yang telah urut seperti berikut:
jwarna = 1;
for i = 1 : jum - 1
    if Data(i) ~= Data(i+1)
        jwarna = jwarna + 1;
    end
end

Berdasarkan kode di atas, nilai jwarna dinaikkan sebesar satu sekiranya suatu nilai dan nilai berikutnya tidak sama. Berikut program untuk menghitung jumlah warna pada citra RGB menggunakan MATLAB : 
function [jumlah] = jumwarna(berkas)
% Menghitung jumlah warna pada citra RGB
% Masukan:
%    berkas berupa citra warna
% Nilai balik berupa jumlah warna

RGB = double(imread(berkas));
[m,n,d] = size(RGB);

if (d ~= 3)
    disp('Citra harus berupa citra berwarna');
    return;
end

RGB = double(RGB);
Data = zeros(1, m * n); % Array kosong

jum = 0;
for i=1:m
    for j=1:n
        jum = jum + 1;
       
        r = RGB(i,j,1);
        g = RGB(i,j,2);
        b = RGB(i,j,3);
        
        Data(jum) = bitshift(r,16) + bitshift(g, 8) + b;
    end
end

% Urutkan data pada array Data
Data = sort(Data);

% Hitung jumlah warna
jwarna = 1;
for i = 1 : jum - 1
    if Data(i) ~= Data(i+1)
        jwarna = jwarna + 1;
    end
end

jumlah = jwarna;

Cara penggunaan dalam comand window MATLAB :
>> [jumlah] = jumwarna('contoh.jpg')

jumlah =

      140620

Hasil diatas menyatakan bahwa jumlah warna yang terkandung pada citra contoh.jpg adalah sebanyak 140620. Jumlah yang sangat banyak jika dihitung menggunakan pengamatan mata manusia.

Semoga penjelasan singkat ini bermanfaat.

Referensi :
  1. Kadir, Abdul dan Susanto, Adhi. Teori dan Aplikasi Pengolahan Citra. Yogyakarta : Andi. 2012
  2. http://muaramasad.blogspot.co.id/2011/10/bit-pada-warna.html diakses tanggal 5 Februari 2017

Post a Comment for "Bagaimana Menghitung Jumlah Warna Pada Citra Digital?"