Scénario de test & Cas d'usage
Traitement, manipulation et analyse d'images.
Découvrir toutes les actions de imageCréation d'une table CAS simulée 'pieces_prod' contenant des métadonnées sur les images de pièces. En pratique, les images seraient chargées avec 'casutil load'. Ici, nous simulons la table avec des ID et des labels de défaut.
| 1 | DATA casuser.pieces_prod; |
| 2 | LENGTH id_piece $ 10 image_path $ 50; |
| 3 | INPUT id_piece $ is_defective; |
| 4 | image_path = '/path/to/images/' || id_piece || '.jpg'; |
| 5 | DATALINES; |
| 6 | PIECE_001 0 |
| 7 | PIECE_002 1 |
| 8 | PIECE_003 0 |
| 9 | ; |
| 10 | RUN; |
| 11 | |
| 12 | PROC CASUTIL; |
| 13 | load DATA=casuser.pieces_prod casout='pieces_prod_cas' replace; |
| 14 | /* Étape de chargement d'image réelle omise pour la simulation */ |
| 15 | /* load path='/path/to/images/' casout='images_cas' importoptions=(fileType='IMAGE'); */ |
| 16 | /* La jointure se ferait ensuite pour lier les labels aux images */ |
| 17 | QUIT; |
| 1 | /* Étape préliminaire : nous supposons que la table 'source_images' a été préparée et chargée en CAS. */ |
| 1 | PROC CAS; |
| 2 | image.augmentImages / |
| 3 | TABLE={name='source_images', where='is_defective=1'}, |
| 4 | casOut={name='augmented_defects', replace=true}, |
| 5 | seed=42, |
| 6 | copyVars={'id_piece', 'is_defective'}, |
| 7 | augmentations={{ |
| 8 | useWholeImage=true, |
| 9 | mutations={ |
| 10 | horizontalFlip=true, |
| 11 | rotateRight={type='RANGE', value={0, 15}}, |
| 12 | darken={type='RANGE', value={0.9, 1.0}} |
| 13 | } |
| 14 | }}; |
| 15 | QUIT; |
La table de sortie 'augmented_defects' doit être créée en CAS. Elle doit contenir uniquement des augmentations des images marquées comme défectueuses (is_defective=1). Chaque image source doit avoir généré une nouvelle image augmentée avec les transformations spécifiées. Les colonnes 'id_piece' et 'is_defective' doivent être présentes et correctement reportées pour chaque nouvelle image, permettant une traçabilité complète.