image

condenseImages

##set_image ##file_io

Description

L'action condenseImages est l'outil idéal pour transformer des données tabulaires brutes en véritables tables d'images exploitables par SAS Viya. Imaginez que vous ayez des données de pixels éparpillées dans des colonnes (comme après avoir lu un fichier CSV de type MNISTBase de données de référence comprenant 70 000 images de chiffres manuscrits (0-9). Utilisée dans SAS Viya pour entraîner et tester des modèles de classification et de Deep Learning.), cette action va 'condenser' ces colonnes pour recréer une structure d'image cohérente (largeur x hauteur x canaux). C'est un peu comme passer d'une liste de courses d'ingrédients à un gâteau bien formé !

Syntaxe Officielle
image.condenseImages /
casOut={casouttable},
copyVars={"variable-name-1" <, "variable-name-2", ...>},
decode={encodeType="string", value=TRUE | FALSE},
depth="BIT32" | "BIT64" | "BIT8" | 64-bit-integer,
groupedChannels=TRUE | FALSE,
height=64-bit-integer,
inputs={{casinvardesc-1} <, {casinvardesc-2}, ...>},
numberOfChannels="COLOR_IMAGE" | "GRAY_SCALE_IMAGE" | 64-bit-integer,
table={castable},
width=64-bit-integer

Paramètres Clés

Nom du paramètre Description
casOut Spécifie les paramètres de la table CAS de sortie qui contiendra les images condensées.
table Spécifie la table CAS d'entrée contenant les colonnes de pixels.
height Définit la hauteur (en pixels) de l'image à reconstruire. La valeur par défaut est 32.
width Définit la largeur (en pixels) de l'image à reconstruire. La valeur par défaut est 32.
numberOfChannels Définit le nombre de canaux de l'image (ex: 1 pour du gris, 3 pour de la couleur).
depth Spécifie la profondeur de bits des pixels (BIT8, BIT32, etc.).
groupedChannels Si TRUE, l'action considère que les pixels sont regroupés par canal dans l'ordre (tout le canal Bleu, puis tout le Vert, puis tout le Rouge). Si FALSE, ils sont entrelacés (BGRBGR...).
inputs Liste des colonnes numériques contenant les valeurs de pixels. Si non spécifié, toutes les colonnes numériques sont utilisées.
copyVars Variables de la table d'entrée à copier vers la table de sortie (identifiants, labels, etc.).

Préparation des données

Création de données de pixels factices

Ce code crée une table avec 4 pixels (2x2) pour une image en niveaux de gris.

1DATA casuser.pixels; INPUT id p1 p2 p3 p4; DATALINES; 1 255 128 64 0 2 0 64 128 255 ; RUN;

Exemples d'utilisation

Condensation basique en niveaux de gris

Transforme 4 colonnes de pixels en une image 2x2 en gris.

1PROC CAS; image.condenseImages / TABLE={name="pixels"}, casOut={name="images_gris", replace=true}, height=2, width=2, numberOfChannels=1; RUN;
Résultat Attendu :
Une table 'images_gris' contenant une colonne binaire d'image au format SAS.
Condensation d'images couleur avec conservation d'ID

Exemple plus complexe utilisant des canaux groupés et copiant l'identifiant d'origine.

1PROC CAS; image.condenseImages / TABLE={name="pixels"}, casOut={name="images_final", replace=true}, height=2, width=2, numberOfChannels=3, groupedChannels=true, copyVars={"id"}, depth="BIT8"; RUN;
Résultat Attendu :
Une table d'images couleur 2x2 où l'ordre des pixels dans les colonnes d'entrée est supposé être RRRRGGGGBBBB.