Pengenalan Metode Low-Level Preprocessing
Tujuan: memahami konsep, jenis operasi (resize, crop, Gaussian blur, grayscale), serta contoh implementasi Python (OpenCV).
- Menjelaskan konsep dasar pengolahan citra digital.
- Memahami prinsip metode low-level preprocessing.
- Menerapkan operasi dasar (resize, crop, blur, grayscale).
- Menyadari pentingnya preprocessing untuk analisis citra.
Pengertian Pengolahan Citra Digital
Pengolahan citra digital adalah proses memanipulasi gambar menggunakan algoritma komputer untuk memperbaiki atau mengekstrak informasi dari gambar.
Citra digital direpresentasikan sebagai array numerik:
- Grayscale (abu-abu): 2 dimensi (tinggi × lebar)
- RGB (berwarna): 3 dimensi (tinggi × lebar × 3 kanal)
Konsep Low-Level Preprocessing
Low-Level Preprocessing merupakan tahap awal dalam pengolahan citra yang bekerja langsung pada nilai intensitas piksel. Tujuannya memperbaiki kualitas citra tanpa mengubah maknanya. Proses ini menjadi fondasi bagi tahap middle-level dan high-level processing.
Jenis Operasi Low-Level Preprocessing
1) Resize
Menyeragamkan ukuran citra agar konsisten sebagai input model/pipeline.
2) Crop
Mengambil area penting dari citra, umumnya pusat atau ROI.
3) Gaussian Blur
Menghaluskan citra dan mengurangi noise menggunakan kernel Gaussian.
4) Grayscale
Mengubah gambar berwarna menjadi keabuan untuk menyederhanakan analisis.
Contoh Implementasi Python (OpenCV)
import cv2img = cv2.imread('gambar.jpg') img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) resized = cv2.resize(img_rgb, (256, 256)) blurred = cv2.GaussianBlur(resized, (5, 5), 0)gray = cv2.cvtColor(blurred, cv2.COLOR_RGB2GRAY)
Fungsi Tiap Tahap
- Resize – Menyeragamkan ukuran.
- Crop – Fokus pada area penting.
- Blur – Mengurangi noise.
- Grayscale – Menyederhanakan warna untuk analisis.
Alur Proses Low-Level Preprocessing
Citra Asli (RGB) → Resize (256×256) → Crop Tengah (50%) → Gaussian Blur (5×5) → Grayscale → Citra Siap Digunakan
Kaitan dengan Tahap Lain
Hasil low-level preprocessing digunakan sebagai input untuk middle-level seperti deteksi tepi, segmentasi, dan ekstraksi fitur. Preprocessing yang baik meningkatkan akurasi dan efisiensi analisis lanjutan.
Contoh Aplikasi
- Deteksi wajah – citra diubah ke grayscale sebelum dideteksi.
- OCR – citra difilter dan diubah ke abu-abu sebelum ekstraksi teks.
- Klasifikasi daun/sel – preprocessing mengurangi noise sebelum segmentasi.
Kesimpulan
- Low-level preprocessing merupakan tahap dasar pengolahan citra digital.
- Operasi resize, crop, blur, dan grayscale meningkatkan kualitas citra.
- Hasilnya menentukan keberhasilan analisis lanjutan.
- Python (OpenCV + Pillow) memudahkan implementasinya.
Penerapan
1) Import & Dependensi
import os, sys # manipulasi pathimport cv2 # OpenCV: resize, GaussianBlur, cvtColorimport tkinter as tkfrom tkinter import filedialog, messagebox # GUI & dialogfrom PIL import Image, ImageTk # Pillow untuk konversiimport numpy as np # representasi array
2) Penyiapan Path Modul Internal
Menambahkan _ROOT_DIR ke sys.path agar paket internal (mis. common.io) dapat diimpor.
3) Kelas PreprocessGUI
Mengelola state dan logika GUI (judul, panel kontrol, area tampilan).
4) open_image
Dialog pemilihan file & pemuatan gambar, dengan penanganan error.
5) Metode Bantuan
_ensure_image memastikan gambar sudah dimuat sebelum operasi.
6) Operasi Citra
- show_original – tampilkan citra awal.
- op_resize – ubah ke 256×256.
- op_crop_center – potong pusat 50%.
- op_blur_gauss – kernel 5×5.
- op_gray – RGB → Grayscale.
7) Rendering Helpers
_render & _fit_image untuk menyesuaikan tampilan dan menjaga kualitas.
8) Entry Point
if __name__ == "__main__":root = tk.Tk()app = PreprocessGUI(root)root.mainloop()
9) Alur Eksekusi Singkat
User memilih file → tampil “Citra Asli” → pilih operasi (Resize/Crop/Blur/Grayscale) → hasil ditampilkan.
10) Catatan Teknis & Best Practice
- Konsisten kanal warna (RGB vs BGR) saat konversi.
- Tahan referensi
PhotoImagedi atribut agar tidak di-GC. - Hindari upscale berlebihan untuk tampilan.
11) Ide Peningkatan
- Simpan hasil, Undo/Redo.
- Slider parameter (kernel blur, persentase crop, target size).
- Info citra (ukuran/tipe) di status bar.
Referensi
- Gonzalez & Woods. Digital Image Processing. Pearson, 2018.
- OpenCV Documentation
- Pillow Documentation