Histogram Citra


Histogram dalam pengolahan citra adalah .representasi grafis untuk distribusi warna dari citra digital atau menggambarkan penyebaran nilai-nilai intensitas pixel dari suatu citra atau bagian tertentu di dalam citra. Dari sebuah histogram dapat diketahui frekuensi kemunculan relative dari intensitas pada citra, kecerahan, dan kontas dari sebuah gambar.
Proses Histogram :

-          Gambar gelap  :  histogram cenderung ke  sebelah kiri
-          Gambar terang : histogram cenderung ke sebelah kanan
-          Gambar low contrast : histogram mengumpul di suatu tempat
-          Gambar high contrast : histogram merata di semua tempat

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
-          Citra yang baik mengisi daerah derejatkeabuan secara penuh dan merata pada setiap nilai intensitas pixel
-          Over-exposed (terlalu terang) dan under-exposed (terlalu gelap) memiliki rentang kontras sempit. 
-           
Kegunaan histogram dalam pengolahan citra :

-          Untuk melihat apakah distribusi informasi yang ada dalam suatu citra sudah baik atau belum.
-          Histogram juga banyak digunakan dalam texture analysis, yaitu analisa untuk melihat apakah kedua tekstur sama atau berbeda. Misalkan seberapa mirip tekstur karpet A dengan tekstur karpet B.
-          Untuk melihat apakah pencahayaan dan contrast suatu citra sudah cukup atau belum (terlalu terang atau terlalu gelap). Caranya histogram dari suatu citra yang terlalu terang cenderung mengumpul di nilai grey level yang tinggi (ke arah nilai 255), sebaliknya histogram dari suatu citra yang terlalu gelap cenderung mengumpul di nilai grey level yang rendah (ke arah nilai 0).


Histogram citra banyak memberikan informasi penting sebagai berikut :
1.      Nilai hi menyatakan peluang (probabilitypixelP(i), dengan derajat keabuan i. Jumlah seluruh nilai hi sama dengan 1, atau

Peluang suatu pixel memiliki derajat keabuan lebih kecil atau sama dengan derajat keabuan tertentu adalah jumlah hi untuk 0 £ £ j, atau

2.      Puncak histogram menunjukkan intensitas pixel yang menonjol. Lebar dari puncak menunjukkan rentang kontras dari gambar. Citra yang mempunyai kontras terlalu terang (overexposed) atau terlalu gelap (underexposed) memiliki histogram yang sempit. Histogramnya terlihat hanya menggunakan setengah dari daerah derajat keabuan. Citra yang baik memiliki histogram yang mengisi daerah derajat keabuan secara penuh dengan distribusi yang merata pada setiap nilai intensitas pixel

(a) citra gelap, (b) citra terang, (c) citra normal (normal brightness), (d) normal brightness dan hi gh contrast
Berikut ini merupakan contoh karakteristik citra grayscale berdasarkan distribusi histogramnya.
A.    Citra Gelap
Citra gelap merupakan citra yang memiliki banyak piksel dengan nilai intensitas mendekati 0. Distribusi nilai intensitas citra gelap cenderung berada pada daerah sebelah kiri histogram. Contoh citra gelap dan histogramnya ditunjukkan pada Gambar 2.
Gambar 2. Citra gelap dan histogram

B.     Citra terang
Citra terang merupakan citra yang memiliki banyak piksel dengan nilai intensitas mendekati 255. Distribusi nilai intensitas citra terang cenderung berada pada daerah sebelah kanan histogram. Contoh citra terang dan histogramnya ditunjukkan pada Gambar 3.

Gambar 3. Citra terang dan histogram

C.     Citra dengan kontras rendah
Citra dengan kontras rendah merupakan citra yang memiliki range nilai intensitas yang sempit. Histogram citra pada Gambar 4 di bawah ini menunjukkan bahwa citra berada pada range nilai intensitas 74-224. Sehingga tidak memiliki nilai intensitas antara 0-74 dan juga 224-255.
Gambar 4. Citra dengan kontras rendah dan histogram

D.    Citra dengan kontras tinggi
Citra dengan kontras tinggi merupakan citra yang memiliki range nilai intensitas yang lebar. Histogram citra pada Gambar 5 di bawah ini menunjukkan bahwa citra berada pada range nilai intensitas 0-255.
Gambar 5. Citra dengan kontras tinggi dan histogram

Algoritma Histogram
Misalkan citra digital memiliki L derajat keabuan, yaitu dari nilai 0 sampai L – 1 (misalnya pada citra dengan kuantisasi derajat keabuan 8-bit, nilai derajat keabuan dari 0 sampai 255). Secara matematis histogram citra dihitung dengan rumus sebagai berikut : 

dimana :
ni = jumlah pixel yang memiliki derajat keabuan i
n = jumlah seluruh pixel di dalam citra

Plot hi versus fi dinamakan histogram. Secara grafis histogram ditampilkan dengan diagram batang. Nilai ni telah dinormalkan dengan membaginya dengan n. Nilai hi berada di dalam selang 0 sampai 1. Pada MatLab, untuk membuat Histogram dari sebuah gambar / citra, cukup dengan memanggil fungsi imhist.

Pertama, inisialisasikan gambar yang akan digunakan. Letakkan gambar dalam satu direktori yang sama dengan file histogram. Kemudian gambar ditampilkan dengan menggunakan sintak imshow.

% Read in standard MATLAB color demo image.
rgbImage = imread(‘powerranger.jpg’);
[rows columns numberOfColorBands] = size(rgbImage);
subplot(2, 2, 1);
imshow(rgbImage, []);
set(gcf, ‘Position’, get(0,’Screensize’)); % Maximize figure.

Selanjutnya memanggil matriks gambar yang berisi piksel-piksel tertentu.
% 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.

Untuk mengambil nilai piksel merah memiliki indeks 1, warna hijau memiliki indeks 2 dan warna biru memiliki indeks 3.
Kemudian tampilkan histogram pada layar. Sintak berikut untuk menampilkan histogram dari piksel-piksel yang berwarna merah saja, dipanggil dengan sintak imhist(redPlane); bar yang ditampilkan pada histogram dapat diberi warna merah dengan menggunakan sintak bar(pixelCountR, ‘r’); lakukan hal yang sama pada kedua histogram lainnya, yaitu histogram untuk menampilkan piksel-piksel hijau dan biru. Serta berikan masing-masing warna pada bar histogram tersebut.

% Let’s get its histograms.
[pixelCountR grayLevelsR] = imhist(redPlane);
subplot(2, 2, 2);
bar(pixelCountR, ‘r’);
xlim([0 grayLevelsR(end)]); % Scale x axis manually.
[pixelCountG grayLevelsG] = imhist(greenPlane);
subplot(2, 2, 3);
bar(pixelCountG, ‘g’);
xlim([0 grayLevelsG(end)]); % Scale x axis manually.
[pixelCountB grayLevelsB] = imhist(bluePlane);
subplot(2, 2, 4);
bar(pixelCountB, ‘b’);
xlim([0 grayLevelsB(end)]); % Scale x axis manually.

Output
Tempatkan file gambar yang digunakan ke dalam folder yang sama dengan file MatLab. Kemudian jalankan program dengan menekan tombol F5. Berikut adalah tampilan Histogram dari sebuah gambar. Khusus untuk citra berwarna, histogramnya dibuat untuk setiap kanal RGB (merah, hijau, dan biru). Jadi outputnya ada tiga Histogram, yaitu Histogram untuk pixel Merah, Hijau dan Biru. 



Komentar

Postingan populer dari blog ini

Operasi-operasi Dasar Pengolahan Citra Digital

Struktur Data untuk Citra Digital

Pemampatan Citra