Skip to content

Jivl00/KIV_ZVI

Repository files navigation

KIV/ZVI – Zpracování vizuální informace

Implementace vybrané prahovací metody (Sauvola a modifikace)

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.


Obsah


Popis projektu

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.


Požadavky

  • 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.txt

Použití

Veš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.ipynb

Výstupem je binarizovaný obrázek, který je uložen do výstupní složky nebo zobrazen pomocí matplotlib.


Struktura projektu

/
├── 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

Odkazy

  1. 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.
  2. 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
  3. 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
  4. Dey Soumyadeep and Jawanpuria Pratik. Document-image Binarization Using Modified Sauvola’s Algorithm. 2020. PDF

About

Semestrální práce z předmětu Zpracování vizuální informace

Topics

Resources

Stars

Watchers

Forks

Contributors