Logiciel de numérisation et vectorisation de profils céramiques archéologiques.
- 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
Python 3.9+
pip install opencv-python pillow pytesseract reportlab numpyTé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
git clone https://github.com/votre-utilisateur/ceramic-scanner.git
cd ceramic-scanner
pip install -r requirements.txt
python ceramic_scanner.py| É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.
pip install pyinstaller
pyinstaller --clean ceramic_scanner.specL'exécutable est généré dans dist/ceramic_scanner.exe.
Tesseract doit être présent dans le dossier
tesseract/avant de compiler.
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
- Binarisation de l'image avec seuil réglable
- Suppression des traits horizontaux longs (grille de carnet) et verticaux (colonnes)
- Filtrage des composants texte (lettres, chiffres) par taille et densité
- Détection de courbure : écart-type angulaire des segments du contour
- Association à un trait horizontal de référence en haut à droite (obligatoire, ≤ 50 px du sommet)
- Passe 2 : traits horizontaux isolés → recherche d'un profil en dessous (profils à espace blanc)
MIT © M. Belarbi – 2026