Meningkatkan Kualitas Citra Digital dengan Ekualisasi Histogram pada Citra RGB dan Grayscale
Ekualisasi histogram adalah salah satu teknik yang sangat penting dalam pengolahan citra digital. Teknik ini digunakan untuk memperbaiki kontras dan distribusi intensitas piksel pada citra digital, baik pada citra berwarna (RGB) maupun citra grayscale. Dalam artikel ini, akan dijelaskan konsep dasar ekualisasi histogram, bagaimana itu diterapkan pada kedua jenis citra, dan manfaatnya dalam pengolahan citra digital.

Konsep Dasar Ekualisasi Histogram
Sebelum kita membahas implementasi ekualisasi histogram pada citra RGB dan grayscale, mari kita pahami konsep dasarnya. Histogram adalah grafik yang menggambarkan distribusi intensitas piksel dalam citra. Ini membantu kita memahami seberapa sering intensitas piksel tertentu muncul dalam citra.
Ekualisasi histogram bertujuan untuk meratakan distribusi intensitas piksel sehingga citra memiliki kontras yang lebih baik. Prosesnya melibatkan empat langkah utama:
- Hitung Histogram: Langkah pertama adalah menghitung histogram asli dari citra. Histogram ini adalah distribusi intensitas piksel dalam citra.
- Hitung Distribusi Kumulatif: Selanjutnya, distribusi kumulatif dari histogram dihitung. Ini adalah akumulasi dari frekuensi piksel dalam histogram.
- Normalisasi Distribusi Kumulatif: Distribusi kumulatif kemudian dinormalisasi untuk memastikan nilai-nilai berada dalam rentang yang diinginkan.
- Menghasilkan Citra Baru: Citra baru dibuat dengan mengganti intensitas piksel pada citra asli dengan nilai distribusi kumulatif yang sesuai. Ini menghasilkan citra dengan histogram yang merata.


Ekualisasi Histogram pada Citra Grayscale
Penerapan ekualisasi histogram pada citra grayscale lebih sederhana karena hanya ada satu komponen warna, yaitu intensitas cahaya. Langkah-langkahnya adalah sebagai berikut:
- Hitung Histogram Grayscale: Pertama, hitung histogram asli dari citra grayscale.
- Hitung Distribusi Kumulatif: Hitung distribusi kumulatif dari histogram grayscale.
- Normalisasi Distribusi Kumulatif: Normalisasi distribusi kumulatif sehingga nilainya berkisar antara 0 hingga 255 (pada citra 8-bit).
- Menghasilkan Citra Baru: Buat citra baru dengan mengganti intensitas piksel pada citra asli sesuai dengan nilai distribusi kumulatif yang sesuai.
Berikut ini pemrograman MATLAB untuk melakukan ekualisasi histogram pada citra grayscale:
% Baca citra grayscale
grayscale_image = imread(‘grayscale_image.jpg’);
% Hitung histogram grayscale
histogram = imhist(grayscale_image);
% Hitung distribusi kumulatif
cumulative_distribution = cumsum(histogram);
% Normalisasi distribusi kumulatif
normalized_distribution = (cumulative_distribution / numel(grayscale_image)) * 255;
% Buat citra baru dengan mengganti intensitas piksel sesuai distribusi kumulatif
equalized_image = normalized_distribution(grayscale_image + 1);
% Tampilkan citra asli dan citra hasil ekualisasi histogram
subplot(1, 2, 1), imshow(grayscale_image), title(‘Citra Asli’);
subplot(1, 2, 2), imshow(uint8(equalized_image)), title(‘Citra Hasil Ekualisasi Histogram’);





Ekualisasi Histogram pada Citra RGB
Penerapan ekualisasi histogram pada citra RGB lebih kompleks karena ada tiga komponen warna: merah, hijau, dan biru. Berikut adalah langkah-langkahnya:
- Ekstraksi Komponen RGB: Pertama, ekstrak masing-masing komponen citra RGB. Komponen citra RGB antara lain Komponen Red, Komponen Green, dan Komponen Blue.
- Terapkan Ekualisasi Histogram: Terapkan langkah-langkah ekualisasi histogram seperti yang dijelaskan sebelumnya pada masing-masing komponen cira RGB.
- Konversi Kembali ke RGB: Setelah ekualisasi histogram pada masing-masing komponen citra RGB, susun kembali masing-masing komponen menjadi citra RGB.
Berikut ini pemrograman MATLAB untuk melakukan ekualisasi histogram pada citra RGB:
% Baca citra RGB
input_image = imread(‘nama_file_gambar.jpg’);
% Pisahkan komponen RGB
red_channel = input_image(:, :, 1);
green_channel = input_image(:, :, 2);
blue_channel = input_image(:, :, 3);
% Lakukan ekualisasi histogram pada masing-masing komponen
eq_red_channel = eq_histogram(red_channel);
eq_green_channel = eq_histogram(green_channel);
eq_blue_channel = eq_histogram(blue_channel);
% Susun kembali komponen RGB yang telah di-ekualisasi
output_image = cat(3, eq_red_channel, eq_green_channel, eq_blue_channel);
% Tampilkan citra asli dan hasil ekualisasi
subplot(1, 2, 1);
imshow(input_image);
title(‘Citra Asli’);
subplot(1, 2, 2);
imshow(output_image);
title(‘Citra Hasil Ekualisasi’);
% Simpan citra hasil ekualisasi
imwrite(output_image, ‘hasil_ekualisasi.jpg’);







Manfaat Ekualisasi Histogram
Ekualisasi histogram pada citra RGB dan grayscale memberikan berbagai manfaat, termasuk:
- Peningkatan Kontras: Citra yang telah diekualisasi histogram cenderung memiliki kontras yang lebih baik, yang membuat detail lebih jelas.
- Peningkatan Detail: Teknik ini dapat meningkatkan ketajaman citra, mengungkapkan detail yang mungkin tersembunyi dalam distribusi intensitas asli.
- Perbaikan Citra Terlalu Terang atau Terlalu Gelap: Ekualisasi histogram membantu meratakan citra yang memiliki area terlalu terang atau terlalu gelap, sehingga meningkatkan visibilitasnya.
Ekualisasi histogram adalah teknik penting dalam pengolahan citra digital yang digunakan untuk meningkatkan kualitas citra. Dengan meratakan distribusi intensitas piksel dalam citra, teknik ini dapat menghasilkan citra dengan kontras yang lebih baik dan detail yang lebih tajam. Baik pada citra RGB maupun citra grayscale, ekualisasi histogram adalah alat yang powerful dalam berbagai aplikasi fotografi, pengolahan citra medis, pengenalan citra, dan banyak lagi.
Source code beserta data lengkap pemrograman MATLAB di atas dapat diperoleh melalui halaman berikut ini: Source Code
Posted on September 13, 2023, in Pengolahan Citra and tagged citra grayscale, citra RGB, ekualisasi histogram, histogram equalization, image processing, komponen citra RGB, pemrograman matlab, pengolahan citra, Pengolahan Citra Digital. Bookmark the permalink. Leave a comment.














































Leave a comment
Comments 0