Tento repozitář obsahuje řešení semestrální práce z předmětu KIV/ZVI – Zpracování vizuální informace na Katedře informatiky a výpočetní techniky, Fakulty aplikovaných věd, Západočeské univerzity v Plzni.
Cílem projektu je analyzovat a implementovat prahovací algoritmus Sauvola a jeho dvě modifikace pro binarizaci obrazu. Projekt je implementován v jazyce Python za využití knihoven OpenCV, NumPy a Matplotlib.
V rámci semestrální práce byl detailně analyzován prahovací algoritmus Sauvola, včetně jeho vylepšené varianty ISauvola a další modifikované metody zohledňující konfidenční skóre. Byly realizovány a otestovány tři varianty algoritmu:
- Sauvola
- ISauvola (vylepšený algoritmus pro nízký kontrast)
- Modifikovaný Sauvola (s použitím konfidenčního skóre)
Následně byly jednotlivé metody porovnány z hlediska kvality binarizace.
- Python 3.8+
- OpenCV (
opencv-python) - NumPy
- Matplotlib
- Scikit-image (
scikit-image) - DoxaPy (volitelné pro rozšířené testování)
Instalace všech závislostí:
pip install -r requirements.txtVeškerá funkcionalita je dostupná v souboru main.ipynb. Otevřete tento Jupyter notebook a postupujte podle jednotlivých buněk, kde můžete zvolit algoritmus, načíst obrázek a spustit binarizaci. Není potřeba spouštět samostatné skripty.
Pro spuštění notebooku použijte:
jupyter notebook main.ipynbVýstupem je binarizovaný obrázek, který je uložen do výstupní složky nebo zobrazen pomocí matplotlib.
/
├── images/ # Ukázkové testovací obrázky
├── isauvola_comp/ # Výstupy a výsledky pro algoritmus ISauvola
├── sauvola_comp/ # Výstupy a výsledky pro původní algoritmus Sauvola
├── sauvola_mod_comp/ # Výstupy a výsledky pro modifikovaný Sauvola algoritmus
├── thresholder.py # Implementace prahovacích metod (Sauvola, ISauvola, modifikace)
├── main.ipynb # Hlavní Jupyter notebook pro spouštění a testování algoritmů
├── ZVI_Kimlova_dokumentace.pdf # Dokumentace k projektu
├── ZVI_Kimlova_prezentace.pptx # Prezentace k projektu
├── requirements.txt # Seznam požadovaných Python knihoven
└── README.md # Tento soubor s popisem projektu
- Zineb Hadjadj, Abdelkrim Meziane, Yazid Cherfa, Mohamed Cheriet, and Insaf Setitra. ISauvola: Improved Sauvola’s Algorithm for Document Image Binarization. In Aurélio Campilho and Fakhri Karray (eds.), Image Analysis and Recognition, pages 737–745, Cham, 2016. Springer International Publishing.
- Guillaume Lazzara and Thierry Géraud. Efficient Multiscale Sauvola’s Binarization. International Journal on Document Analysis and Recognition (IJDAR), 17:105–123, 2013. doi:10.1007/s10032-013-0209-0
- J. Sauvola and M. Pietikäinen. Adaptive Document Image Binarization. Pattern Recognition, 33(2):225–236, 2000. URL, doi:10.1016/S0031-3203(99)00055-2
- Dey Soumyadeep and Jawanpuria Pratik. Document-image Binarization Using Modified Sauvola’s Algorithm. 2020. PDF