Technologie MDG pour l’Imagerie Industrielle Imaging Technologie

De ImInfoWiki.

La Technologie MDG pour l’Imagerie Industrielle Imaging Technologie est un générateur de code Open Source permettant de mettre en œuvre facilement et efficacement l'approche MDA, pour réaliser des applications de traitement d'image à partir de modèles.

L'Object Management Group a défini deux normes pour les transformations de modèle à modèle M2M et pour les transformations de modèle à texte M2T. Il existe de très nombreux produits (plus d'une dizaine) se voulant conformes à cette norme en cours de définition.

La Technologie MDG pour l’Imagerie Industrielle est nativement intégré à Enterprise Architect et comprend toute une panoplie d'outils permettant de simplifier sa prise en main.

Sommaire


Pré-requis

  • Installer Enterprise Architect version 7.5 (Build: 845) ou supérieur
    • Version d'évaluation 30 jours : [1]
    • Version GRATUITE pour une lecture seule des modèles : [2]
  • Installer le plugin ImagingImInfoAddIn pour effectuer toutes les transformations: [3], ou bien importer le profile EA [4] qui permet uniquement d'utiliser la toolbox

Utilisation de la technologie

Les différents éléments de la toolbox

ImagingClasse

Lors de la transformation M2M, il deviendra une classe simple sans stéréotype et les activités dont il est responsable vont devenir ses méthodes. Cette classe remplira un rôle de « bibliothèque de fonctions » pour ces activités car elle contiendra également les fonctions de traitement d'images appelées dans ses activités. Ces fonctions de traitement d'images étant spécifiques au langage d'implémentation, leur code ne sera ajouté que lors de la transformation M2T.

ImagingProcess

Le stéréotype « ImagingProcess » représente une exécution d'un mécanisme, un déroulement d'étapes séquentielles. Elle est constituée d'actions qui font appel aux fonctions de traitement d'image. L'enchaînement de ces actions va constituer le corps du code de l'activité. L'activité est associée à un diagramme d'activité qui représente son contenu.

ImagingAction

Il existe neufs stéréotypes ;À ces stéréotypes sont associées différentes valeurs marquées.

Action Tag values Opérations
AreaOperators OpNameA Border, BoxFilter, Convolve, Crop, MedianFilter.
Color Quantization Operators OpNameC ErrorDiffusion, OrderedDither.
Edge Extraction Operators OpNameE GradientMagnitude
File Operators OpNameF AWTImage, BMP, Encode, FileLoad, FileStore, Format, FPX, GIF,IIP, IIPResolution, JPEG, PNG, PNM, Stream, TIFF, URL.
Frequency Operators OpNameFr Conjugate, DCT, DFT, IDCT, IDFT, ImageFunction, Magnitude, MagnitudeSquared, PeriodicShift, Phase, PolarToComplex.
Geometric Operators OpNameG Affine, Rotate, Scale, Shear, Translate, Transpose, Warp.
Miscellaneous Operators OpNameM Renderable
Point Operators OpNameF Absolute, AddCollection, Add, AddConst, AddConstToCollection, And, AndConst, BandCombine, BandSelect, Clamp, ColorConvert, Composite, Constant, Divide, DivideByConst, DivideComplex, DivideIntoConst, Exp, Invert, Log, Lookup, MatchCDF, Max, Min, Multiply, MultiplyComplex, MultiplyConst, Not, Or, OrCons, Overlay, Pattern, Piecewise, Rescale, Subtract, SubtractConst, SubtractFromConst, Threshold, Xor, XorConst
Statistical Operators OpNameS Extrema, Histogram, Mean.

ImagingBuffer

Il sert à fournir des paramètres en entrée d'une activité/action ou à l'inverse à récupérer des paramètres en sortie d'une activité/action. Un buffer peut être lu plusieurs fois mais il ne peut être chargé qu'une seule fois. Il peut contenir les trois types de données présentes dans le métamodèle.

Image

Le stéréotype « Image » hérite de la métaclasse « DataStore ». Une de ses valeurs marquées permet de définir s'il s'agit d'une image persistante.

Constant

Le stéréotype « Constant » représente une variable de type double. Il possède deux valeurs marquées « inConstant » et « outConstant ». La première permet de définir à quel paramètre d'entrée il correspond parmi une liste déroulante (par exemple « angle » pour la rotation »). De la même façon, le second définit le paramètre retourné auquel il correspond.

Exemple d'addition de deux images

Description Images
  1. « ActivityInitial » déclenche le début du traitement.
  2. La classe stéréotypée « ImagingClass » est reliée à des « Imaging Process » par le stéréotype « ClassResponsability ». Elle encapsule tous les traitements contenus dans ces « Imaging Process ».
  3. ) ImageLoading, qui va charger l’image, est un « ImagingProcess » qui est détaillé dans un autre diagramme disponible par double clic (Cf. 3.1.).
  4. « ImagingBuffer » récupère les copies des images (Image1 et Image2) chargées dans le 3.1 par le « DataFlow ».
  5. Treatment, chargé de faire l’addition des deux images, est un « ImagingProcess » qui est détaillé dans un autre diagramme disponible par double clic (Cf. 5.1.)
  6. Une copie de ImageAdd (résultant de la somme des deux images) crée dans 5.1.
  7. ) Imagingstoring, qui se charge d’enregistrer le résultat est un « ImagingProcess » qui est détaillé dans un autre diagramme disponible par double clic (Cf. 7.1.)
  8. Fin du traitement par « ActivityFinal ».

A noter que les liaisons pour l’enchaînement des processus sont toujours des « ActivityLink »


3.1

Contient les actions « FilelOperators » qui chargent les deux images à traiter. Tag value : OpnameFI -> Fileload

  • a) « Image » : Son tag value URL permet d’indiquer le chemin de l’image à traiter
  • b) Les images sont stockées dans Image1 et Image2.
  • c) Les liens utilisés pour enchainer les actions sont des stéréotypes « ActionsLink »

Une action doit se trouver obligatoirement dans un stéréotype « ImagingProcess »

fichier:3-1.png
5.1

Le stéréotype « PointOperators » est choisi pour faire l’addition des deux images. Tag value : OpnameP -> Add

fichier:5-1.png
7.1

Se charge de stocker l’image. Tag value : OpNameFI -> FileStore URL : …/Nomimage.jpg

fichier:7-1.png

Démonstration Vidéo

[5]

Liens Utiles

Outils personnels