Cepat, Berkualitas, dan Terjangkau Indonesia

SOLUSI CETAK BERKUALITAS
TEKNOLOGI TERKINI

Perbaikan Kualitas Citra (Image Enhancement)

Memahami operasi piksel, histogram citra, dan teknik peningkatan kontras seperti Histogram Equalization serta penyesuaian Brightness/Contrast menggunakan OpenCV dan Tkinter.

Oleh Alimin, M.Kom — Program Studi  Sistem dan teknologi Informasi

1. Pengantar: Apa Itu Perbaikan Kualitas Citra?

Perbaikan kualitas citra (Image Enhancement) adalah proses untuk meningkatkan tampilan visual citra tanpa mengubah makna informasinya. Teknik ini digunakan dalam berbagai bidang, seperti medis, pengawasan, dan visi komputer (computer vision).

Salah satu bentuk perbaikan citra adalah dengan mengubah tingkat kecerahan (brightness) dan kontras (contrast), serta memanfaatkan distribusi intensitas piksel melalui histogram.

2. Operasi Piksel (Pixel Operation)

Operasi piksel merupakan dasar dari pengolahan citra digital. Setiap piksel pada citra diubah berdasarkan nilainya sendiri atau dalam hubungan dengan piksel di sekitarnya. Persamaan umum operasi brightness dan contrast dapat ditulis sebagai:

I'(x,y) = α × I(x,y) + β
  • α (alpha) → pengatur kontras
  • β (beta) → pengatur kecerahan

Implementasi Python OpenCV:

import cv2

def adjust_bc(img, alpha=1.2, beta=20):
return cv2.convertScaleAbs(img, alpha=alpha, beta=beta)

3. Histogram Citra

Histogram citra adalah grafik yang menunjukkan distribusi frekuensi nilai intensitas piksel (0–255). Pada citra grayscale, histogram memiliki satu kanal, sedangkan pada citra berwarna (RGB) terdiri dari tiga histogram terpisah: merah (R), hijau (G), dan biru (B).

Secara matematis, histogram h didefinisikan sebagai:

h(g) = jumlah piksel dengan nilai intensitas g

Contoh visualisasi histogram RGB:

colors = ['r', 'g', 'b']
for i, c in enumerate(colors):
data = img[:, :, i].ravel()
plt.hist(data, bins=256, range=(0, 255), color=c, alpha=0.5, label=c.upper())
plt.legend()

4. Perataan Histogram (Histogram Equalization)

Tujuan utama dari Histogram Equalization adalah meratakan penyebaran nilai intensitas agar kontras citra meningkat. Metode ini mengubah tingkat keabuan piksel berdasarkan fungsi kumulatif dari distribusi histogram.

import cv2

def equalize_histogram(img):
gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
return cv2.equalizeHist(gray)

Secara teoritis, fungsi transformasi dari intensitas r ke s adalah:

s = T(r) = (L - 1) × Σ p(r_j)

di mana p(r_j) adalah probabilitas intensitas r_j dan L adalah jumlah tingkat keabuan (biasanya 256).

5. Contoh Implementasi GUI (Tkinter + OpenCV)

Kode Python berikut menggabungkan OpenCV dan Tkinter untuk menampilkan hasil operasi citra secara interaktif:

tk.Button(bc_frame, text="Terapkan B/C", command=self.op_bc_apply).pack()

def op_bc_apply(self):
alpha = float(self.alpha_var.get())
beta = int(self.beta_var.get())
out = adjust_bc(self.img_rgb, alpha=alpha, beta=beta)
self._render(out, title=f"Brightness/Contrast (α={alpha:.2f}, β={beta})")

Hasilnya divisualisasikan bersama histogram yang terus diperbarui setiap kali pengguna menerapkan perubahan pada citra.

6. Hubungan dengan Deep Learning

Teknik Image Enhancement juga menjadi bagian penting dalam tahap preprocessing pada model Convolutional Neural Networks (CNN). Dengan citra yang lebih jelas dan kontras yang optimal, akurasi model dalam deteksi objek dan klasifikasi gambar akan meningkat.

  • Object Detection
  • Face Recognition
  • Image Classification

7. Kesimpulan

Perbaikan kualitas citra adalah langkah penting dalam pengolahan citra digital. Dengan memahami operasi piksel, histogram, dan equalization, kita dapat meningkatkan tampilan serta mempersiapkan citra untuk proses analisis lebih lanjut seperti deep learning.

  • Brightness & Contrast → operasi dasar berbasis piksel.
  • Histogram → analisis distribusi intensitas.
  • Histogram Equalization → peningkatan kontras otomatis.

© 2025 Alimin, M.Kom — Pengolaan Citra Digital


TUGAS PROJECT PERTEMUAN 5 :

Deskripsi Singkat : Mahasiswa membangun aplikasi GUI untuk pengolahan citra dasar: brightness/contrastgrayscalehistogram (RGB & grayscale), dan histogram equalization. Sertakan dokumentasi dan tangkapan layar

Tujuan Pembelajaran : 

  1. Menerapkan operasi piksel untuk mengatur brightness (β) dan contrast (α).
  2. Membangun visualisasi histogram (RGB & grayscale) dan menganalisis distribusi intensitas.
  3. Menerapkan Histogram Equalization untuk peningkatan kontras otomatis.
  4. Mengintegrasikan teori ke dalam GUI interaktif menggunakan Tkinter.
  5. Menulis laporan singkat seputar efek dan evaluasi hasil.


Spesifikasi Tugas :

FiturDeskripsiModul
Buka GambarPilih gambar dari komputer untuk diolah.tkinter.filedialog
GrayscaleKonversi RGB → Grayscale.cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
Brightness/ContrastAtur α (kontras) dan β (kecerahan) via slider.cv2.convertScaleAbs(img, alpha, beta)
HistogramTampilkan histogram grayscale/RGB.matplotlib
Histogram EqualizationPeningkatan kontras otomatis (grayscale).cv2.equalizeHist()
Simpan HasilSimpan citra hasil pengolahan.cv2.imwrite()
Teori Ringkas

Operasi Piksel Linier

I'(x,y) = α · I(x,y) + β
  • α (alpha): mengubah kontras (kemiringan).
  • β (beta): mengubah kecerahan (pergeseran).

Histogram

h(g) = jumlah piksel dengan intensitas g, g ∈ [0, 255]

Histogram Equalization

s_k = T(r_k) = (L - 1) · Σ_{j=0..k} p(r_j)

L adalah jumlah aras keabuan (biasanya 256); p(r_j) adalah probabilitas intensitas r_j.

Contoh Kode (Potongan)

import cv2

def adjust_bc(img, alpha=1.2, beta=20):
return cv2.convertScaleAbs(img, alpha=alpha, beta=beta)

def equalize_hist(img): gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
return cv2.equalizeHist(gray)

Desain GUI yang Disarankan

  • Tombol: Buka GambarGrayscaleBrightness/ContrastEqualizeHistogramSimpan.
  • Dua panel tampilan: (1) citra asli/hasil, (2) histogram.
  • Slider untuk α dan β.

Output & Laporan

  1. Screenshot setiap fitur utama dan hasilnya.
  2. Penjelasan efek operasi (misal: perbedaan histogram sebelum–sesudah equalization).
  3. File kode (.py atau .ipynb) dan 2–3 gambar contoh.

Kriteria Penilaian

AspekBobotIndikator
Implementasi fitur30%Berjalan tanpa error; sesuai spesifikasi.
GUI & interaktivitas25%Tata letak jelas; responsif.
Analisis & dokumentasi25%Laporan ringkas, fokus pada perbandingan hasil & histogram.
Kreativitas10%Tambahan: gamma correction, blur, CLAHE, dsb.
Kerapian & orisinalitas10%Struktur modular, komentar jelas.

Tantangan Opsional

  • Gamma Correction: s = c · r^γ (bandingkan dengan equalization).
  • Tambahkan CLAHE (Contrast Limited Adaptive Histogram Equalization) untuk mencegah over-contrast.
  • Bandingkan histogram sebelum–sesudah untuk 3 jenis gambar berbeda (gelap, sangat kontras, dan berisik).

Pengumpulan

  • Nama berkas: Nama_NIM_ImageEnhancement.zip
  • Isi: kode, laporan PDF (maks 4 halaman), gambar uji, dan README.
  • Batas waktu: 7 hari setelah pengumuman tugas.

Referensi

  • Gonzalez & Woods — Digital Image Processing (4th ed.).
  • Materi “Perbaikan Kualitas Citra (Image Enhancement)”.
  • Dokumentasi OpenCV.

© 2025 Alimin, M.Kom — Tugas Project Pengolahan Citra