Contrast Stretching dan Histogram Equalization: Meningkatkan Kualitas Citra
Posted by adi pamungkas
Dalam dunia pengolahan gambar digital, dua teknik penting yang digunakan untuk meningkatkan kualitas citra adalah “Contrast Stretching” (Peregangan Kontras) dan “Histogram Equalization” (Equalisasi Histogram). Kedua teknik ini bertujuan untuk meningkatkan kontras dalam citra agar objek menjadi lebih jelas dan mudah terlihat. Artikel ini akan membahas tentang Contrast Stretching dan Histogram Equalization, serta perbedaan antara keduanya.
Contrast Stretching (Peregangan Kontras)
Contrast Stretching adalah teknik yang digunakan untuk memperluas jangkauan intensitas piksel dalam citra. Tujuan utama dari kontras stretching adalah untuk memperbaiki citra yang memiliki kontras yang rendah, di mana perbedaan antara intensitas piksel yang berdekatan sangat kecil. Teknik ini bekerja dengan mengubah rentang intensitas piksel dalam citra sehingga mencakup seluruh skala intensitas yang tersedia.
Langkah-langkah Contrast Stretching:
- Hitung Intensitas Minimum dan Maksimum: Temukan nilai intensitas piksel minimum (min) dan maksimum (max) dalam citra.
- Hitung Faktor Peregangan (Stretching Factor): Hitung faktor peregangan (stretching factor) sebagai perbandingan antara rentang intensitas awal (max – min) dan rentang intensitas yang diinginkan (misalnya, 0-255 dalam citra 8-bit).
- Terapkan Kontras Stretching: Terapkan rumus berikut untuk setiap piksel dalam citra:
pixel_baru = (pixel_lama - min) * stretching_factor
- Clipping (Pemangkasan): Pastikan bahwa nilai piksel baru tidak melebihi 0 atau 255 (dalam citra 8-bit) dengan memotong (clipping) nilai jika perlu.
Histogram Equalization (Equalisasi Histogram)
Histogram Equalization adalah teknik yang digunakan untuk meratakan distribusi intensitas piksel dalam citra. Tujuan dari equalisasi histogram adalah untuk meningkatkan kontras dan membuat citra memiliki distribusi intensitas yang lebih merata. Teknik ini bekerja dengan memetakan histogram citra ke histogram yang lebih merata.
Langkah-langkah Histogram Equalization:
- Hitung Histogram: Hitung histogram citra asli, yang akan menunjukkan sebaran intensitas piksel.
- Hitung Fungsi Kumulatif: Hitung fungsi kumulatif dari histogram citra.
- Equalisasi Histogram: Terapkan rumus berikut untuk setiap piksel dalam citra:
pixel_baru = (cdf(pixel_lama) - cdf(min)) / (M * N - 1) * (L - 1)
di mana cdf adalah fungsi kumulatif, M adalah tinggi citra, N adalah lebar citra, dan L adalah jumlah tingkat intensitas (misalnya, 256 untuk citra 8-bit).
Perbedaan Antara Contrast Stretching dan Histogram Equalization
Tujuan Utama
- Contrast Stretching: Memperluas jangkauan intensitas piksel untuk meningkatkan kontras.
- Histogram Equalization: Meratakan distribusi intensitas piksel dalam citra.
Aplikasi
- Contrast Stretching sering digunakan untuk perbaikan umum kontras dalam citra.
- Histogram Equalization digunakan ketika distribusi intensitas piksel sangat tidak merata.
Hasil Penerapan
- Contrast Stretching dapat menghasilkan pemotongan (clipping) yang mengurangi detail pada gambar.
- Histogram Equalization dapat memperkenalkan artefak jika digunakan secara berlebihan.
Berikut adalah pemrograman MATLAB untuk Contrast Stretching dan Histogram Equalization pada citra digital:
Contrast Stretching (Peregangan Kontras):
% Baca citra asli
originalImage = imread('nama_citra.jpg');
% Tentukan rentang intensitas yang diinginkan
intensitas_minimal = 0;
intensitas_maksimal = 255;
% Hitung nilai minimum dan maksimum intensitas piksel dalam citra
min_intensity = min(originalImage(:));
max_intensity = max(originalImage(:));
% Hitung faktor peregangan
stretching_factor = (intensitas_maksimal - intensitas_minimal) / (max_intensity - min_intensity);
% Terapkan kontras stretching
stretchedImage = (originalImage - min_intensity) * stretching_factor + intensitas_minimal;
% Simpan citra yang sudah diperbaharui
imwrite(stretchedImage, 'contrast_stretched_image.jpg');
Histogram Equalization (Equalisasi Histogram):
% Baca citra asli
originalImage = imread('nama_citra.jpg');
% Hitung histogram citra
histogram = imhist(originalImage);
% Hitung jumlah piksel dalam citra
total_pixels = numel(originalImage);
% Hitung fungsi kumulatif (CDF) dari histogram
cdf = cumsum(histogram) / total_pixels;
% Tentukan jumlah tingkat intensitas (misalnya, 256 untuk citra 8-bit)
jumlah_tingkat_intensitas = 256;
% Terapkan equalisasi histogram
equalizedImage = uint8((jumlah_tingkat_intensitas - 1) * cdf(originalImage + 1));
% Simpan citra yang sudah diperbaharui
imwrite(equalizedImage, 'histogram_equalized_image.jpg');
Kedua teknik ini adalah alat penting dalam pengolahan gambar digital dan digunakan sesuai dengan kebutuhan khusus citra. Dengan menguasai kedua teknik ini, kita dapat meningkatkan kualitas dan kejelasan citra dalam berbagai aplikasi seperti pengolahan medis, analisis citra, dan pemrosesan gambar artistik.
Source code beserta data lengkap pemrograman MATLAB di atas dapat diperoleh melalui halaman berikut ini: Source Code
Posted on September 10, 2023, in Pengolahan Citra and tagged citra, Citra Digital, contrast stretching, histogram equalization, image enhancement, image processing, Matlab, pengolahan gambar, perbaikan kualitas citra, Programming, Pseudocode, Visualisasi. Bookmark the permalink. Leave a comment.

















































Leave a comment
Comments 0