Skip to content

About

numérisation et vectorisation de profils céramiques archéologiques

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

Ceramic Profile Scanner

Logiciel de numérisation et vectorisation de profils céramiques archéologiques.

Python License Platform


Fonctionnalités

  • Détection automatique des profils céramiques sur scans de carnets de fouille
  • Filtrage intelligent : ignore le texte manuscrit, les traits de grille horizontaux et verticaux
  • Détection par trait horizontal : chaque profil est associé à son trait de référence en haut à droite
  • Zones manuelles : dessiner des zones supplémentaires si un profil est manqué
  • Vectorisation en courbes de Bézier (Douglas-Peucker + Catmull-Rom)
  • Export PDF à l'échelle (1:1, 1:2 … 1:20) avec mire de 5 cm
  • OCR intégré (Tesseract) pour lire automatiquement n° de structure et diamètre
  • Correction manuelle de l'angle, du numéro et du diamètre (valeurs décimales)
  • Suppression d'une zone sélectionnée via Suppr / Del

Prérequis

Python

Python 3.9+

Dépendances Python

pip install opencv-python pillow pytesseract reportlab numpy

Tesseract OCR

Télécharger depuis : https://github.com/UB-Mannheim/tesseract/wiki

Placer dans le dossier du projet :

tesseract/
  tesseract.exe
  libgcc_s_seh-1.dll
  libstdc++-6.dll
  libwinpthread-1.dll
  tessdata/
    fra.traineddata
    osd.traineddata

Installation

git clone https://github.com/votre-utilisateur/ceramic-scanner.git
cd ceramic-scanner
pip install -r requirements.txt
python ceramic_scanner.py

Utilisation rapide

Étape Action
1 📂 Ouvrir scan – charger une image JPG/PNG/TIFF
2 ⚙ Analyser – détection automatique des profils
3 ✏ Zone manuelle – dessiner des zones manquées (mode persistant, recliquer pour terminer)
4 Cliquer un profil dans la liste → modifier N°, Diamètre, Angle → ✔ Appliquer
5 📄 Exporter PDF – choisir l'échelle et générer le PDF vectoriel

Touches clavier :

  • Suppr / Del — supprimer la zone sélectionnée
  • 📐 2 pts angle — cliquer 2 points sur la ligne de référence pour corriger l'angle

Seuil contour : ajuster si trop de texte est sélectionné (monter) ou si des profils fins sont manqués (baisser). Valeur par défaut : 215.


Compiler en exécutable Windows

pip install pyinstaller
pyinstaller --clean ceramic_scanner.spec

L'exécutable est généré dans dist/ceramic_scanner.exe.

Tesseract doit être présent dans le dossier tesseract/ avant de compiler.


Structure du projet

ceramic-scanner/
├── ceramic_scanner.py        # Application principale
├── ceramic_scanner.spec      # Spec PyInstaller
├── requirements.txt          # Dépendances Python
├── tesseract/                # Tesseract bundlé (non versionné)
│   ├── tesseract.exe
│   ├── tessdata/
│   │   ├── fra.traineddata
│   │   └── osd.traineddata
│   └── *.dll
├── .gitignore
└── README.md

Fonctionnement de la détection

  1. Binarisation de l'image avec seuil réglable
  2. Suppression des traits horizontaux longs (grille de carnet) et verticaux (colonnes)
  3. Filtrage des composants texte (lettres, chiffres) par taille et densité
  4. Détection de courbure : écart-type angulaire des segments du contour
  5. Association à un trait horizontal de référence en haut à droite (obligatoire, ≤ 50 px du sommet)
  6. Passe 2 : traits horizontaux isolés → recherche d'un profil en dessous (profils à espace blanc)

Licence

MIT © M. Belarbi – 2026

About

numérisation et vectorisation de profils céramiques archéologiques

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages