Senin, 15 Januari 2018

Histogram (Algoritma Pengolahan Citra)



Algoritma Pengolahan Citra Histogram

 

Disusun Oleh :

Kelompok 1

Ahmad Solihin Hulu
Friska Nainggolan
Nurmawati Hutabarat








TEKNIK INFORMATIKA
STMIK PELITA NUSANTARA MEDAN
2018





Histogram

Pengertian 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 kordinat 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 (probability) pixel, P(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 £ i £ 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 adalah contoh citra yang terlalu gelap dan terang beserta histogramnya.
Add caption












 
Add caption

 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. 


Kesimpulan
Gambar yang dimasukan terlalu terang. Histogramnya banyak menumpuk pada bagian kanan karena citra tersebut mengandung banyak nilai intensitas yang dekat dengan 255 (putih).

Tidak ada komentar:

Posting Komentar