processBioMedImages
Description
L'action processBioMedImages est le couteau suisse (ou le scalpel, devrais-je dire ?) du traitement d'images biomédicales sous SAS Viya. Elle permet d'appliquer une séquence d'opérations complexes (les fameuses étapes ou steps) sur des images médicales (comme des IRM ou des scanners) stockées dans une table CAS. Que vous ayez besoin de rogner (CROP), redimensionner (RESIZE), égaliser l'histogramme ou même lisser l'image, cette action fait le job avec une précision chirurgicale ! Source détaillée dans le guide de programmation de la vision par ordinateur .
Paramètres Clés
| Nom du paramètre | Description |
|---|---|
| images | La table CAS d'entrée contenant vos précieuses images biomédicales. Peut inclure des sous-paramètres de connexion (table). |
| casOut | La table CAS de sortie où atterriront vos images fraîchement traitées (et guéries !). |
| steps | La liste des opérations chirurgicales (étapes) à appliquer séquentiellement, comme RESIZE, SMOOTH, CROP, THRESHOLD, etc. |
| addColumns | Colonnes de métadonnées supplémentaires à extraire et ajouter à la sortie (ex: WIDTH, HEIGHT, DEPTH, ORIENTATION). |
| decode | Booléen. Si TRUE, décompresse/décode les images et les métadonnées de l'image directement dans la table de sortie. |
| copyVars | Liste de variables à conserver et copier depuis la table d'entrée vers la table de sortie, histoire de ne pas perdre le nom de votre patient. |
Préparation des données
Chargement d'une image biomédicale d'exemple
Avant d'opérer, il faut un patient ! Voici comment charger des images médicales en mémoire depuis un dossier contenant des fichiers de type DICOM par exemple.
| 1 | PROC CAS; LOADACTIONSET "bioMedImage"; bioMedImage.loadImages / path="/chemin/vers/dossier/dicom" casOut={name="imgs_in", replace=true}; RUN; QUIT; |
Exemples d'utilisation
Redimensionnement simple d'une image
Une petite cure d'amincissement pour nos images. On utilise l'étape RESIZE pour changer les dimensions (hauteur et largeur) afin de standardiser les données avant de lancer un modèle d'Intelligence Artificielle.
| 1 | PROC CAS; bioMedImage.processBioMedImages / images={TABLE={name="imgs_in"}} steps={{step={stepType="RESIZE", resample={resampleType="SIZE", width=256, height=256}}}} casOut={name="imgs_resized", replace=true}; RUN; QUIT; |
Résultat Attendu :
Séquence de traitements avancée : Lissage et Seuillage (Smooth & Threshold)
On passe aux choses sérieuses ! D'abord, on applique un lissage gaussien (SMOOTH) pour réduire le bruit de l'image (le fameux flou artistique), puis on binarise l'image avec un seuillage de type Otsu (THRESHOLD) pour isoler les structures anatomiques d'intérêt. Une vraie opération à cœur ouvert !
| 1 | PROC CAS; bioMedImage.processBioMedImages / images={TABLE={name="imgs_in"}} decode=true addColumns={"WIDTH", "HEIGHT"} steps={{step={stepType="SMOOTH", smooth={smoothType="GAUSSIAN", kernelWidth=5, variance=1.5}}}, {step={stepType="THRESHOLD", threshold={thresholdType="OTSU", bins=128, regions=2}}}} casOut={name="imgs_processed", replace=true}; RUN; QUIT; |