Python : filtrer les tuiles sans tissu
Python : filtrer les tuiles sans tissu
Objectif
À la fin, vous aurez reproduit cette étape de bout en bout sur un cas test.
Avant de commencer
- Python 3.10+ et environnement virtuel.
- Dépendances installées pour le script de l’article.
- Un dossier entrée/sortie clairement séparé.
Pas à pas
- Charger chaque tuile en niveaux de gris.
- Calculer un masque tissu par seuillage Otsu.
- Mesurer le pourcentage de tissu.
- Supprimer les tuiles sous le seuil (ex: <10%).
- Garder un log des tuiles rejetées.
À copier-coller
import cv2
import numpy as np
from pathlib import Path
for fp in Path('tiles').glob('*.jpg'):
img = cv2.imread(str(fp), cv2.IMREAD_GRAYSCALE)
_, mask = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)
tissue_ratio = float((mask > 0).mean())
if tissue_ratio < 0.10:
fp.unlink()
Vérifier que ça marche
- Le script s’exécute sans exception.
- Les fichiers de sortie sont bien créés.
- Le résultat est cohérent sur un petit lot test.
En cas de problème
- Relancer dans un environnement virtuel propre.
- Vérifier chemins d’entrée/sortie et permissions.