Anda di halaman 1dari 6

Program Histogram Menggunakan Matlab Source : Histo.

% Read in standard MATLAB color demo image. rgbImage = imread('kawan.jpg'); [rows columns numberOfColorBands] = size(rgbImage); subplot(2, 2, 1); %menampilkan gambar asal pada matriks 2x2 ditempatkan pada urutan pertama imshow(rgbImage, []); set(gcf, 'Position', get(0,'Screensize')); % Maximize figure. % Extract the individual color planes. redPlane = rgbImage(:, :, 1); % memanggil matriks gambar yang hanya berisi piksel warna merah greenPlane = rgbImage(:, :, 2); % memanggil matriks gambar yang hanya berisi piksel warna hijau bluePlane = rgbImage(:, :, 3); % memanggil matriks gambar yang hanya berisi piksel warna biru. % Lets get its histograms. [pixelCountR grayLevelsR] = imhist(redPlane); %menampilkan histogram dari pixel-pixel yang berwarna merah subplot(2, 2, 2); % menampilkan histogram gambar asal yang berwarna merah pada matriks 2x2 ditempatkan pada urutan kedua bar(pixelCountR, 'r'); % memberi warna merah pada bar yang ditampilkan xlim([0 grayLevelsR(end)]); % Scale x axis manually. [pixelCountG grayLevelsG] = imhist(greenPlane); %menampilkan histogram dari pixel-pixel yang berwarna hijau subplot(2, 2, 3); % menampilkan histogram gambar asal yang berwarna hijau pada matriks 2x2 ditempatkan pada urutan ketiga bar(pixelCountG, 'g'); % memberi warna hijau pada bar yang ditampilkan xlim([0 grayLevelsG(end)]); % Scale x axis manually. [pixelCountB grayLevelsB] = imhist(bluePlane); %menampilkan histogram dari pixel-pixel yang berwarna biru subplot(2, 2, 4); % menampilkan histogram gambar asal yang berwarna biru pada matriks 2x2 ditempatkan pada urutan keempat bar(pixelCountB, 'b'); % memberi warna biru pada bar yang ditampilkan xlim([0 grayLevelsB(end)]); % Scale x axis manually.

Histo2.m
%variabel i membaca citra yang ada dalam %citra dikonversi ke bentuk grayscale

i = imread('kawan.jpg'); direktori (Matlab/work) k = rgb2gray(i);

j = histeq(k); %mmebuat perataan histogram dari citra yang telah dikonversi ke grayscale subplot(2,2,1),imshow(i); pada penempatan pertama %menampilkan plot citra asal pada matriks (2,2)

subplot(2,2,2),imshow(j); %menampilkan plot citra yang telah dikonversi ke grayscale pada matriks (2,2) pada penempatan kedua subplot(2,2,3),imhist(k); %menampilkan plot histogram citra asal pada matriks (2,2) pada penempatan ketiga subplot(2,2,4),imhist(j); %menampilkan plot histogram perataan citra yang telah dikonversi ke grayscale pada matriks (2,2) pada penempatan keempat

Histogram Histogram adalah representasi grafis untuk distribusi warna dari digital. Sumbu ordinat vertikal merupakan representasi piksel dengan nilai tonal dari tiap-tiap deret bin pada sumbu axis horizontalnya. Sumbu axis terdiri dari deret logaritmik bindensitometry yang membentuk rentang luminasi atau exposure range yang mendekati respon spectral sensitivity visual mata manusia. Deret bin pada density yang terpadat mempunyai interval yang relatif sangat linear dengan variabel mid-tone terletak tepat di tengahnya. Pada umumnya, sebuah histogram hanya memetakan seluruh nilai tonal dari citra digital pada bin luminasi masing-masing. Nilai tonal tersebut telah tersedia dalam color space yang umum digunakan adalah sRGB dan AdobeRGB yang mempunyai nilai gamma = 2,2. Informasi yang didapat dari Histogram:

Puncak histogram intensitas pixel yangpaling menonjol. Lebar puncak rentang kontras. Overexposed (terlalu terang) dan underexposed (terlalu gelap) memiliki rentang kontras sempit. Citra yang baik mengisi daerah derejatkeabuan secara penuh dan merata pada setiap nilai intensitas pixel.

Perataan Histogram Teknik perataan histogram merupakan gabungan antara penggeseran dan pelebaran histogram. Tujuan yang akan dicapai pada teknik ini adalah untuk mendapatkan citra dengan daerah tingkat keabuan yang penuh dan dengan distribusi pixel pada setiap tingkat keabuan yang merata. Dengan

kata lain, Tujuan dari perataan histogram ini adalah untuk memperoleh penyebaran histogram yang merata, sedemikian sehingga setiap derajat keabuan memiliki jumlah pixel yang relative sama. Perataan histogram mengubah derajat keabuan suatu pixel (r) dengan derajat keabuan yang baru dengan suatu fungsi transformasi T, dimana s=T(r). Sifatnya Nilai s adalah pemetaan 1 ke 1 dari r, sehingga r dapat diperoleh dari transformasi invers r = T-1(s) , 0 <= s <= 1 Untuk 0<= ri <= 1, maka 0 <= T(r) <= Seperti yang anda sekalian ketahui sebelumnya, bahwa dari sekian banyaknya warna yang ada dalam suatu gambar itu terdiri atau terbentuk dari perpaduan tiga warna dasar yaitu merah, hijau, dan biru atau yang lebih dikenal dengan sebutan RGB. Histogram suatu gambar ini bertujuan untuk menampilkan tingkat masing-masing RGB dari suatu gambar. Fungsi yang disediakan MATLAB untuk membuat histogram dari gambar yaitu dengan fungsi imhist(matrik_1_dimensi_image).Perlu diperhatikan bahwaimhist hanya dapat digunakan untuk matrik image 1 dimensi sehingga bila diimplementasikan pada matriks gambar maka hanya berupa matriks merah saja, hijua saja, biru saja atau grayscale.

Algoritma Citra digital memiliki L derajat keabuan yang bernilai antara 0 sampai L-1 ( 0 i L-1 ). Misalkan pada citra dengan kuantisasi derajat keabuan 8-bit, nilai keabuan dari 0 sampai 255. Secara matematis, histogram dapat dihitung dengan cara :

Dimana : L = derajat keabuan ni = jumlah pixel yang memiliki derajat keabuan i n = jumlah seluruh pixel dalam citra

Langkah-langkah melakukan ekualisasi histogram :

1. Baca image dan dapatkan nilai tingkat keabuan dari setiap pixel penyusunnya. Lalu simpan di dalam array. Gunakan fungsi imread(). 2. Cari nilai maksimum derajat keabuan citra tersebut. Nilai ini nantinya akan digunakan untuk menentukan histogram ekualisasinya (histogram perataannya). Gunakan fungsi max(). 3. Buat Histogram Citra asal. Simpan frekuensi kemunculan derajat keabuan tersebut dalam array (vector). Mula-mula siapkan array (vector) kosong yang ukurannya mengacu pada nilai maksimum derajat keabuan citra dibulatkan ke 2n. Selanjutnya, hitung frekuensi kemunculan derajat keabuan pada masing-masing posisi vector. 4. Buat Histogram ekualisasinya. Histogram ekualisasi dicari dengan menghitung presentase kemunculan derajat keabuan yang ada, dikalikan dengan derajat keabuan maksimum dari citra asal. 5. Cari nilai tingkat keabuan dari citra hasil ekualisasi dengan menggunakan histogram ekualisasinya. 6. Untuk memetakan histogram ekualisasi menjadi citra baru, kita siapkan array (matriks) kosong yang ukurannya sama dengan citra asal. Selanjutnya masing-masing nilai matriks baru dihitung dari nilai histogram ekualisasi berdasarkan nilai matriks gambar lama. 7. Petakan ke citra baru.

Output Citra Terang

Citra Terang Hasil Perataan

Citra Gelap

Citra Terang Hasil Perataan