less than 1 minute read

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

  1. Charger chaque tuile en niveaux de gris.
  2. Calculer un masque tissu par seuillage Otsu.
  3. Mesurer le pourcentage de tissu.
  4. Supprimer les tuiles sous le seuil (ex: <10%).
  5. 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.

Documentation officielle

Articles liés