2026-09-20 21:41:14 +07:00
2026-09-20 21:35:29 +07:00
2026-09-20 21:35:29 +07:00
2026-09-20 21:35:29 +07:00
2026-09-20 21:35:29 +07:00
2026-09-20 21:35:29 +07:00

Color Processor: Pemrosesan Citra Warna dan Pengubahan Warna Wajah

Tugas mata kuliah Pengolahan Citra Digital (Gonzalez & Woods, Bab 6: Color Image Processing), ditulis dengan C++17 dan OpenCV.

Program menerapkan enam operasi pemrosesan citra warna, lalu mendeteksi wajah dan mengubah warna kulitnya. Masukan dapat berupa berkas gambar atau kamera (webcam).

  • Nama: Efraim Melvyn Rafelino Lahai
  • NRP: 5803024009
  • Program Studi: Informatika
  • Dosen Pengajar: Ir. Drs. Peter Rhatodirdjo Angka, M.Kom., IPM., ASEAN Eng.

Fitur

No Operasi Fungsi
1 Komplemen warna computeComplement
2 Kurva S (penyesuaian nada) adjustToneSCurve
3 Ekualisasi histogram kanal Value (HSV) equalizeIntensityHSI
4 Pengirisan warna berbentuk bola 3D sliceColorSphere
5 Penajaman Laplacian sharpenLaplacian
6 Pseudowarna (JET) generatePseudocolor
7 Deteksi wajah (Haar cascade + CLAHE) detectFaces
8 Ubah warna kulit wajah (rotasi Hue di HSV, masker kulit YCrCb) recolorFace

Pengubahan warna wajah memutar Hue sebesar 60 dan mengalikan Saturation dengan 1,3, sehingga kulit menjadi hijau. Nilai ini dapat diubah lewat kHueShift dan kSatScale di color_processor.cpp.

Kebutuhan

  • Kompilator C++17 (diuji dengan MinGW-w64 GCC 16.1)
  • CMake 3.10 atau lebih baru
  • OpenCV 4.x dengan modul core, imgproc, imgcodecs, videoio, highgui, objdetect (diuji dengan 4.10.0)
  • Berkas haarcascade_frontalface_default.xml (ada di folder etc/haarcascades atau data/haarcascades pada instalasi OpenCV)

Catatan: pada MinGW, OpenCV harus dikompilasi dengan kompilator yang sama. Pada pengujian, MSMF dimatikan (-DWITH_MSMF=OFF) karena gagal dikompilasi dengan MinGW, sehingga kamera memakai DirectShow.

Kompilasi

cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=<folder OpenCVConfig.cmake>
cmake --build build

Contoh OpenCV_DIR pada Windows dengan MinGW: D:/opencv/install/x64/mingw/lib.

Setelah build, CMake menyalin haarcascade_frontalface_default.xml dan DLL OpenCV ke folder build/. Jika berkas XML tidak ditemukan, program menampilkan pesan kesalahan; gunakan opsi --cascade.

Penggunaan

Jalankan dari dalam folder build, karena program mencari berkas XML di folder kerja.

# Mode berkas: jalankan semua operasi pada satu gambar
.\color_processor.exe path\ke\foto.jpg

# Mode kamera
.\color_processor.exe --cam

# Tentukan lokasi berkas cascade sendiri
.\color_processor.exe foto.jpg --cascade path\ke\haarcascade_frontalface_default.xml

Tanpa argumen, program membuka kamera.

Mode berkas menyimpan hasil ke output_results/ dengan format PNG:

<nama>_complement.png
<nama>_tone_scurve.png
<nama>_hsi_equalized.png
<nama>_color_sliced.png
<nama>_sharpened.png
<nama>_pseudocolor.png
<nama>_face_recolor.png

Mode kamera: tekan s untuk menyimpan bingkai (output_results/webcam_N.png), q atau Esc untuk keluar.

Struktur Proyek

.
├── color_processor.cpp   # kode program
├── CMakeLists.txt
├── report/               # laporan LaTeX dan gambar hasil
└── README.md

Keterbatasan

  • Haar cascade bergantung pada pencahayaan. Pada ruangan redup, wajah dapat gagal terdeteksi.
  • Wajah yang menunduk, miring, atau tertutup (misalnya topi) sulit dideteksi.
  • Menurunkan ambang deteksi menambah kemungkinan positif palsu.
  • Rentang warna kulit di YCrCb bersifat tetap, sehingga objek berwarna serupa di dalam kotak wajah (misalnya tepi topi krem) dapat ikut berubah.
  • Pengirisan warna memakai satu warna prototipe tetap, sehingga hanya cocok untuk satu nada kulit.
  • Mode kamera belum diuji ulang pada kondisi redup setelah penggantian ke CLAHE.

Referensi

  • R. C. Gonzalez dan R. E. Woods, Digital Image Processing, Bab 6.
  • OpenCV: https://opencv.org
Description
No description provided
Readme 9.7 MiB
Languages
TeX 57.6%
C++ 39.9%
CMake 2.5%