processImages
Description
L'action processImages, c'est le véritable couteau suisse du traitement d'image dans SAS Viya ! Elle permet d'exécuter des fonctions fondamentales (redimensionnement, filtres, opérations morphologiques, etc.) sur une table d'images en une seule passe.
Paramètres Clés
| Nom du paramètre | Description |
|---|---|
| addColumns | Spécifie les colonnes de base générales à ajouter, qui sont applicables à tous les formats d'image (ex: CHANNELCOUNT, DEPTH, HEIGHT, WIDTH). |
| casOut | Paramètre requis. Spécifie les options de la table de sortie contenant les images traitées. |
| copyVars | Spécifie les variables à copier de la table d'entrée vers la table de sortie (très pratique pour garder les identifiants ou labels). |
| decode | Spécifie les paramètres liés à l'encodage/décodage de l'image (conversion, type d'encodage par exemple 'jpg'). |
| image | Spécifie le nom de la colonne qui contient les données binaires de l'image (par défaut '_image_'). |
| images | Spécifie la liste des paramètres qui décrivent la table d'images d'entrée (alternative à 'table'). |
| table | Spécifie la table d'entrée qui contient les données d'images. |
| steps | Une liste d'étapes de traitement d'images à appliquer (ex: RESIZE, NORMALIZE, GAUSSIAN_FILTER). Chaque étape prend un 'stepType' et ses paramètres spécifiques. |
Préparation des données
Chargement d'images en mémoire
Avant de pouvoir traiter les images, nous devons d'abord les charger dans une table CAS à l'aide de l'action `loadImages`.
| 1 | PROC CAS; image.loadImages / path="/chemin/vers/vos/images" casOut={name="images_entree", replace=TRUE}; RUN; QUIT; |
Exemples d'utilisation
Redimensionnement basique d'images
Cet exemple redimensionne toutes les images de la table d'entrée à une largeur et hauteur spécifiques, pratique pour normaliser des données avant le Machine Learning.
| 1 | PROC CAS; image.processImages / TABLE={name="images_entree"} casOut={name="images_redimensionnees", replace=TRUE} steps={{step={stepType="RESIZE", width=224, height=224, type="BASIC"}}}; RUN; QUIT; |
Résultat Attendu :
Conversion en niveaux de gris
Utilisation de l'étape CONVERT_COLOR pour passer les images couleur (BGR) en niveaux de gris.
| 1 | PROC CAS; image.processImages / TABLE={name="images_entree"} casOut={name="images_gris", replace=TRUE} steps={{step={stepType="CONVERT_COLOR", type="COLOR2GRAY"}}}; RUN; QUIT; |
Résultat Attendu :
Pipeline de traitement multiple : Redimensionnement, Flou et Seuil
Exemple d'un pipeline complet : on redimensionne l'image en conservant le ratio (KEEP_ASPECT_RATIO), on applique un filtre gaussien pour lisser le bruit, puis un seuillage. La magie du paramètre %%steps%% permet d'enchaîner tout ça en une seule requête !
| 1 | PROC CAS; image.processImages / TABLE={name="images_entree"} casOut={name="images_traitees", replace=TRUE} copyVars={"_id_"} steps={{step={stepType="RESIZE", width=300, height=300, type="KEEP_ASPECT_RATIO"}}, {step={stepType="GAUSSIAN_FILTER", kernelWidth=5, kernelHeight=5}}, {step={stepType="THRESHOLD", type="BINARY", value=128}}}; RUN; QUIT; |