Images & Media
Manipulation d'images et fichiers multimédia.
Pourquoi cette catégorie
Pillow (PIL) couvre les opérations courantes de traitement d'images en Python. Catnip peut l'utiliser pour des
transformations, filtres, conversions de format. OpenCV (cv2) va plus loin -- vision par ordinateur sur des tableaux
numpy : espaces colorimétriques, détection de contours et de features, morphologie. pyvips construit des pipelines lazy
et traite les grandes images par régions sans les matérialiser entièrement en mémoire.
Les pixels ne demandent pas un framework mystique : ils veulent être lus, transformés, puis recrachés dans le bon format.
Cas d'usage : preprocessing pour ML, génération de thumbnails, batch processing.
Exemples
| Fichier | Module | Description |
|---|---|---|
pillow_transforms.cat |
PIL (Pillow) | Transformations, filtres, conversions, batch processing |
opencv_vision.cat |
OpenCV (cv2) | Couleurs, pipeline, batch, détourage, contours, features et interop numpy |
pyvips_film_grain.cat |
pyvips | Color grading lazy, grain argentique et planche avant/après |
Exécution
catnip codex/images-media/pillow_transforms.cat
catnip codex/images-media/opencv_vision.cat
catnip codex/images-media/pyvips_film_grain.cat
Opérations Couvertes
Transformations géométriques :
- Resize, thumbnail (préserve ratio)
- Rotation, crop
- Flip horizontal/vertical
Filtres et effets :
- Blur, sharpen
- Contour, edge enhance
Conversions :
- RGB ↔ Grayscale
- Changement de format (JPG, PNG)
- Transparence (RGBA)
Manipulation avancée :
- Accès/modification de pixels
- Ajout de texte et formes
- Statistiques d'image (mean, median, stddev)
- Traitement par lot avec broadcasting Catnip
Vision par ordinateur (OpenCV)
Espaces colorimétriques :
- BGR ↔ Grayscale, BGR → HSV et visualisation séparée de ses canaux
- Séparation des canaux (
cv2.split)
Détection :
- Contours (Canny,
findContours) - Seuillage binaire et adaptatif
- Coins / features (Shi-Tomasi)
Filtres et morphologie :
- Gaussian, median, bilateral
- Érosion, dilatation, ouverture, fermeture
Pipeline et batch Catnip :
- Composition séquentielle d'opérations OpenCV avec
fold - Application du même pipeline à plusieurs variantes avec le broadcasting
- Génération d'une planche-contact des résultats
Détourage :
- Initialisation NumPy puis estimation du premier plan avec GrabCut, sans modèle externe
- Production d'un masque, d'un aperçu sur fond sombre et d'un PNG RGBA transparent
Interop numpy :
- Les images sont des tableaux numpy : luminosité/contraste, inversion, statistiques par canal
- Opérations vectorielles directes (
255 - img,np.clip)
Traitement lazy (pyvips)
- Courbe de contraste sigmoïde appliquée par LUT
- Split toning des ombres et hautes lumières
- Grain gaussien déterministe modulé par la luminance
- Vignettage radial construit à partir des coordonnées de l'image
- Évaluation du pipeline à l'écriture et génération d'une planche avant/après