Scénario de test & Cas d'usage
Traitement, manipulation et analyse d'images.
Découvrir toutes les actions de imageCréation d'une table contenant l'image de référence unique et d'une table simulant un lot de 5 pièces de production, dont certaines défectueuses.
| 1 | |
| 2 | DATA casuser.ref_pcb; |
| 3 | LENGTH _path_ $255 type $20; |
| 4 | _path_='/mnt/ |
| 5 | data/quality/golden_master_pcb.png'; |
| 6 | type='gold'; |
| 7 | OUTPUT; |
| 8 | |
| 9 | RUN; |
| 10 | |
| 11 | DATA casuser.prod_batch; |
| 12 | LENGTH _path_ $255 batch_id $10; |
| 13 | INPUT _path_ $ batch_id $; |
| 14 | CARDS; |
| 15 | /mnt/ |
| 16 | DATA/prod/pcb_001.png BATCH_A /mnt/ |
| 17 | DATA/prod/pcb_002.png BATCH_A /mnt/ |
| 18 | DATA/prod/pcb_003.png BATCH_A /mnt/ |
| 19 | DATA/prod/pcb_004.png BATCH_A /mnt/ |
| 20 | DATA/prod/pcb_005.png BATCH_A ; |
| 21 | |
| 22 | RUN; |
| 23 |
| 1 | |
| 2 | PROC CAS; |
| 3 | TABLE.loadTable / path='ref_pcb.sashdat' caslib='casuser' casOut={name='ref_pcb', replace=true}; |
| 4 | TABLE.loadTable / path='prod_batch.sashdat' caslib='casuser' casOut={name='prod_batch', replace=true}; |
| 5 | |
| 6 | RUN; |
| 7 |
| 1 | |
| 2 | PROC CAS; |
| 3 | image.compareImages / sourceImages={TABLE={name='prod_batch', caslib='casuser'}} referenceImages={TABLE={name='ref_pcb', caslib='casuser'}} casOut={name='resultats_qualite', caslib='casuser', replace=true} method='SSIM' pairAll=true copyVars={'batch_id'}; |
| 4 | |
| 5 | RUN; |
| 6 |
Une table 'resultats_qualite' contenant 5 lignes (une par pièce produite). Chaque ligne aura un score SSIM proche de 1 pour les pièces conformes et nettement inférieur pour les pièces défectueuses. La colonne 'batch_id' est conservée pour la traçabilité.