Code untuk melakukan pengecekan bidang persegi panjang dari suatu gambar
- Clone this repo
- Open the project directory
- Run
go mod tidy
- Run
make run
-
Buka file gambar input (image.png)
-
Decode gambar PNG dan ambil ukurannya
-
Siapin variabel buat nyimpan koordinat border (minX, minY, maxX, maxY)
-
Bikin file log buat nyatet proses debug (debug.log)
-
Bikin fungsi bantu isBlackPixel(r, g, b):
- Balikin true kalau piksel dianggap hitam (RGB < 30)
-
Langkah 1: Scan horizontal (per baris) buat cari border atas & bawah:
- Hitung jumlah piksel hitam per baris
- Kalau banyak piksel hitam, kemungkinan itu border → update minY / maxY
- Juga update minX / maxX kalau nemu piksel hitam
-
Langkah 2: Scan vertikal (per kolom) buat cari border kiri & kanan:
- Hitung jumlah piksel hitam per kolom
- Log kolom yang kelihatannya jadi border vertikal
-
Langkah 3: Deteksi deretan piksel hitam yang panjang (streak):
- Kalau nemu deretan piksel hitam yang panjangnya lebih dari 1/3 lebar gambar, kemungkinan itu garis border → update minY / maxY
-
Langkah 4: Validasi hasil deteksi
- Kalau tinggi hasil deteksi >75% tinggi gambar, mungkin border bawah salah
- Coba scan ulang dari bawah buat cari border bawah yang bener
-
Langkah 5: Crop gambar berdasarkan koordinat border yang ditemukan:
- Bikin gambar baru dengan ukuran sesuai area crop
- Salin piksel dari gambar asli ke gambar baru
-
Simpan hasil crop ke file output.png
-
Selesai!