Proyek ini merupakan implementasi Pengolahan Citra Digital untuk melakukan:
- Perbaikan Citra menggunakan berbagai teknik enhancement
- Deteksi Tepi menggunakan metode Sobel, Prewitt, dan LoG
- Segmentasi Citra menggunakan Otsu Thresholding
- Operasi Morfologi (Opening dan Closing)
- Evaluasi Performa dengan menghitung MSE, Akurasi, Sensitivitas, dan Spesifisitas
PCD-UAS/
β
βββ π hitung_mse.m # Kode utama untuk menghitung MSE
βββ π hitung_akurasi.m # Kode utama untuk menghitung Akurasi
βββ π export_pixel_tables.m # Export pixel values 9x9 ke CSV
βββ π README.md # Dokumentasi utama (file ini)
β
βββ π 1_apple-image/ # Folder input (15 gambar apel)
βββ π 2_plat-image/ # Folder input (15 gambar plat nomor)
β
βββ π image-hasil-mse/ # Output hasil perbaikan (75 gambar)
βββ π image-hasil-terbaik/ # Output hasil akurasi
β βββ citra-asli/
β βββ citra-asli-groundtruth/
β βββ sobel-groundtruth/
β βββ prewitt-groundtruth/
β βββ log-groundtruth/
β
βββ π Table-Mse/ # Tabel hasil MSE
βββ π Table-Accuration/ # Tabel hasil Akurasi
βββ π Pixel-Tables/ # Pixel values 9x9 (CSV)
| Script | Estimasi Waktu | Keterangan |
|---|---|---|
hitung_mse.m |
3-5 menit | 15 gambar Γ 5 filter Γ 3 metode edge |
hitung_akurasi.m |
2-4 menit | 15 gambar Γ 3 metode segmentasi |
export_pixel_tables.m |
1-2 menit | Export 165 file CSV |
| TOTAL | ~10 menit | Untuk satu kali run lengkap |
>> cd 'C:\Users\Dan\Desktop\MATKUL5\PCD-UAS'>> hitung_mseMenu yang muncul:
==========================================================
PILIH FOLDER INPUT GAMBAR
==========================================================
1. 1_apple-image (Gambar Apel)
2. 2_plat-image (Gambar Plat Nomor)
==========================================================
Pilih folder (1/2): _
----------------------------------------------------------
DITEMUKAN HASIL PENGOLAHAN SEBELUMNYA!
----------------------------------------------------------
1. Hapus hasil lama & proses ulang dari awal
2. Lanjutkan tanpa hapus (timpa file lama)
----------------------------------------------------------
Pilih (1/2): _
>> hitung_akurasi>> export_pixel_tablesββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β HITUNG_MSE.M β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
[1] PILIH FOLDER INPUT
βββ 1_apple-image atau 2_plat-image
[2] CEK HASIL LAMA
βββ Pilih: Hapus atau Lanjutkan
[3] UNTUK SETIAP GAMBAR (15 gambar):
β
βββ [3.1] Baca gambar β Convert grayscale
β
βββ [3.2] TERAPKAN 5 FILTER:
β βββ Brightness +40
β βββ Contrast 15
β βββ Combination
β βββ Nonlinear (gamma=0.7)
β βββ Histogram Equalization
β
βββ [3.3] EDGE DETECTION (3 metode Γ 6 gambar):
β βββ Sobel pada asli & 5 hasil filter
β βββ Prewitt pada asli & 5 hasil filter
β βββ LoG pada asli & 5 hasil filter
β
βββ [3.4] HITUNG MSE:
βββ MSE = Ξ£(edge_asli - edge_filter)Β² / (MΓN)
[4] IDENTIFIKASI METODE TERBAIK
βββ Hitung rata-rata MSE per kombinasi
βββ Cari MSE terendah β Metode terbaik
βββ Cari gambar dengan MSE terendah β Gambar referensi
[5] SIMPAN HASIL:
βββ 75 gambar β image-hasil-mse/
βββ mse_table.txt β Table-Mse/
βββ best_method_info.mat β Table-Mse/
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β HITUNG_AKURASI.M β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
[1] LOAD METODE TERBAIK dari MSE
βββ bestMethodIdx, bestTechniqueIdx, bestImageName
[2] BUAT GROUND TRUTH REFERENSI (sekali saja):
βββ Baca gambar terbaik dari MSE
βββ Edge detection (metode terbaik)
βββ Otsu thresholding
βββ Morfologi (Opening + Closing)
[3] UNTUK SETIAP GAMBAR (15 gambar):
β
βββ [3.1] Segmentasi dengan 3 metode:
β βββ Sobel β Otsu β Morfologi
β βββ Prewitt β Otsu β Morfologi
β βββ LoG β Otsu β Morfologi
β
βββ [3.2] HITUNG METRIK (vs GT Referensi):
βββ Akurasi = (TP+TN) / Total Γ 100%
βββ Sensitivitas = TP / (TP+FN) Γ 100%
βββ Spesifisitas = TN / (TN+FP) Γ 100%
[4] SIMPAN HASIL:
βββ 75 gambar β image-hasil-terbaik/
βββ akurasi_table.txt β Table-Accuration/
Script export_pixel_tables.m mengekspor nilai pixel 9Γ9 (pojok kiri atas) ke CSV.
Pixel-Tables/
βββ 1_hasil_mse/
β βββ 01_citra_asli/ (15 CSV)
β βββ 02_brightness/ (15 CSV)
β βββ 03_contrast/ (15 CSV)
β βββ 04_combination/ (15 CSV)
β βββ 05_nonlinear/ (15 CSV)
β βββ 06_improve/ (15 CSV)
β
βββ 2_hasil_terbaik/
βββ 01_citra_asli/ (15 CSV)
βββ 02_ground_truth/ (15 CSV)
βββ 03_sobel_gt/ (15 CSV)
βββ 04_prewitt_gt/ (15 CSV)
βββ 05_log_gt/ (15 CSV)
Total: 165 file CSV
data = csvread('Pixel-Tables/1_hasil_mse/01_citra_asli/gambar1.csv');
disp(data); % Menampilkan matriks 9x9imread,imwrite- Baca/tulis gambardir,exist,mkdir- Operasi folderfopen,fprintf,fclose- Tulis file textsave,load- Simpan/load .matcsvwrite- Tulis CSV
size,zeros,ones,double,uint8round,floor,max,min,sum,mean,sqrt,absfor,if,switch,while
| Library Function | Pengganti Manual |
|---|---|
rgb2gray |
rgb2gray_manual() |
edge |
sobel_edge_detection(), prewitt_edge_detection(), log_edge_detection() |
graythresh |
otsu_threshold_manual() |
imerode |
erosi_manual() |
imdilate |
dilasi_manual() |
imresize |
imresize_manual() |
histeq |
histogram_equalization_manual() |
imfilter |
Konvolusi loop manual |
TOTAL: 15 fungsi diimplementasi manual dari nol!
MSE = (1/MN) Γ Ξ£α΅’ Ξ£β±Ό [f(i,j) - g(i,j)]Β²
Akurasi = (TP + TN) / (TP + TN + FP + FN) Γ 100%
Sensitivitas = TP / (TP + FN) Γ 100%
Spesifisitas = TN / (TN + FP) Γ 100%
Dimana:
- TP = True Positive (benar mendeteksi edge)
- TN = True Negative (benar mendeteksi background)
- FP = False Positive (salah mendeteksi edge)
- FN = False Negative (gagal mendeteksi edge)
- Urutan Eksekusi: Jalankan
hitung_mse.mSEBELUMhitung_akurasi.m - Waktu Proses: Total ~10 menit untuk 15 gambar
- Format Gambar: Mendukung PNG, JPG, JPEG, BMP
- Ground Truth: Dibuat dari gambar dengan MSE terbaik (referensi universal)
- Pilih Folder:
hitung_mse.mmemiliki menu pilih folder input - Hapus Hasil Lama: Ada menu untuk menghapus hasil sebelumnya
PCD-UAS Project
Pengolahan Citra Digital - Ujian Akhir Semester
Tanggal: Januari 2026