Scénario de test & Cas d'usage
Traitement, manipulation et analyse d'images.
Découvrir toutes les actions de imageCrée une table CAS 'DEFAUTS_PIECES' contenant les métadonnées d'annotation. Cette table simule la sortie d'un modèle de détection de défauts. Elle contient l'ID de l'image, le nom de l'opérateur, et deux colonnes (_lines_ et _points_) contenant les coordonnées pour dessiner les lignes (rayures) et les points (bosses). Note : La table d'images 'IMAGES_PIECES_BRUTES' est supposée préexistante.
| 1 | DATA casuser.DEFAUTS_PIECES; |
| 2 | LENGTH id_image $50 operateur $20 _lines_ $200 _points_ $100; |
| 3 | /* Pièce 1: une rayure, deux bosses */ |
| 4 | id_image = 'piece_001.jpg'; operateur = 'OP_734'; |
| 5 | _lines_ = '{ {10, 50, 150, 55} }'; /* Une ligne de (10,50) à (150,55) */ |
| 6 | _points_ = '{ {200, 80}, {210, 85} }'; /* Deux points */ |
| 7 | OUTPUT; |
| 8 | |
| 9 | /* Pièce 2: deux rayures, pas de bosse */ |
| 10 | id_image = 'piece_002.jpg'; operateur = 'OP_734'; |
| 11 | _lines_ = '{ {30, 100, 40, 250}, {32, 100, 42, 250} }'; /* Deux lignes parallèles */ |
| 12 | _points_ = ''; /* Pas de point */ |
| 13 | OUTPUT; |
| 14 | |
| 15 | /* Pièce 3: pas de rayure, une bosse */ |
| 16 | id_image = 'piece_003.jpg'; operateur = 'OP_921'; |
| 17 | _lines_ = ''; /* Pas de ligne */ |
| 18 | _points_ = '{ {120, 120} }'; /* Un point */ |
| 19 | OUTPUT; |
| 20 | RUN; |
| 1 | PROC CAS; |
| 2 | image.annotateImages / |
| 3 | TABLE={name='DEFAUTS_PIECES', where='id_image is not null'} |
| 4 | casOut={name='PIECES_ANNOTEES_VALIDATION', replace=true} |
| 5 | copyVars={'id_image', 'operateur'} |
| 6 | annotations={ |
| 7 | {annotation={annotationType='LINES', representation={representationType='SINGLE_COLUMN', columnName='_lines_'}, r=255, g=0, b=0, thickness=2}}, |
| 8 | {annotation={annotationType='POINTS', representation={representationType='SINGLE_COLUMN', columnName='_points_'}, r=0, g=0, b=255, radius=5}} |
| 9 | } |
| 10 | images={id='id_image', image='_image_'}; |
| 11 | RUN; |
| 12 | QUIT; |
| 1 | PROC CASUTIL; |
| 2 | contents casdata='PIECES_ANNOTEES_VALIDATION'; |
| 3 | list rows=5 casdata='PIECES_ANNOTEES_VALIDATION'; |
| 4 | QUIT; |
La table CAS 'PIECES_ANNOTEES_VALIDATION' est créée. Elle contient les colonnes '_image_' (image annotée), 'id_image', et 'operateur'. Les images correspondantes aux pièces 001, 002 et 003 contiennent désormais des superpositions visuelles : des lignes rouges pour les rayures et/ou des points bleus pour les bosses, conformément aux données de la table 'DEFAUTS_PIECES'.