Skip to content

Repository files navigation

πŸ–ΌοΈ PCD-UAS: Pengolahan Citra Digital - Ujian Akhir Semester

πŸ“‹ Deskripsi Proyek

Proyek ini merupakan implementasi Pengolahan Citra Digital untuk melakukan:

  1. Perbaikan Citra menggunakan berbagai teknik enhancement
  2. Deteksi Tepi menggunakan metode Sobel, Prewitt, dan LoG
  3. Segmentasi Citra menggunakan Otsu Thresholding
  4. Operasi Morfologi (Opening dan Closing)
  5. Evaluasi Performa dengan menghitung MSE, Akurasi, Sensitivitas, dan Spesifisitas

πŸ“ Struktur Folder

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)

⏱️ ESTIMASI WAKTU PENGERJAAN

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

πŸš€ CARA MENJALANKAN PROGRAM

Langkah 1: Buka MATLAB

>> cd 'C:\Users\Dan\Desktop\MATKUL5\PCD-UAS'

Langkah 2: Jalankan hitung_mse.m

>> hitung_mse

Menu 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): _

Langkah 3: Jalankan hitung_akurasi.m

>> hitung_akurasi

Langkah 4: (Opsional) Export Pixel Tables

>> export_pixel_tables

πŸ”„ ALUR KERJA PROGRAM

TAHAP 1: HITUNG_MSE.M

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    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/

TAHAP 2: HITUNG_AKURASI.M

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                  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/

πŸ“Š EXPORT PIXEL TABLES

Script export_pixel_tables.m mengekspor nilai pixel 9Γ—9 (pojok kiri atas) ke CSV.

Output:

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

Cara Membaca CSV:

data = csvread('Pixel-Tables/1_hasil_mse/01_citra_asli/gambar1.csv');
disp(data);  % Menampilkan matriks 9x9

βœ… VERIFIKASI: TIDAK ADA LIBRARY DEPENDENSI

Fungsi yang DIPERBOLEHKAN (I/O File):

  • imread, imwrite - Baca/tulis gambar
  • dir, exist, mkdir - Operasi folder
  • fopen, fprintf, fclose - Tulis file text
  • save, load - Simpan/load .mat
  • csvwrite - Tulis CSV

Fungsi Core MATLAB (DIPERBOLEHKAN):

  • size, zeros, ones, double, uint8
  • round, floor, max, min, sum, mean, sqrt, abs
  • for, if, switch, while

Fungsi Image Processing: SEMUA MANUAL!

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!


πŸ”¬ FORMULA PERHITUNGAN

1. MSE (Mean Square Error)

MSE = (1/MN) Γ— Ξ£α΅’ Ξ£β±Ό [f(i,j) - g(i,j)]Β²

2. Akurasi

Akurasi = (TP + TN) / (TP + TN + FP + FN) Γ— 100%

3. Sensitivitas (Recall)

Sensitivitas = TP / (TP + FN) Γ— 100%

4. Spesifisitas

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)

πŸ“ CATATAN PENTING

  1. Urutan Eksekusi: Jalankan hitung_mse.m SEBELUM hitung_akurasi.m
  2. Waktu Proses: Total ~10 menit untuk 15 gambar
  3. Format Gambar: Mendukung PNG, JPG, JPEG, BMP
  4. Ground Truth: Dibuat dari gambar dengan MSE terbaik (referensi universal)
  5. Pilih Folder: hitung_mse.m memiliki menu pilih folder input
  6. Hapus Hasil Lama: Ada menu untuk menghapus hasil sebelumnya

πŸ‘¨β€πŸ’» Author

PCD-UAS Project
Pengolahan Citra Digital - Ujian Akhir Semester
Tanggal: Januari 2026

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages