Aplikasi web berbasis Python untuk meningkatkan kualitas citra paleografi arsip VOC menggunakan metode morfologi.
- Unggah citra paleografi arsip VOC
- Berbagai operasi morfologi (dilasi, erosi, opening, closing, dll.)
- Binarisasi adaptif untuk perbaikan kontras
- Skeletonisasi untuk memperjelas struktur tulisan
- Denoising untuk menghilangkan noise
- Antarmuka pengguna yang intuitif dan responsif
- Visualisasi citra asli dan hasil secara berdampingan
- Backend: Python dengan Flask
- Pemrosesan Citra: OpenCV, scikit-image
- Frontend: HTML, CSS, JavaScript, Bootstrap
- Library Lainnya: NumPy, SciPy
-
Clone repository ini
git clone https://github.com/haykal-proge/paleografi-voc-app.git cd paleografi-voc-app
-
Buat dan aktifkan virtual environment
python -m venv venv # Untuk Windows venv\Scripts\activate # Untuk Unix/Linux source venv/bin/activate
-
Install dependencies
pip install -r requirements.txt
-
Jalankan aplikasi
python app.py
-
Buka browser dan akses
http://localhost:5000
Jika ingin menerapkan aplikasi ini ke PythonAnywhere, ikuti langkah singkat berikut:
-
Siapkan repository publik atau private (mis. GitHub). Di mesin lokal:
git add . git commit -m "Add project for deployment" git push origin main
-
Buat akun di https://www.pythonanywhere.com/ dan masuk.
-
Buat virtualenv di PythonAnywhere (contoh untuk Python 3.10):
mkvirtualenv --python=python3.10 my-venv
-
Clone project di account PythonAnywhere (atau gunakan "Source code" -> "Clone a repo"):
git clone https://github.com/username/paleografi-voc-app.git cd paleografi-voc-app workon my-venv pip install -r requirements.txt
-
Atur Web app di dashboard PythonAnywhere:
- Klik "Web" -> "Add a new web app" -> pilih Manual configuration -> pilih versi Python yang sama dengan virtualenv.
- Pada bagian "Virtualenv", isi path ke virtualenv Anda (mis. /home/username/.virtualenvs/my-venv).
- Pada bagian "Source code", atur path ke folder hasil clone (mis. /home/username/paleografi-voc-app).
-
Edit file WSGI (link "WSGI configuration file" di dashboard) agar memuat aplikasi Flask dari
app.py
. Contoh minimal yang dapat Anda tambahkan/ubah:import sys path = '/home/yourusername/paleografi-voc-app' if path not in sys.path: sys.path.insert(0, path) from app import app as application
-
Static files dan folder upload:
- Di dashboard Web -> Static files, tambahkan mapping untuk
/static/
ke folder/home/yourusername/paleografi-voc-app/static/
. - Jika aplikasi menulis ke
static/uploads/
ataustatic/processed/
, pastikan folder tersebut memiliki permission tulis untuk user PythonAnywhere.
- Di dashboard Web -> Static files, tambahkan mapping untuk
-
Reload web app dari dashboard. Jika ada error, lihat "Error log" dan "Server log" untuk detail.
Catatan penting:
- Pastikan
app.py
mengekspor objek Flask bernamaapp
(contoh:app = Flask(__name__)
). WSGI di atas mengimporapp
dan merename menjadiapplication
. - Set
DEBUG = False
atau gunakan environment variable pada produksi. - Jika menggunakan file konfigurasi (mis.
settings.py
), pastikan path dan konfigurasi upload/static sesuai environment PythonAnywhere.
paleografi-voc-app/
├── app.py # Aplikasi Flask utama
├── requirements.txt # Dependensi Python
├── static/ # Aset statis
│ ├── css/
│ │ └── style.css # Gaya aplikasi
│ ├── js/
│ │ └── main.js # Skrip JavaScript
│ ├── uploads/ # Direktori untuk citra yang diunggah (db local project)
│ └── processed/ # Direktori untuk citra hasil pemrosesan (db local project)
└── templates/ # Template HTML
├── index.html # Halaman utama
└── editor.html # Halaman editor pemrosesan
-
Unggah Citra
- Pada halaman utama, pilih file citra paleografi arsip VOC yang ingin diproses
- Klik tombol "Unggah"
-
Pengaturan Pemrosesan
- Pilih operasi morfologi yang diinginkan (dilasi, erosi, dll.)
- Atur parameter seperti ukuran kernel, nilai threshold, dll.
- Klik tombol "Proses Citra"
-
Hasil
- Visualisasi citra asli dan hasil pemrosesan akan ditampilkan berdampingan
- Unduh hasil pemrosesan dengan mengklik tombol "Unduh Hasil"
Pendekatan morfologi matematis sangat berguna untuk meningkatkan kualitas citra paleografi karena:
- Dilasi: Memperluas area terang, membantu memperjelas teks yang memudar
- Erosi: Mempersempit area terang, membantu menghilangkan noise
- Opening: Kombinasi erosi diikuti dilasi, efektif untuk menghilangkan noise kecil
- Closing: Kombinasi dilasi diikuti erosi, efektif untuk menutup celah kecil
- Top Hat: Efektif untuk mendeteksi puncak terang (tulisan) pada latar gelap
- Black Hat: Efektif untuk mendeteksi puncak gelap pada latar terang
- Skeletonisasi: Menipiskan objek hingga menjadi struktur garis, membantu analisis bentuk tulisan
- Kombinasi perbaikan kontras + binarisasi adaptif sering memberikan hasil yang baik
- Untuk tulisan tinta yang sudah memudar, coba kombinasi dilasi ringan + top hat
- Untuk menghilangkan noise latar belakang, pertimbangkan operasi opening
- Skeletonisasi dapat membantu mengekstrak struktur dasar tulisan
Untuk pertanyaan dan bantuan lebih lanjut, silakan hubungi mail:[haikalaulilalbab@gmail.com] IG: https://instagram.com/haykalaul_/