📚 Belajar Pengolahan Citra Digital
Dilengkapi 7 gambar dan diagram buatan Python. Penjelasan lengkap, kritis, dan berbahasa sederhana dari slide "Introduction to Image Processing" (Agus Harjoko, DCSE/DIKE UGM). Buku acuan: Gonzalez & Woods, Digital Image Processing, edisi ke-4 (2018).
1. Dasar: apa itu citra digital?
Citra digital adalah kumpulan angka yang tersusun dalam baris dan kolom. Setiap angka disebut piksel (picture element) dan menyatakan tingkat terang di titik tersebut. Pada citra grayscale 8-bit, nilainya 0 (hitam) sampai 255 (putih). Citra berwarna biasanya punya tiga lapis angka: merah, hijau, biru (RGB).
Definisi dan cakupan pengolahan citra
Pengolahan citra digital (DIP) adalah memakai komputer untuk memanipulasi citra, mulai dari memperbaiki tampilan sampai mengenali isinya. Di buku Gonzalez & Woods, ada dua jenis hasil proses:
- Input citra, output citra: contoh menghilangkan noise, mempertajam.
- Input citra, output atribut citra: contoh mengukur bentuk, menghitung objek, mengenali wajah.
Spektrum elektromagnetik dan pembentukan citra
Citra dibentuk dari energi gelombang elektromagnetik yang dipantulkan atau dipancarkan objek. Cahaya tampak hanyalah sebagian kecil spektrum. Sinar gamma dipakai pada kedokteran nuklir, sinar-X pada rontgen, ultraviolet pada mikroskopi, inframerah pada kamera termal, dan gelombang radio pada MRI. Karena itu pengolahan citra dipakai di kedokteran, pertanian, industri, astronomi, keamanan, dan banyak bidang lain.
2. Peta besar: alur pengolahan citra
Slide 7 menampilkan diagram struktur buku. Anggap ini peta seluruh mata kuliah:
Di tengah diagram ada kotak Knowledge base (basis pengetahuan) yang berhubungan dengan setiap tahap. Artinya setiap proses boleh memanfaatkan pengetahuan tentang masalah yang sedang diselesaikan, misalnya "citra ini rontgen paru-paru".
3. Tiap tahap di buku (slide 8-12)
3.1 Image acquisition (akuisisi citra)
Langkah memperoleh citra digital dari kamera, scanner, atau sensor lain. Kadang sudah termasuk prapemrosesan sederhana seperti mengubah ukuran (scaling). Kualitas hasil akhir sangat dipengaruhi tahap ini: citra buruk di awal sulit diperbaiki di akhir (prinsip garbage in, garbage out).
3.2 Filtering dan enhancement (peningkatan kualitas)
Memanipulasi citra agar lebih cocok untuk aplikasi tertentu. Slide menyebutnya problem oriented dan subjektif. Contoh: menaikkan kontras, mempertajam tepi, atau menghaluskan citra. Hasil yang "bagus" bergantung pada tujuan dan penilaian manusia.
3.3 Image restoration (pemulihan citra)
Mengembalikan citra ke kondisi aslinya dengan memodelkan penyebab kerusakan (blur karena kamera bergoyang, noise sensor). Slide menyebutnya objektif karena berbasis model matematika atau probabilistik degradasi.
| Enhancement | Restoration | |
|---|---|---|
| Sifat | Subjektif | Objektif |
| Dasar | Kebutuhan aplikasi, selera | Model degradasi (matematis/probabilistik) |
| Pertanyaan | "Bagaimana agar lebih enak dilihat/dipakai?" | "Citra asli sebelum rusak seperti apa?" |
| Contoh | Menaikkan kontras | Menghilangkan blur gerak dengan model blur yang diketahui |
3.4 Wavelet dan transformasi lain
Wavelet adalah fondasi untuk menyajikan citra pada berbagai tingkat resolusi (dari gambaran kasar sampai detail halus). Dipakai untuk kompresi data dan representasi piramida. Transformasi lain termasuk transformasi Fourier, yang melihat citra dari sisi frekuensi: bagian halus berfrekuensi rendah, tepi dan detail berfrekuensi tinggi.
3.5 Color image processing
Mencakup model warna (RGB, HSV, dan lain-lain) serta pemrosesan dasar warna. Warna sering menjadi dasar untuk mengambil fitur penting, misalnya mendeteksi buah matang dari warnanya.
3.6 Compression dan watermarking
- Kompresi: mengurangi ukuran penyimpanan atau bandwidth transmisi (contoh JPEG).
- Watermarking: menyisipkan informasi ke dalam citra, misalnya tanda kepemilikan.
3.7 Morphological processing
Alat untuk mengambil komponen citra yang berguna untuk menggambarkan bentuk, dengan operasi dasar seperti erosi dan dilasi. Inilah titik awal peralihan dari "output citra" ke "output atribut".
3.8 Segmentation (segmentasi)
Membagi citra menjadi bagian atau objek penyusunnya, misalnya memisahkan daun dari latar belakang. Slide menekankan:
- Segmentasi otomatis adalah salah satu tugas tersulit dalam pengolahan citra.
- Segmentasi yang akurat membuat klasifikasi objek otomatis lebih berhasil. Segmentasi yang buruk membuat tahap sesudahnya ikut buruk.
3.9 Feature extraction (ekstraksi fitur)
Hampir selalu dilakukan setelah segmentasi. Terdiri dari dua bagian yang sering tertukar:
| Feature detection | Feature description |
|---|---|
| Menemukan fitur di citra, wilayah, atau batas | Memberi atribut kuantitatif pada fitur yang ditemukan |
| Contoh: menemukan sudut (corner) | Contoh: menyatakan sudut itu dengan orientasi dan lokasinya |
Deskriptor yang baik harus tidak peka terhadap perubahan skala, translasi, rotasi, iluminasi, dan sudut pandang. Artinya, benda yang sama tetap menghasilkan angka fitur yang mirip walau difoto dari jarak, posisi, atau cahaya berbeda.
3.10 Image pattern classification
Memberi label pada objek berdasarkan deskriptor fiturnya (misalnya "kendaraan"). Pendekatan klasik: minimum distance, korelasi, Bayes classifier. Pendekatan modern: deep neural network dan deep convolutional neural network (CNN).
4. Alur yang dipakai di mata kuliah ini (slide 13-18)
4.1 Pre-processing
- Enhancement: pengurangan noise dan transformasi ruang.
- Normalization: normalisasi ukuran (semua citra jadi ukuran sama) dan normalisasi intensitas (rentang terang disamakan).
Mengapa penting? Algoritma pembanding butuh data yang "setara". Foto yang satu 4000 piksel dan sangat gelap, yang lain 200 piksel dan terang, tidak adil dibandingkan langsung.
4.2 Segmentation
Memecah data menjadi segmen, dengan hasil RoI (Region of Interest), yaitu wilayah yang berisi satu objek yang ingin dianalisis.
4.3 Feature extraction
Fitur bergantung pada jenis data. Fitur yang baik: distinguishing (membedakan kelas satu dengan lain), robust (stabil), jumlahnya sedikit, dan tidak berkorelasi (tidak saling mengulang informasi). Contoh fitur citra: warna, bentuk, topologi, tekstur.
4.4 Feature selection
Jumlah fitur harus pas: terlalu sedikit tidak cukup membedakan, terlalu banyak membuat proses berat dan rawan overfitting. Sebagian fitur lebih penting dari yang lain, sehingga dipilih yang signifikan memakai PCA, decision tree, dan sejenisnya.
4.5 Feature matching
| Ukuran | Intinya |
|---|---|
| Cosine coefficient (kemiripan) | Mengukur sudut antara dua vektor fitur. Nilai makin dekat 1 berarti makin mirip, tanpa peduli panjang vektor. |
| Euclidean distance (jarak) | Jarak "garis lurus" antar dua titik fitur: √Σ(aᵢ−bᵢ)². Makin kecil berarti makin mirip. |
| Mahalanobis distance (jarak) | Seperti Euclidean tetapi memperhitungkan sebaran dan korelasi antar fitur, sehingga adil untuk fitur dengan skala berbeda. |
| Structural properties, korelasi, string matching | Pencocokan berdasarkan struktur, pola hubungan, atau urutan karakter/kode. |
5. Alat matematika yang akan dipelajari (slide 4)
- Transformasi nilai piksel (misal pemrosesan histogram): histogram menghitung berapa banyak piksel di tiap tingkat keabuan. Meratakannya (equalization) menaikkan kontras.
- Filtering linear dan nonlinear: linear contohnya rata-rata (mean) yang menghaluskan. Nonlinear contohnya median yang bagus untuk noise "garam-merica".
- Transformasi citra (DFT, DWT): melihat citra dalam domain frekuensi atau wavelet.
- Hubungan antar piksel: ketetanggaan, konektivitas, jarak antar piksel.
- Morfologi: erosi, dilasi, opening, closing.
- Inferensi statistik: klasifikasi (label diketahui) dan clustering (mengelompokkan tanpa label).
6. Catatan kritis (membaca slide dengan mata tajam)
7. Latihan (klik untuk melihat jawaban)
1. Apa beda enhancement dan restoration?
Enhancement subjektif, berorientasi aplikasi, tujuannya membuat citra lebih berguna. Restoration objektif, memakai model matematis/probabilistik degradasi untuk memulihkan citra asli.
2. Apa beda feature detection dan feature description?
Detection menemukan fitur (misal sudut). Description memberi atribut kuantitatif pada fitur itu (misal orientasi dan lokasi).
3. Mengapa normalisasi ukuran dan intensitas diperlukan?
Agar citra yang dibandingkan berada pada skala yang setara, sehingga perbedaan yang terukur benar-benar berasal dari isi citra, bukan dari ukuran atau pencahayaan.
4. Sebutkan 4 ciri fitur yang baik.
Distinguishing, robust, jumlah sedikit, dan tidak berkorelasi.
5. Mengapa segmentasi yang buruk merugikan tahap berikutnya?
Fitur dihitung dari RoI hasil segmentasi. Jika RoI salah (terpotong atau berisi latar), fitur salah, sehingga matching atau klasifikasi ikut salah.
6. Kapan cosine lebih cocok daripada Euclidean?
Saat yang penting adalah arah/pola fitur, bukan besarnya nilai, misalnya dua citra dengan pola sama tetapi satu lebih terang.
7. Kritis: mengapa PCA dipertanyakan sebagai "feature selection"?
Karena PCA membentuk fitur baru dari kombinasi fitur asli, bukan memilih subset fitur asli.
8. Checklist belajar
- ☐ Bisa menjelaskan citra digital, piksel, dan spektrum elektromagnetik
- ☐ Hafal urutan alur buku dan alur kuliah, serta bedanya
- ☐ Paham beda enhancement vs restoration
- ☐ Paham beda detection vs description
- ☐ Tahu ciri fitur yang baik dan alasan feature selection
- ☐ Bisa membedakan Euclidean, Mahalanobis, dan cosine
- ☐ Sudah mencoba praktik (Python OpenCV/scikit-image): baca citra, grayscale, histogram, filter
- ☐ Sudah membaca Bab 1-2 buku Gonzalez & Woods
Langkah berikutnya: pilih satu topik (histogram, filtering, atau segmentasi) dan pelajari lebih dalam bersama contoh kode.