image condenseImages

Conversion Standard de Scans Rétiniens (RGB)

Scénario de test & Cas d'usage

Contexte Métier

Un hôpital universitaire souhaite préparer des données brutes issues de scanners ophtalmologiques (valeurs de pixels brutes extraites en CSV) pour alimenter un modèle de Deep Learning détectant la rétinopathie diabétique. Les données arrivent sous forme de flux de pixels (R, G, B) et doivent être converties en objets images binaires exploitables par SAS Viya.
À propos du Set : image

Traitement, manipulation et analyse d'images.

Découvrir toutes les actions de image
Préparation des Données

Simulation de 2 scans rétiniens de très basse résolution (10x10 pixels) pour le test. Chaque ligne représente un pixel avec ses composantes Rouge, Vert, Bleu.

Copié !
1 
2DATA casuser.retina_pixels;
3call streaminit(999);
4DO patient_id = 1 to 2;
5DO i = 1 to 100;
6/* 10x10 image */ r = int(rand('UNIFORM') * 255);
7g = int(rand('UNIFORM') * 255);
8b = int(rand('UNIFORM') * 255);
9OUTPUT;
10END;
11END;
12 
13RUN;
14 

Étapes de réalisation

1
Chargement des données brutes en mémoire CAS.
Copié !
1 
2PROC CAS;
3loadtable caslib='casuser' path='retina_pixels.sashdat' casout='retina_pixels';
4 
5RUN;
6 
2
Exécution de condenseImages pour transformer les 100 lignes par patient en 1 image couleur.
Copié !
1PROC CAS;
2 image.condenseImages /
3 TABLE={name='retina_pixels'},
4 inputs={{name='r'}, {name='g'}, {name='b'}},
5 width=10,
6 height=10,
7 numberOfChannels='COLOR_IMAGE',
8 casOut={name='retina_images_ready', replace=true};
9RUN;

Résultat Attendu


La table de sortie 'retina_images_ready' doit contenir 2 lignes (une par patient). La colonne image doit être de type binaire (VARBINARY) contenant l'image reconstruite en 10x10 pixels.