Flask App che scansiona con OCR una libreria di immagini e successivamente permette di cercare stringhe di testo contenute in tali immagini.
- Creare una cartella
screenshots
nella cartella root del progetto ed inserire al suo interno le immagini da elaborare. - Creare un
virtual enviorment
python con il comando:
python -m venv venv
- Attivare l'ambiente virtuale con il comando:
source venv/bin/activate
- Installare i pacchetti python necessari con il comando:
pip install -r requirements.txt
- Eseguire lo script python
extract_text.py
con il comando:
python extract_text.py
Lo script elaborerà tutte le immagini nella cartellascreenshot
e genererà un databaseimages.db
contenente una tabella con il testo estrapolato dalle singole immagini
- Eseguire lo script python
app.py
con il comando:
python app.py
- Visitare la pagina
http://127.0.0.1:5000/
per utilizzare la GUI. - Inserire nel campo di input la stringa di testo da ricercare.
- L'app presenterà il risultato della ricerca in un layout a card, con la possibilitò di aprire a schermo intero ogni singola immagine risultante.
Per migliorare il riconoscimento OCR con pytesseract
, si possiamo applicare pre-processing alle immagini prima dell'analisi.
Alcune ottimizzazioni includono:
✅ Conversione in scala di grigi per ridurre il rumore
✅ Binarizzazione (thresholding) per migliorare il contrasto
✅ Ridimensionamento per una maggiore accuratezza
✅ Rimozione del rumore con filtri OpenCV
✅ Uso di modalità OCR ottimizzate con --psm
e --oem
🔍 Miglioramenti rispetto alla versione base
- Pre-processing avanzato con OpenCV
- Riduzione rumore (
cv2.bilateralFilter
) - Binarizzazione migliorata (
cv2.THRESH_OTSU
) - Scala di grigi per ridurre il peso computazionale
- Ridimensionamento (
cv2.resize
) per un OCR più accurato
- Riduzione rumore (
- Migliore configurazione di Tesseract
--oem 3
: Modalità avanzata per migliorare l'accuratezza--psm 6
: Ideale per blocchi di testo standard
- Più efficiente e automatico
- Eliminazione automatica delle immagini temporanee
- Ottimizzazione del database con
INSERT OR REPLACE