APHELION 3.2 - Manuel d’installation & Didacticiel
Aphelion
Guide d’Installation & Didacticiel
Version 3.2
Edition révisée le 23 septembre 2003
ADCIS S.A.
10, Avenue de Garbsen
14200 Hérouville Saint Clair, France
Phone: +33 (0)2-31-06-23-00
URL: www.adcis.net
Amerinex Applied Imaging, Inc.
400 Amity Street
Amherst, MA 01002 USA
Phone: 413-253-1288
URL: www.aai.com
Date de publication :23 septembre 2003 i
APHELION 3.2 - Manuel d’installation & Didacticiel
Notification de Droits de reproduction
© 1996-2003 ADCIS S.A. et Amerinex Applied Imaging, Inc.
Tous droits réservés. Toute utilisation du logiciel et de cette documentation hors du cadre contractuel défini par la licence d’utilisation est illicite et constitue une contrefaçon sanctionnée par l’article 425 et suivants du Code Pénal. Toute reproduction intégrale ou partielle de ce document ou du logiciel faite sans autorisation expresse est illégale.
ADCIS S.A.
10, Avenue de Garbsen
Amerinex Applied Imaging, Inc.
400 Amity Street
14200 Hérouville Saint Clair, France
+33 (0)2 31 06 23 00
Amherst, MA 01002 USA
+ 1 (413) 253-1288
Confidentialité : l’utilisation, la reproduction ou la divulgation par le Gouvernement est sujet aux restrictions notifiées dans le sous-paragraphe (c)(1)(ii) de la clause des Rights in Technical Data
and Computer Software en DFARS 252.227-7013 ou sous-division (c)(1) et (2) de la clause des
Commercial Computer Software-Restricted Rights en 48C.F.R.52.227-19.
Marques déposées
Aphelion est une marque déposée par ADCIS S.A. et Amerinex Applied Imaging, Inc.
KBVision et VisionTutor sont des marques déposées par Amerinex Applied Imaging, Inc.
Tous les autres produits mentionnés dans ce document sont des marques déposées par leurs propriétaires respectifs.
GARANTIE LIMITEE
CE DOCUMENT ET LE LOGICIEL QU’IL DECRIT SONT GARANTIS SELON LES TERMES
DE LA LICENCE SOUS LAQUELLE ILS SONT DISTRIBUES.
LA GARANTIE LIMITEE ET LES PREJUDICES NOTIFIES ICI SONT EXCLUSIFS.
ADCIS S.A. ET AMERINEX APPLIED IMAGING, INC. NE POURRONT EN AUCUN CAS
ETRE TENUES RESPONSABLES DE DOMMAGES DE QUELQUE NATURE QUE CE SOIT
RESULTANT DE L’UTILISATION OU DE L’IMPOSSIBILITE D’UTILISER LE LOGICIEL
OU SA DOCUMENTATION. ii
APHELION 3.2 - Manuel d’installation & Didacticiel
Table des matières
1.
INTRODUCTION................................................................................................. 1
2.
QUELQUES NOTIONS DE BASE ..................................................................... 3
2.1
U
TILISATION DE
W
INDOWS
............................................................................. 3
2.2
S
UPPORT TECHNIQUE
....................................................................................... 3
2.3
I
NSTALLATION D
’A
PHELION
............................................................................ 5
2.3.1
Préparation de l’installation d’Aphelion ................................................... 6
2.3.2
Installation de la clé de protection USB .................................................... 7
2.3.3
Installation d’Aphelion depuis le CD-ROM............................................... 9
2.4
D
EMARRER
A
PHELION
.................................................................................. 11
2.5
S
ORTIR D
’A
PHELION
..................................................................................... 12
2.6
T
ERMINOLOGIE
............................................................................................. 12
2.7
I
NTERFACE
G
RAPHIQUE
U
TILISATEUR
........................................................... 14
2.8
U
TILISATION DE L
’
AIDE
................................................................................. 16
3.
DIDACTICIEL.................................................................................................... 18
3.1
N
OTIONS DE BASE
......................................................................................... 18
3.2
D
EMONSTRATIONS MULTIMEDIA
................................................................... 19
4.
CHARGER ET SAUVEGARDER UNE IMAGE............................................ 20
4.1
O
UVRIR ET SAUVER UNE IMAGE
..................................................................... 20
4.2
A
UTRES FORMATS D
’
IMAGE
.......................................................................... 21
4.3
A
CQUERIR UNE
I
MAGE
.................................................................................. 22
5.
VISUALISATION D’IMAGE............................................................................ 25
5.1
V
ISUALISATION D
’
IMAGE
.............................................................................. 25
5.2
H
ISTOGRAMME
.............................................................................................. 25
5.3
P
ROFIL
.......................................................................................................... 26
6.
EXECUTER UN OPERATEUR........................................................................ 27
6.1
O
UVRIR LA BOITE DE DIALOGUE OPERATEUR
................................................ 27
6.2
S
ELECTIONNER UN
O
PERATEUR
.................................................................... 27
6.3
P
ARAMETRES DES OPERATEURS
..................................................................... 27
7.
TRAITEMENT D’IMAGE ................................................................................ 29
7.1
F
ILTRAGE POUR ELIMINER LE BRUIT EN INTENSITE
........................................ 29 iii
APHELION 3.2 - Manuel d’installation & Didacticiel
7.2
F
ILTRAGE POUR ELIMINER LE BRUIT SPATIAL
................................................. 29
7.3
A
UTRES OPERATEURS DE TRAITEMENT D
’
IMAGE
........................................... 30
7.4
C
OMPOSANTS
A
CTIVE
X
D
’A
PHELION
........................................................... 30
8.
EXTRAIRE ET ANALYSER DES OBJETS.................................................... 32
8.1
M
ESURES GLOBALES
..................................................................................... 32
8.2
S
EGMENTATION
............................................................................................. 32
8.3
M
ESURES D
’O
BJET
(
MESURES INDIVIDUELLES
) ............................................. 33
8.4
G
RILLES DE MESURES
.................................................................................... 35
8.5
A
UTRES OPERATEURS DE TRAITEMENT D
’
OBJET
............................................ 36
8.6
C
OMPOSANTS
A
CTIVE
X
D
’A
PHELION
........................................................... 36
9.
RAPPORTS D’ANALYSE ................................................................................. 37
9.1
I
MPRESSION
................................................................................................... 37
9.2
E
XPORTER LES MESURES D
’
OBJET
.................................................................. 37
10.
EDITER UNE MACRO ................................................................................. 38
10.1
T
RADUCTION D
’
UNE MACRO
A
PHELION
M
ACROS EN CODE
V
ISUAL
B
ASIC
.... 39
11.
MACROS D’APHELION .............................................................................. 41
11.1
M
ACROS D
’
APPLICATION
............................................................................... 41
11.2
M
ACROS D
’
EXEMPLES
B
ASIC
S
CRIPT
............................................................. 42
11.3
D
ESCRIPTION DETAILLEE D
’
UNE
M
ACRO
: C
ERAMIC
.
APM
............................. 44
12.
LISTE DES OPERATEURS D’APHELION ............................................... 58
12.1
A
RITHMETIQUE
/L
OGIQUE
.............................................................................. 58
12.1.1
Arithmétique......................................................................................... 58
12.1.2
Logique bit-à-bit .................................................................................. 59
12.1.3
Logique ................................................................................................ 60
12.1.4
Constantes............................................................................................ 60
12.2
F
ILTRAGE
...................................................................................................... 61
12.2.1
Convolution.......................................................................................... 61
12.2.2
Filtrage passe-bas................................................................................ 61
12.2.3
Filtrage passe-haut .............................................................................. 61
12.2.4
Filtrage d’amélioration d’image ......................................................... 62
12.3
D
ETECTION DE CONTOUR
............................................................................... 63
12.3.1
Opérateurs Laplacien .......................................................................... 63
12.3.2
Opérateurs morphologiques ................................................................ 63
12.3.3
Opérateurs linéaires ............................................................................ 63
12.3.4
Opérateurs non-linéaires ..................................................................... 64
12.3.5
Utilitaire............................................................................................... 64
12.4
M
ORPHOLOGIE MATHEMATIQUE
.................................................................... 64 iv
APHELION 3.2 - Manuel d’installation & Didacticiel
12.4.1
Erosion/Dilatation ............................................................................... 64
12.4.2
Ouverture/Fermeture........................................................................... 64
12.4.3
Distance ............................................................................................... 64
12.4.4
Points caractéristiques ........................................................................ 65
12.4.5
Géodésie .............................................................................................. 65
12.4.6
Ligne de partage des eaux ................................................................... 65
12.4.7
Opérateurs morphologiques évolués ................................................... 66
12.4.8
Amincissement/Epaississement............................................................ 66
12.4.9
Squelettisation ..................................................................................... 67
12.4.10
Filtrage morphologique....................................................................... 67
12.4.11
Contraste ............................................................................................. 67
12.5
T
RANSFORMATIONS FREQUENTIELLES
........................................................... 68
12.5.1
Fourier................................................................................................. 68
12.5.2
Filtres basse fréquence ........................................................................ 68
12.5.3
Filtres haute fréquence ........................................................................ 68
12.6
T
RANSFORMATIONS
...................................................................................... 69
12.6.1
Géométriques....................................................................................... 69
12.6.2
Utilitaires............................................................................................. 69
12.6.3
Couleur ................................................................................................ 69
12.7
F
ONCTIONS UTILITAIRES
................................................................................ 70
12.7.1
Génération d’image............................................................................. 70
12.7.2
Utilitaires............................................................................................. 70
12.7.3
Transformation d’intensité/Point-à-point............................................ 72
12.7.4
Entrée/Sortie........................................................................................ 72
12.8
S
EGMENTATION
............................................................................................. 73
12.8.1
Seuillage .............................................................................................. 73
12.8.2
Morphologie ........................................................................................ 74
12.8.3
Rectangles............................................................................................ 74
12.8.4
Polygones............................................................................................. 74
12.8.5
Segments de droite (Lines)................................................................... 74
12.8.6
Régions ................................................................................................ 75
12.8.7
Snakes .................................................................................................. 76
12.8.8
Chaînes ................................................................................................ 76
12.8.9
Utilitaires............................................................................................. 76
12.9
A
NALYSE
...................................................................................................... 76
12.9.1
Mesures de champ (Analyse globale) .................................................. 76
12.9.2
Transformation pour l’analyse (Image analysis) ................................ 77
12.9.3
Objets................................................................................................... 78
12.9.4
Mesures interactives ............................................................................ 79
12.9.5
Corrélation/ Mise en correspondance ................................................. 80
12.10
T
RAITEMENT D
’
OBJETS
............................................................................. 80
12.10.1
Géométrie ............................................................................................ 80
v
APHELION 3.2 - Manuel d’installation & Didacticiel
12.10.2
Régions................................................................................................. 80
12.10.3
Segments de droite (Lines)................................................................... 81
12.10.4
Chaînes ................................................................................................ 81
12.10.5
Regroupement ...................................................................................... 81
12.10.6
Morphology (uniquement disponible dans le module 3D Image
Processing)............................................................................................................ 82
12.11
U
TILITAIRES D
’
OBJETS
.............................................................................. 82
12.11.1
Entrée/Sortie d’objets .......................................................................... 82
12.11.2
Gestion des objets (Cut/Copy/Paste) ................................................... 83
12.11.3
Affichage (Graphic) ............................................................................. 83
12.11.4
Conversion ........................................................................................... 84
12.12
A
CQUISITION D
’
IMAGE
(
MODULE OPTIONNEL
) .......................................... 84
12.12.1
Acquisition/Capture ............................................................................. 84
12.13
R
ECOGNITION
T
OOLKIT
(
MODULE OPTIONNEL
) ......................................... 84
12.13.1
Utilitaire............................................................................................... 84
12.13.2
Extraction............................................................................................. 85
12.13.3
Evaluation............................................................................................ 85
12.13.4
Apprentissage....................................................................................... 85
12.13.5
Classification ....................................................................................... 86
13.
LISTE DES MESURES.................................................................................. 87
13.1
M
ESURES GLOBALES
..................................................................................... 87
13.2
M
ESURES INDIVIDUELLES
.............................................................................. 87
13.2.1
Mesures sur les objets de type Chain................................................... 87
13.2.2
Mesures sur les objets de type Line ..................................................... 88
13.2.3
Mesures sur les objets de type Region ................................................. 89
13.2.4
Object measurements ........................................................................... 92
14.
EXEMPLES DE PROGRAMMATION ....................................................... 94
14.1
E
XEMPLES DE DEVELOPPEMENT
.................................................................... 95
14.1.1
Ajout de nouveaux opérateurs dans l’interface d’APHELION............ 95
14.1.2
Développement d’applications indépendantes en Visual C++............ 95
14.2
E
XEMPLES
V
ISUAL
B
ASIC
.............................................................................. 95
14.2.1
Gestion des images dans APHELION.................................................. 95
14.2.2
Acquisition d’images avec une caméra et une carte de numérisation . 96
14.2.3
Affichage d’images avec les composant ApxImageDisplay ................. 96
14.3
U
TILISATION DES
A
CTIVE
X
D
’APHELION
DEPUIS
V
ISUAL
C++.................. 97
15.
MODULES OPTIONNELS D’APHELION................................................. 98
15.1
T
RAITEMENT ET VISUALIZATION D
’
IMAGE
3D ............................................... 98
15.2
I
NTERFACES POUR MATERIEL DE CAPTURE D
’
IMAGE
...................................... 98
15.3
I
MAGE
M
ONTAGE
.......................................................................................... 98 vi
APHELION 3.2 - Manuel d’installation & Didacticiel
15.4
K
RIGING
T
OOLKIT
......................................................................................... 99
15.5
R
ECOGNITION
T
OOLKIT
................................................................................. 99
15.6
V
ISION
T
UTOR
............................................................................................... 99
15.7
I
NTERFACE DE CONTROLE DE PLATINE MOTORISEE
........................................ 99 vii
APHELION 3.2 - Manuel d’installation & Didacticiel
Manuel d’Installation & Didacticiel
1. INTRODUCTION
Ce didacticiel vous apporte les informations de base nécessaires pour utiliser
Aphelion, de l’installation du logiciel jusqu’au traitement d’images et à l’impression de vos résultats.
A travers ce manuel, vous trouverez les références aux informations complémentaires contenues dans l’aide en ligne (Guide de l’Utilisateur et Aphelion Guide de
Référence). La référence est généralement le ou les mot(s) à taper dans l’onglet Index de l’Aide en ligne pour accéder à l’information correspondante.
Utilisation de l’Index dans l’Aide en ligne
1. Depuis la barre de menu, choisissez Help
→
Aphelion Help Topics. L’Aide en ligne s’ouvre et l’onglet Index est sélectionné.
2. Dans le premier champ de Index, tapez le nom du sujet que vous désirez consulter. Pour les opérateurs d’Aphelion, tapez le nom complet. Vous pouvez utiliser indifféremment les majuscules ou les minuscules. La liste des sujets est automatiquement rafraîchie lorsque vous tapez le nom du sujet.
3. Après avoir tapé ou surligné le nom du sujet, cliquez sur Display.
Astuce : Il est possible d’imprimer des parties sélectionnées de l’Aide en ligne. Pour cela, choisir le “livre” que vous souhaitez imprimer dans la liste donnant le contenu de l’Aide, puis cliquer le bouton Imprimer….
Documentation en ligne d’Aphelion
Toute l’aide d’Aphelion est en ligne.
Remarque : Vous pouvez accéder à l’ensemble de la documentation même si vous n’avez pas installé le logiciel. Celle-ci est disponible dans le répertoire Help du CD-
ROM d’Aphelion.
1
APHELION 3.2 - Manuel d’installation & Didacticiel
Liste des fichiers d’aide d’Aphelion disponibles sous forme Winhelp :
Aphelion
AphFuzzyLogic
AphMacro manuel d’utilisation d’Aphelion module d’Aphelion Fuzzy Logic langage macro BasicScript d’Aphelion
AphOpLib
AphProgGuide
RSI_Rtoolkit d’Aphelion guide de référence des opérateurs d’Aphelion guide de programmation d’Aphelion en Visual C++ module d’Aphelion Recognition Toolkit (option)
2
APHELION 3.2 - Manuel d’installation & Didacticiel
2. QUELQUES NOTIONS DE BASE
2.1 Utilisation de Windows
Afin d’utiliser Aphelion, vous devez vous familiariser avec Windows 95/98/Me ou
Windows NT 4.0, 2000 et XP, et particulièrement avec les actions de la souris telles que le clic, le double clic et l’édition par glisser-déplacer (Drag-and-Drop).
Remarque : lorsque, dans la suite du document, nous évoquerons l’environnement
Windows sans autre spécification, cela signifiera que le propos s’applique à
Windows 95/98/Me et Windows NT, 2000 et XP.
Si vous n’avez encore jamais utilisé Windows 95/98/Me ou NT/2000/XP, nous vous recommandons d’assister à une formation ou de vous reporter au manuel Introduction
à Microsoft Windows 95/98/Me ou Windows NT 4.0 Workstation/2000/XP pas à pas pour plus d’informations.
Astuce : Une des caractéristiques de Windows la plus fréquemment utilisée dans
Aphelion est le menu pop-up ou menu contextuel. Dans la plupart des fenêtres ou zones de l’interface d’Aphelion, en cliquant sur le bouton droit de la souris, vous pouvez afficher un menu déroulant incluant des commandes relatives à la fenêtre ou à la zone. Par exemple, cliquez sur le bouton droit de la souris dans une fenêtre Image pour visualiser le menu déroulant de commandes applicables à cette image.
2.2 Support technique
Rapports de problèmes, commentaires et demandes d’amélioration peuvent être soumis via les pages Web d’Aphelion et envoyés à : support @adcis.net
( si le CD d’Aphelion ne vous a pas été fourni par
Amerinex Applied Imaging
) support@aai.com
( si le CD d’Aphelion vous a été fourni par Amerinex
Applied Imaging
)
3
APHELION 3.2 - Manuel d’installation & Didacticiel
Le support technique est accessible uniquement par courrier électronique ou par télécopie. Vous pouvez utiliser le programme AphBugReport.exe se trouvant dans le répertoire $Aphelion\BugReport pour établir vos messages électroniques destinés à l’équipe du support techinque d’Aphelion. Vous pouvez l’obtenir à partir la barre de menu, choisissez Help
→
BugReport
Vous devrez entrer les informations suivantes pour accéder aux pages Web du User
Corner d’Aphelion :
Nom Utilisateur (username) : entrez le nom qui vous à été fourni la première fois que vous avez contacté votre distributeur.
Mot de passe (password) : entrez le mot de passe que vous avez choisi lorsque vous vous êtes enregistré.
Le support technique est disponible aux adresses suivantes :
En France :
ADCIS S.A.
10, Avenue de Garbsen
14200 Hérouville Saint Clair
France
Fax : +33 (0)2-31-06-23-09
Aux U.S.A. :
Amerinex Applied Imaging, Inc.
400 Amity Street
Amherst, MA 01002
Fax : +1 413-253-1289
Pour tous les autres pays, veuillez contacter votre revendeur. La liste des revendeurs officiels est fournie sur les pages web d’ADCIS S.A. ou d’Amerinex Applied
Imaging, Inc.
4
APHELION 3.2 - Manuel d’installation & Didacticiel
2.3 Installation d’Aphelion
Configuration minimale
La configuration minimale suivante est nécessaire pour utiliser Aphelion :
• Microsoft Windows
• Micro-ordinateur de type PC
• Moniteur SuperVGA (résolution minimale 800x600 avec au minimum
65536 couleurs)
• Processeur Pentium III (ou plus récent)
• 64 Moctets de mémoire vive pour W95/98/Me et 128 Moctets pour
Windows NT/2000/XP. Pour Windows XP, il est préférable d’avoir 256 Mo.
• Un disque dur avec au minimum 250 Mo d’espace libre
• Carte réseau type Ethernet compatible NetBios
• Un lecteur de CD-ROM compatible Windows
Protection du Logiciel Aphelion
Plusieurs systèmes de protection du logiciel sont disponibles, dépendant de la version que vous installez. La protection d’Aphelion pour la version d’évaluation ne nécessite pas l’installation d’une carte réseau. Cependant, si vous en possédez une, référez vous au chapitre 2.3.1, préparation de l’installation d’Aphelion. La protection en version permanente et officielle nécessite que votre PC soit équipé d’une carte réseau et qu’elle soit configurée correctement. Référez vous au chapitre
2.3.1 Préparation de l’installation d’Aphelion. A partir de la version 3.2f, les versions permanentes du logiciel peuvent également être protégées par une clé USB. Dans ce cas, veuillez vous référer au paragraphe 2.3.2 Installation de la clé de protection USB pour en savoir plus sur la procédure d’installation.
Remarque: les version d’évaluation et permanente sont différentes ; elle sont cependant livrées sur le même CD-ROM. Le programme d’installation vous permettra de choisir la version que vous souhaitez installer. Chaque code est spécifique à la version que vous installez.
Les versions d’évaluation du logiciel utilisent un code d’installation commençant par
EVAL. L’installation avec ce code doit absolument intervenir dans les 30 jours
5
APHELION 3.2 - Manuel d’installation & Didacticiel
suivant la fourniture du code. Si vous n’avez pas pu installer Aphelion durant cette période de 30 jours, appelez votre revendeur pour lui demander un nouveau code.
Afin d’installer la version d’évaluation, suivez les indications données au paragraphe2.3.3 Installation d’Aphelion depuis le CD-ROM. Le code d’évaluation se présente typiquement ainsi :
EVAL-F112-D49E-1397-5C2B-74AB-435E
Le code d’évaluation permet d’utiliser Aphelion pendant une période de 15 jours à partir du moment où le logiciel est lancé pour la première fois, ou 100 utilisations
(1000 pour les composants ActiveX). Pour obtenir une extension de la période d’évaluation, ne désinstallez pas Aphelion et envoyez un message électronique à votre revendeur en indiquant, si possible, le PreCode généré lors de l’installation ainsi que le code d’évaluation qui vous a été fourni.
Les versions permanentes d’Aphelion sont protégées par un code commençant par
UNLK ou DNGL (uniquement avec la clé de protection USB). Celui-ci se présente typiquement ainsi :
UNLK-03F1-5D5E-59D2-B53F-696A-5CD7
Les codes d’évaluation et permanents sont fournis par courrier électronique après que vous ayez fourni le code qui s’affiche dans la fenêtre d’enregistrement (Precode) lors de l’installation du logiciel. Chaque code d’évaluation ou permanent est unique pour un micro-ordinateur donné. Suivez ensuite les instructions données au paragraphe
2.3.3 Installation d’Aphelion depuis le CD-ROMpour installer Aphelion sur votre micro-ordinateur, après avoir lu le paragraphe suivant afin de vous assurer que vous pouvez effectuer cette installation.
2.3.1 Préparation de l’installation d’Aphelion
Remarque : Si votre PC n’est pas connecté à un réseau, vous devez quand même spécifier une adresse IP. Dans ce cas, vous pouvez entrer une adresse IP de réseau local du style 192.192.192.* ou 192.168.*.* et un masque de sous-réseau du style
255.255.255.0 ou 255.255.0.0
Sous Windows 95/98/Me, ouvrez le panneau de configuration (menu
Démarrer
→
Paramètres), cliquez sur le bouton Réseau, puis sélectionnez l’onglet
Configuration. Si aucun composant TCP/IP n’est installé, cliquez sur Ajouter…, sélectionnez Protocole, cliquez sur Ajouter…, sélectionnez Microsoft comme
6
APHELION 3.2 - Manuel d’installation & Didacticiel
constructeur et TCP/IP comme protocole et cliquez sur OK. Le protocole TCP/IP est maintenant ajouté.
Pour spécifier votre adresse IP, double-cliquez sur TCP/IP, sélectionnez l’onglet
Adresse IP. Dans la fenêtre Propriétés TCP/IP
→Adresse IP, sélectionnez l’option
Spécifier une adresse IP et entrez une adresse IP conforme à votre réseau local
(contactez votre administrateur système pour obtenir celle-ci).
Sous Windows NT 4.0, ouvrez le panneau de configuration (menu
Démarrer
→Paramètres), cliquez sur le bouton Réseau, puis sélectionnez l’onglet
Protocole. Si aucun composant TCP/IP n’est installé, cliquez sur Ajouter…, sélectionnez TCP/IP et cliquez sur OK. Le protocole TCP/IP est maintenant ajouté.
Pour spécifier une adresse IP, suivez la même procédure que celle définie ci-dessus.
Sous Windows 2000 ou XP, ouvrez le panneau de configuration (menu
Démarrer
→Paramètres) puis ouvrez Connexions réseau et accès à distance.
Ensuite, double-cliquez sur la connexion Connexion au réseau local et cliquez sur propriétés. Sur le panneau suivant, sélectionnez le protocole TCP/IP et cliquez sur le bouton Propriétés. Sélectionnez l’option Utiliser l’adresse IP suivante et spécifiez une adresse IP conforme à votre réseau si aucune n’est déjà définie (contactez votre administrateur système pour obtenir celle-ci).
2.3.2 Installation de la clé de protection USB
Le dongle est une clé USB fournie en option (contacter votre revendeur pour connaître les conditions d’optention de cette clé) pour permettre aux utilisateurs de transférer la licence d’un ordinateur à un autre simplement en déplaçant la clé.
Ce paragraphe est réservé aux utilisateurs munis d’un dongle.
1. Ouvrir une session Windows avec les droits Administrateur.
2. Ne pas connecter le dongle au port USB.
3. Exécuter le programme \Dongle\AphUSBSetup.exe sur le CD-ROM d’Aphelion. Cette action installera le pilote du dongle et se terminera par l’affichage de la fenêtre ci-contre.
4. Connecter le dongle sur un des ports USB de votre ordinateur. Après quelques instants, l’assistant Ajout de nouveau matériel détecté démarre.
7
APHELION 3.2 - Manuel d’installation & Didacticiel
5. Choisir l’option «Installer le
logiciel automatiquement
(recommandé)», puis cliquer sur le bouton Suivant…
(figure ci-contre)
La détection du pilote de matériel peut prendre quelques minutes.
Remarque : sous Windows
XP, l’écran de mise en garde
«Le logiciel que vous êtes en
train d’installer…n’a pas été
validé…» s’affiche. Cliquer sur le bouton Continuer… pour terminer l’installation.
6. L’écran de Fin de l’Assistant Ajout de nouveau matériel détecté s’affiche.
Cliquer sur Terminer pour fermer cet écran.
Résolution de problème :
Vérifier que le dongle est bien connecté au port USB.
Si l’assistant Ajout de nouveau matériel détecté démarre, reprendre les instructions de ce paragraphe à l’étape 5, sinon suivre les instructions ci-dessous.
1. Cliquer sur l’icône Poste de Travail de votre bureau avec le bouton droit de la souris et sélectionner Propriétés dans le menu qui apparaît. cliquer sur Gestionnaire de périphérique.
3. L’écran présente les périphériques présents sur votre ordinateur. Doublecliquer sur Contrôleurs de bus USB pour faire apparaître tous les périphériques USB de votre ordinateur.
4. Le périphérique CBUSB Ver. 1.3 doit s’afficher. Cliquer sur celui-ci avec le bouton droit de la souris et sélectionner Désinstaller dans le menu qui apparaît.
5. Déconnecter le dongle du port USB.
6. Connecter à nouveau le dongle au port USB.
L’assistant Ajout de nouveau matériel détecté doit démarrer. Reprendre alors les instructions du début de ce paragraphe à partir de l’étape 5.
8
APHELION 3.2 - Manuel d’installation & Didacticiel
2.3.3 Installation d’Aphelion depuis le CD-ROM
Remarque importante : Sous Windows NT/2000/XP, assurez vous que vous avez les droits «Administrateur» sur la machine avant de démarrer l’installation. En cas de doutes, contactez votre administrateur système.
1. Assurez-vous que le CD-ROM d’Aphelion se trouve bien dans le lecteur de
CD-ROM.
Remarque : Votre micro-ordinateur doit avoir une partition ayant un minimum de
250 Moctets d’espace libre, afin de permettre l’extraction des fichiers d’installation d’Aphelion ; dans le cas contraire, vous ne pourrez pas installer Aphelion. Si la partition C: de votre micro-ordinateur a moins de 250 Moctets de d’espace libre et qu’une autre partition dispose de plus de 250 Moctets d’espace libre, alors vous devrez modifier temporairement le paramétrage de votre système afin que l’extraction des fichiers soit effectuée sur cette dernière partition. Dans ce cas, veuillez procéder ainsi : créez le répertoire <partition choisie>:\tmp, démarrez le programme
Commandes MS-DOS, tapez SET TMP=<partition choisie>:\tmp et cliquez sur
Retour Chariot, tapez ensuite <Lecteur CD-ROM>:\setup.exe et cliquez sur Retour
Chariot pour exécuter le programme d’installation d’Aphelion.
2. Exécutez le programme SETUP.EXE, situé dans le répertoire de base du
CD-ROM.
3. Suivez les instructions telles qu’elles apparaissent à l’écran lors de l’installation, après avoir sélectionné la langue et la version que vous souhaitez installer.
Remarque : la version Aphelion Developer contient les composants ActiveX d’Aphelion. La version Aphelion ActiveX ne contient pas l’interface graphique utilisateur d’Aphelion, l’interpréteur de macros, le serveur graphique et l’afficheur de grilles de mesures.
Liste des versions fournies sur le CD-ROM
• Aphelion Evaluation : version d’évaluation d’Aphelion Developer (APH-
DEV) ; cette version vous permet d’évaluer le logiciel, en ayant accès à toutes les fonctions, mais sans pouvoir enregistrer les images et les mesures.
• Aphelion Standard : version Aphelion Developer (APH-DEV) dont la
9
APHELION 3.2 - Manuel d’installation & Didacticiel
licence est acquise. Cette version est la version standard d’Aphelion. C’est la seule version permettant l’utilisation des modules optionnels.
• Aphelion ActiveX components Evaluation : version d’évaluation des composants ActiveX d’Aphelion (APX). Cette version vous permet d’évaluer les composants ActiveX d’Aphelion depuis les environnements de développement tels que Visual Basic, Visual C++, Borland Delphi, etc. Elle comprend l’ensemble des bibliothèques de fonctions de traitement et d’analyse d’images, le composant d’affichage d’images et tous les composants de base pour la gestion des images et des ensembles d’objets.
L’enregistrement des images et des mesures est inactif dans cette version.
• Aphelion ActiveX components Standard : version des composants ActiveX d’Aphelion (APX) dont la licence est acquise. Cette version est la version standard des composants ActiveX d’Aphelion
Veuillez noter ce qui suit :
Le PreCode est nécessaire pour obtenir le code d’évaluation ou le code permanent.
Celui-ci est affiché dans l’écran User Registration. Envoyez le PreCode par courrier
électronique à votre revendeur afin d’obtenir votre code d’enregistrement.
Au niveau de l’écran Select Components, effectuez les opérations suivantes :
Tous les composants que vous avez commandés sont sélectionnés par défaut.
Désélectionnez tous les composants non supportés par votre système ou que vous ne souhaitez pas installer. Utilisez l’ascenseur afin de vous assurer que vous avez passé en revue l’ensemble des composants.
Remarque : lisez les informations contenues dans le fichier Readme.txt pour en savoir plus sur le téléchargement et l'installation des pilotes DirectDraw.
Si vous avez acheté un module optionnel Pilote de carte d'acquisition avec
Aphelion, sélectionnez Hardware Drivers. Si vous ne voulez pas installer de pilote spécifique ou le pilote de carte virtuelle Sample, cliquez sur Frame
Grabber Drivers pour désélectionner tous les pilotes que vous ne souhaitez pas installer.
Typiquement, vous devrez sélectionner les composants suivants lors de l’installation :
• ActiveX avec toutes les bibliothèques de fonctions de traitement d’images si vous souhaitez évaluer/développer des applications écrites en Visual Basic ou dans un autre langage de développement.
10
APHELION 3.2 - Manuel d’installation & Didacticiel
• Aphelion comprenant l’aide en ligne, les macros d’exemple, les démonstrations multimédia (Screen Cam demos) si vous n’êtes pas familiarisé avec l’interface graphique d’Aphelion et les images de test.
Sélectionnez également le module Developer si vous souhaitez ajouter de nouveaux opérateurs à l’interface d’Aphelion ou développer des applications
écrites en Visual C++.
• Frame Grabber Drivers si votre micro-ordinateur est connecté à un système d’acquisition (carte d’acquisition, caméra, scanner). Le pilote Sample est proposé par défaut afin de vous permettre d’évaluer les possibilités d’acquisition d’images d’Aphelion.
• Extension modules si vous avez commandé un des modules parmi
Recognition Toolkit, Stage Control, VisionTutor ou 3D Image Processing and 3D Image Display.
Poursuivez l’installation à travers les écrans suivants. A l’issue de l’installation, prenez connaissance des informations importantes concernant la version d’Aphelion installée.
Remarque : les composants ActiveX d’Aphelion doivent être enregistrés dans votre système. Cette opération peut prendre quelques minutes. Si vous souhaitez les enregistrer ultérieurement, utilisez les programme RegisterApx se trouvant dans le répertoire $Aphelion\Program.
2.4 Démarrer Aphelion
Après avoir installé Aphelion, démarrez l’application en cliquant sur l’icône Aphelion
3.2 dans le menu Démarrer
→
Programmes de Windows.
L’écran d’introduction d’Aphelion apparaît et présente les informations relatives aux droits de reproduction et au numéro de la version actuelle d’Aphelion.
11
APHELION 3.2 - Manuel d’installation & Didacticiel
Après quelques secondes, l’écran d’introduction disparaît et l’interface graphique utilisateur s’ouvre, recouvrant la majeure partie de l’écran. La fenêtre Astuce du Jour s’ouvre automatiquement. Si vous ne désirez plus voir cette fenêtre à chaque fois que vous démarrez Aphelion, désélectionnez la boîte à cocher Show Tips at Startup qui se trouve dans la fenêtre Astuce du jour.
Remarque : dans la suite du document, les noms des menus sont indiqués en langue française. Afin de suivre les indications données, il est donc préférable de changer la langue de l’interface graphique utilisateur qui, par défaut, est en langue anglaise. Pour cela, sélectionnez View
→
Language
→
French.
2.5 Sortir d’Aphelion
Lorsque vous sortez d’Aphelion, sélectionnez Fichier
→
Quitter depuis la barre de menu. Une boîte de dialogue apparaît, demandant à l’utilisateur s’il désire sauvegarder le projet courant. Répondre Oui afin de sauver le projet, Non pour sortir sans sauver les changements relatifs au projet, ou Annuler qui retourne dans l’environnement d’Aphelion.
2.6 Terminologie
Pour utiliser Aphelion, il est préférable de se familiariser avec les termes suivants :
Composants ActiveX d’Aphelion (Apx) – Boîtes à outil logicielles pour le traitement et l'interprétation d'images disponibles sous forme de composants
12
APHELION 3.2 - Manuel d’installation & Didacticiel
ActiveX utilisables depuis des environnements de programmation tels que Visual
Basic, etc. En plus des bibliothèques de base, des composants d’affichage d’images, d’acquisition d’images et de support MMX sont disponibles.
BasicScript - Langage interprété compatible avec Visual Basic. Dans Aphelion,
BasicScript est utilisé pour créer des macros.
Contexte d’affichage - Fonction convertissant les valeurs de pixel à travers une table de conversion (LUT). Par exemple, le contexte de visualisation vous permet de visualiser une image entière non signée 16 bits dont la dynamique varie entre 0 et
65536 dans un environnement de visualisation 8 bits. Les fonctions de conversion sont de type linéaire, valeur absolue, logarithme, et périodique.
Mesures - Tout attribut calculé sur une image ou sur un objet d’une image.
Typiquement, une colonne dans un ensemble d’objets.
Passage d’informations - Mécanisme qui envoie des messages entre une image dans laquelle est affiché un ensemble d’objets et une grille ou une courbe graphique ; ceci permet de visualiser une même information sous différentes formes. Le passage de message est également possible entre deux images.
Objet - Région, point, rectangle, ligne, point de contour ou chaîne, et ses mesures associées. Un objet est représenté par une ligne dans une grille (tableau de mesures).
Ensemble d’objets - C’est une structure de données comprenant à la fois la description spatiale et les attributs (mesures) d’un objet. Typiquement, les objets sont obtenus par l’application d’une méthode d’extraction de caractéristique sur une image composée de pixels ; différents algorithmes sont employés pour produire les différents types d’ensembles d’objets (cf. Objet).
Opérateur - Algorithme de traitement ou d’interprétation d’image, implémenté comme une routine indépendante. Chaque opérateur est inclus dans une DLL
(Dynamic Linked Library) ou dans un composant ActiveX ; il peut être exécuté depuis l’interface graphique d’Aphelion ou depuis un programme indépendant.
Projet - Fichier comprenant des images, des paramètres d’image et autres informations telles que les noms des écrans virtuels, les valeurs de calibration, les nouveaux noyaux de convolution, etc. Vous pouvez sauvegarder ces informations ainsi que des paramètres liés à des tâches spécifiques dans un fichier Projet d’Aphelion. Les fichiers Projet comportent l'extension .ap.
VB ou Visual Basic – Environnement de programmation Microsoft Visual Basic. Les plus récents outils logiciels proposés par Microsoft sont basés sur Visual Basic. Le langage macro d’Excel, de Word ou de PowerPoint est VB.
13
APHELION 3.2 - Manuel d’installation & Didacticiel
Ecran virtuel - Affichages multiples sur une même zone de l’écran. Chaque affichage peut contenir différents documents tels que des images, des grilles et du texte. L’affichage d’un écran virtuel s’obtient en cliquant sur l’onglet associé situé à gauche en bas de l’interface d’Aphelion.
Explorateur d’écrans virtuels - Une boîte de dialogue présente les écrans virtuels et leurs contenus sous forme d’arbre. Depuis cette boîte, vous pouvez déplacer des
éléments d’un écran virtuel à un autre par action de type glisser-déplacer.
2.7 Interface Graphique Utilisateur
Pour plus d’information sur les sujets abordés dans ce paragraphe, rapportez-vous à l’Aide en Ligne et tapez le sujet désiré dans Index.
Menu Bar
Main Toolbar
Objects Toolbar
Operator Dialog Box
(ODB)
Multiple-Document Interface (MDI)
Info/History/Messages (IHM) window
Statusbar
Virtual Screen Bar
L’interface d’Aphelion contient une barre de menu, des barres d’outil, une barre d’état, une boîte de dialogue Opérateur, une fenêtre Info/History/Messages et une zone dans laquelle peuvent être affichés des images, des macros, des graphiques, du texte et tous les autres documents Aphelion.
Barre de Menu
14
APHELION 3.2 - Manuel d’installation & Didacticiel
La barre de menu, située en haut à gauche de l’interface, contient les menus tels que
Fichier et Visualiser qui donnent accès aux commandes de gestion d’Aphelion.
Barre principale d’outil
La barre principale d’outil, située juste en dessous de la barre de menu apparaît lors du démarrage d’Aphelion et contient les boutons des tâches les plus courantes telles que les couper et coller d’objets et l’accès à l’Aide en Ligne.
Barre d’outil Objet
La barre d’outil Objet, située à droite de la barre principale d’outil, contient les boutons de gestion des objets. Par exemple, vous pourrez afficher la liste des images créées durant la session de travail, visualiser la liste des macros ou attacher une macro
à la barre d’outil.
Barre contextuelle d’outil Image
La barre contextuelle d’outil image, située à droite de l’interface lorsqu’une image est visualisée, contient les boutons de gestion des images. Par exemple, vous pouvez calculer un histogramme ou zoomer une partie de l’image. .
Barre d’état
Dans la partie gauche de la barre d’état est affichée l’aide contextuelle. Les coordonnées et la valeur du pixel sous le curseur de la souris sont affichées dans la partie droite.
Boîte de Dialogue Opérateur
La boîte de dialogue opérateur donne accès à tous les opérateurs d’Aphelion ; la définition des paramètres tels que les images et l’exécution des opérateurs sont effectuées depuis cette fenêtre.
Afin d’obtenir l’aide en ligne associée à l’opérateur choisi, pointer le bouton dans la boîte de dialogue opérateur avec la souris.
Pour obtenir l’aide expliquant l’utilisation de l’opérateur, presser la touche F1.
15
APHELION 3.2 - Manuel d’installation & Didacticiel
Fenêtre Info/Historique/Messages
La fenêtre IHM est constituée de trois volets donnant accès à de nombreuses informations sur l’environnement courant. Le contenu de chaque volet peut être sauvegardé dans un fichier en cliquant sur le bouton droit de la souris et en sélectionnant Save ou SaveAs.
La fenêtre Info contient les informations générales d’analyse d’image.
Le fenêtre Historique contient la séquence des opérateurs exécutés durant la session de travail, avec leurs paramètres.
La fenêtre Messages contient les messages d’erreurs non-critiques.
Ecrans virtuels
Aphelion propose un système d’écrans virtuels afin de permettre l’affichage simultané de nombreux documents dans un même espace écran. La sélection d’un écran virtuel s’obtient en cliquant sur l’onglet correspondant situé en bas de l’interface graphique.
2.8 Utilisation de l’aide
Vous pouvez accéder à l’aide en ligne à tout moment de l’utilisation d’Aphelion. Le
Guide de l’Utilisateur en ligne fournit les informations sur les références et les procédures d’utilisation d’Aphelion et le Aphelion Guide de Référence fournit une information complète pour chaque opérateur d’Aphelion
Pour les utilisateurs avertis, le Guide de Référence du Langage Macro et le Guide de
l’Editeur de Macro sont aussi disponibles en ligne
16
APHELION 3.2 - Manuel d’installation & Didacticiel
Accès à l’Aide en ligne
Depuis la barre de menu bar, cliquez sur Aide, puis sélectionnez Index de l’Aide.
Pour accèder au système complet d’aide en ligne, cliquez sur le bouton Help depuis la barre principale d’outils. Vous pouvez utiliser la page Contents pour trouver le sujet désiré, ou cliquer sur l’onglet Index et chercher par mot-clé un sujet spécifique.
Depuis la boîte de dialogue opérateur, cliquez sur le bouton ? pour afficher la documentation sur l’opérateur sélectionné.
Pour afficher l’aide concernant un élément de l’interface tel qu’une commande de menu ou un bouton de la barre d’outils, cliquez sur le bouton d’aide contextuelle, puis pointez l’élément.
F1 Pour accéder à l’aide concernant une boîte de dialogue spécifique, cliquez sur le bouton d’aide dans la boîte de dialogue ou appuyez sur F1.
17
APHELION 3.2 - Manuel d’installation & Didacticiel
3. DIDACTICIEL
Si vous êtes un nouvel utilisateur ou si vous testez pour la première fois quelques opérations de base dans Aphelion tels que l’ouverture d’une image et l’exécution d’un opérateur, vous pouvez vous référer au manuel ci-dessous.
Nous vous recommandons de lire ce Manuel de Mise en Route avant d’utiliser régulièrement Aphelion et de vous référer au Guide de l’Utilisateur et au Aphelion
Guide de Référence dès que vous en aurez besoin.
3.1 Notions de base
1. Ouvrir une image.
Depuis la barre principale d’outils, cliquez sur le bouton Ouvrir une
Image et double-cliquez sur le fichier Ceramic.tif depuis la boîte de dialogue Ouverture. L’image s’affiche dans sa propre fenêtre.
2. Contrôle des paramètres d’affichage des images.
Placez le curseur de la souris n’importe où dans la fenêtre image, puis cliquez sur le bouton droit de la souris pour afficher le menu de paramétrage des images. Vous pourrez contrôler depuis celui-ci les paramètres tels que la table de conversion ou le contexte d’affichage.
3. Sélectionner un opérateur.
Cliquez sur le bouton Sélectionner un Opérateur dans la boîte de dialogue opérateur, puis sélectionnez Filtrage
→
Passe-Bas
→
ImgLowPass3x3
4. Affichage de l’Aide en ligne sur l’opérateur sélectionné.
Dans la boîte de dialogue opérateur, cliquez sur le bouton Aide
Opérateur. L’aide sur ImgLowPass3x3, chargée depuis le Guide de
Référence des Opérateurs, est alors affichée. Pour fermer la fenêtre d’Aide, cliquez sur le bouton Fermeture en haut à droite de la fenêtre d’aide.
5. Spécification des paramètres de l’opérateur.
Dans la boîte de dialogue opérateur, cliquez sur l’icône de l’image d’entrée et sélectionnez l’image que vous voulez utiliser dans la liste affichée (dans ce cas, Ceramic sera probablement la seule image proposée). Pour l’image de sortie, une nouvelle image par défaut est déjà sélectionnée. Cet opérateur n’a pas d’autre paramètre.
6. Exécuter un opérateur.
18
APHELION 3.2 - Manuel d’installation & Didacticiel
Dans la barre d’outils de la boîte de dialogue opérateur, cliquez sur le bouton Opérateur Exécuter. Lors de l’exécution, le bouton d’arrêt est rouge. Vous pouvez arrêter l’exécution en cliquant sur le bouton d’arrêt. Le bouton d’arrêt devient blanc dès la fin de l’exécution.
7. Sélection d’une macro depuis la liste des macros distribuées avec
Aphelion.
Dans la barre d’outils Objet, cliquez sur le bouton Liste Macro.
Sélectionnez Ceramic.apm. Une fenêtre macro contenant Ceramic.apm est affichée.
8. Exécuter une macro.
Dans la barre d’outils de la fenêtre Macro, cliquez sur la flèche verte.
Durant l’exécution de la macro, Aphelion ouvre des boîtes de dialogue.
Cliquez OK dans toutes les boîtes de dialogue.
9. Pour détruire toutes les images, cliquez sur le bouton ImgFreeAll situé dans la boîte de dialogue opérateur.
3.2 Démonstrations multimédia
Des démonstrations multimedia sont fournies sur le CD-ROM d’Aphelion afin de présenter les caractéristiques de base d’Aphelion telles que les barres d’outil, la gestion d’image, la boîte de dialogue opérateur et la segmentation d’image.
Nous vous recommendons vivement de visionner ces démonstrations si vous ne connaissez pas encore Aphelion.
La façon la plus simple d’accéder à celles-ci est de suivre les étapes suivantes :
1. Copiez le dossier CD-ROM\Demos dans le dossier où vous avez installé
Aphelion ou $Aphelion\Demos\WinNT\Scplayer.exe (sous Windows
NT 4.0/2000/XP) dans $Aphelion\Demos
4. Cliquez et sélectionnez la démonstration que vous souhaitez visionner
19
APHELION 3.2 - Manuel d’installation & Didacticiel
4. CHARGER ET SAUVEGARDER UNE IMAGE
Il existe trois méthodes pour charger une image dans Aphelion :
• charger une image dont le format est supporté (TIFF, BMP, JPEG, KBV,
VTK)
• importer une image de format non supporté (données non compressées uniquement)
• acquérir une image à partir d’une caméra ou d’un scanner
4.1 Ouvrir et sauver une image
Aphelion supporte les formats d’image suivants :
• fichier image taggé (.tif)
• bitmap (.bmp)
• JPEG (.jpg)
• KBVision (.im)
• VTK (.vtk) – uniquement avec le module 3D Image Processing
Pour ouvrir une image
1. Dans la barre principale d’outils, cliquez sur le bouton Ouvrir une
Image. La boîte de dialogue Ouverture s’ouvre, affichant la liste de toutes les images tif du répertoire \Program Files\ADCIS-AAI\Aphelion\Images.
Pour changer de liste de type d’images, cliquez sur la flèche de liste de type de fichier.
2. Double-cliquez sur l’image que vous voulez charger. L’image s’ouvre dans une fenêtre image.
Pour sauvegarder une image
Après avoir modifié une image, vous devez penser à la sauvegarder afin de ne pas perdre les modifications en sortant d’Aphelion. Pour cela, assurez-vous que la fenêtre image est active, puis cliquez sur le bouton Enregistrer de la barre principale d’outils.
Affichage d’image
Plusieurs modes d’affichage des images sont proposés dans Aphelion:
• affichage adapté à la taille de la fenêtre
20
APHELION 3.2 - Manuel d’installation & Didacticiel
• affichage conservant l’aspect
• affichage d’un pixel image dans un pixel écran
Pour plus d’information, ouvrez l’aide en ligne et tapez Image Views dans l’onglet
Index.
4.2 Autres formats d’image
Si vous avez des images dans un format autre que les formats supportés (TIFF, BMP,
JPEG, KBV et VTK), vous pouvez les importer dans Aphelion en utilisant l’opérateur
AphImgImport ou un logiciel de conversion.
AphImgImport permet d’importer les fichiers binaires non compressés dans une image Aphelion. Par exemple, un fichier raster SUN peut être facilement importé dans Aphelion à l’aide de AphImgImport.
Pour plus d’information, ouvrez l’aide en ligne et tapez Importing Images (Autres
Formats d’image) dans l’onglet Index.
Utiliser l’opérateur AphImgImport
1. Déterminez la taille et le type de donnée des pixels de l’image ainsi que les caractéristiques du fichier que vous voulez importer.
2. Dans la boîte de dialogue opérateur, cliquez sur le bouton Sélectionner un
Opérateur, puis sélectionnez Image Utilitaires
→
Entrée/Sortie
→
AphImgImport.
Remarque: la taille et le type de donnée de l’image de sortie sont définis à l’aide de la commande Options associée à l’icône de l’image de sortie.
Utiliser un logiciel de conversion
Plusieurs logiciels de conversion d’images sont disponibles sur le marché. Chargez d’abord l’image à l’aide de l’un d’entre eux, puis enregistrez l’image dans un des format supporté par Aphelion, tel TIFF, BMP, ou JPG.
Logiciel de conversion d’image Company
Graphics Workshop Alchemy Mindworks, Inc.
HiJaak Corp.
Image Alchemy Handmade Software, Inc.
LView Pro Leonardo H. Loureiro
21
APHELION 3.2 - Manuel d’installation & Didacticiel
4.3 Acquérir une Image
Aphelion dispose d’interfaces optionnelles à plusieurs cartes d’acquisition d’images.
Si vous possédez l’une des cartes ou caméras listées ci-dessous; vous pouvez acquérir le signal vidéo via celle-ci.
Système d’acquisition
Fabricant Modèle
Data Translation DT3155 9
Diagnostic
Instruments
Spot (camera à faible sensibilité)
9
9
Euresys Picolo 9 9
9 9
Imaging
Technology
IC-PCI/AM-VS or IC-VS
9 9
9
IC-PCI/AM-FA or IC-FA
IC-PCI/AM-
CLR
9 9 9 9 9
IC-PCI/AM-DIG or IC-DIG
IC-PCI/AM-
STD-COMP or
IC-COMP
9
9 9 9
IC-PCI/AM-
STD-RGB
9 9
22
APHELION 3.2 - Manuel d’installation & Didacticiel
Système d’acquisition
Fabricant Modèle
Integral
Technologies
FlashPoint 128
9 9 9 9
FlashPoint 3D 9 9 9 9
FlashBus MV
Lite & Plus
9 9 9 9
FlashBus MV
Pro
Meteor RGB
9 9 9 9 9
Matrox
FlashBus DX
Corona
Leica DC-300F
9 9
9 9
9 9
9 9 9 9
Meteor 9 9 9 9
9 9 9 9 9
Meteor-II
9 9 9 9
Meteor-II/MC
9 9 9
Meteor-II/CL 9
MuTech MV-1000 9 9
MV-1000/1300 9 9
9 9
IV-450
9 9 9 9
9 camera
Pour tout scanner et carte d’acquisition fourni avec un pilote Twain
Pour tout matériel fourni avec un pilote Video for Windows
23
APHELION 3.2 - Manuel d’installation & Didacticiel
Acquérir une image vidéo
1. Dans la barre principale d’outils, cliquez sur le bouton Caméra.
2. Sélectionnez la caméra logique que vous souhaitez utiliser.
3. Dans la boîte de dialogue opérateur, cliquez sur le bouton Sélectionner
un Opérateur.
→
Grab/Snap
→
ImgGrab ou ImgSnap. L’image apparaît alors dans une fenêtre image.
5. Utilisez la barre d’outils contextuelle (à droite de l’interface) pour contrôler les paramètres d’acquisition et pour capturer l’image.
24
APHELION 3.2 - Manuel d’installation & Didacticiel
5. VISUALISATION D’IMAGE
Lorsque vous chargez une image, elle s’affiche automatiquement dans une fenêtre image. La section suivante explique comment changer les caractéristiques d’une image à l’aide des différents modes de visualisation de cette image.
Remarque : le composant ActiveX appelé ApxImageDisplay supporte toutes les caractéristiques d’affichage de l’interface graphique d’Aphelion. Il peut être utilisé dans une application développée en dehors de l’interface d’Aphelion. Une description détaillée des propriétés et méthodes de ce composant est disponible dans l’aide en ligne.
5.1 Visualisation d’image
Aphelion propose plusieurs modes de visualisation des images tels que le zoom, l’affichage partiel avec réglettes de déplacement et la modification de réponse en intensité par contrôle du contraste et de la brillance ou par conversion des intensités à l’aide de LUT.
Pour plus d’information, ouvrez l’aide en ligne et tapez Images dans Index.
Astuce : à partir de la boîte de dialogue Propriétés, vous pouvez modifier plusieurs paramètres de l’image. Cliquez sur le bouton droit de la souris dans l’image pour afficher le menu et sélectionnez Propriétés. Vous obtenez les informations sur l’image et pouvez ensuite ajuster ses propriétés ou ses paramètres d’affichage. Par exemple, vous pouvez changer le type de données de l’image pour l’adapter à l’opérateur que vous désirez lui appliquer ou changer de table de conversion pour mettre en évidence des parties peu contrastées de l’image.
5.2 Histogramme
Le bouton Histogramme calcule et affiche l’histogramme des niveaux de gris d’une partie de l’image définie à l’aide de la souris. Un histogramme est utile pour déterminer les techniques de traitement et de segmentation qui seront les plus efficaces. Par exemple, si l’histogramme est bi-modal, plusieurs techniques de seuillage automatique, telles que AphImgEntropyThreshold ou
AphImgMaximumContrastThreshold donneront de bons résultats. L’histogramme peut aussi mettre en évidence des problèmes qui devront être corrigés par filtrage. Par
25
APHELION 3.2 - Manuel d’installation & Didacticiel
exemple, si le nombre d’occurrence de tous les niveaux de gris impairs est nul, ceci est probablement dû à la conversion d’une image codée sur moins de 8 bits en une image 8 bits.
5.3 Profil
Le bouton Profil calcule et affiche la courbe des intensités sur un segment de droite dessiné dans l’image à l’aide de la souris, particulièrement utile pour analyser les contours et le rapport signal/bruit.
26
APHELION 3.2 - Manuel d’installation & Didacticiel
6. EXECUTER UN OPERATEUR
L’exécution d’un opérateur s’effectue à partir de la boîte de dialogue opérateur.
Sélectionnez dans celle-ci l’opérateur que vous désirez appliquer, définissez tous les paramètres, images d’entrée et de sortie incluses, et exécutez l’opérateur.
6.1 Ouvrir la boîte de dialogue opérateur
Si la boîte de dialogue opérateur n’est pas affichée, cliquez sur le bouton
Opérateur dans la barre d’outils Objets pour l’ouvrir.
6.2 Sélectionner un Opérateur
Les opérateurs peuvent être sélectionnés en utilisant le menu en cascade. Le premier menu donne la liste des groupes d’opérateurs, le deuxième la liste des sous-groupes d’opérateurs associée au groupe sélectionné et le troisième menu donne la liste des opérateurs du sous-groupe sélectionné.
Sélectionner un opérateur
1. Dans la boîte de dialogue opérateur, cliquez sur le bouton Sélectionner
un Opérateur.
2. Déplacez le pointeur de la souris vers la droite du groupe, puis du sousgroupe dans lesquels se trouve l’opérateur souhaité.
3. Pointer l’opérateur que vous désirez lancer et cliquez sur le bouton gauche de la souris.
Remarque : après que vous ayez sélectionné un opérateur, Aphelion affiche des marques à gauche du groupe, sous-groupe et opérateur sélectionnés.
Vous pouvez aussi sélectionner un opérateur à partir de la liste alphabétique de tous les opérateurs en cliquant sur le bouton Liste A...Z.
Pour plus d’information, ouvrez l’aide en ligne et tapez Selecting an Operator
(Sélectionner un Opérateur) dans Index.
6.3 Paramètres des opérateurs
Avant d’exécuter un opérateur, vous devez définir les valeurs de tous les paramètres requis. Les paramètres sont :
27
APHELION 3.2 - Manuel d’installation & Didacticiel
• noms des images d’entrée et de sortie
• nom du noyau pour une convolution
• forme de l’élément structurant pour une transformation morphologique
• taille du noyau ou de l’élément structurant
La plupart des paramètres peuvent être sélectionnés dans une liste. Quelques paramètres, tels que les chaînes de caractères ou les nombres, doivent être tapés.
Pour plus d’informations, ouvrez l’aide en ligne et tapez Selecting Operator
Parameters (Paramétrer un Opérateur) dans Index.
Remarque : Pour exécuter un opérateur, vous devez définir tous les paramètres.
Exécuter un opérateur
Pour exécuter un opérateur, cliquez sur le bouton de la boîte de dialogue
Opérateur représentant une flèche verte. Si vous désirez interrompre l’exécution, cliquez sur le bouton rouge d’arrêt. Lorsque l’opération est terminée, le bouton d’arrêt devient blanc.
Dès la fin de l’exécution, l’éventuelle image de sortie est affichée. Référez-vous au paragraphe Visualisation d’image de ce guide pour obtenir des informations sur les différents mode de visualisation des images.
28
APHELION 3.2 - Manuel d’installation & Didacticiel
7. TRAITEMENT D’IMAGE
Ce paragraphe explique comment traiter une image pour l’améliorer.
7.1 Filtrage pour éliminer le bruit en intensité
Le bruit du signal est caractérisé par une variation des valeurs de pixel. Ce bruit peut
être aléatoire ou régulier.
Filtrage linéaire ou convolution
Le filtrage linéaire est le plus classique des outils de traitement d’image. En fonction du noyau utilisé par AphImgConvolve, vous pouvez appliquer sur l’image un filtre passe-bas ou passe-haut. Pour éliminer un bruit aléatoire, utilisez l’un des filtres passe-bas proposés dans Aphelion tels que AphImgLowPass5x5.
Filtres non-linéaires
Les filtres non linéaires sont les filtres dont le résultat n’est pas proportionnel à l’image d’entrée. Par exemple, le lissage par moyennage est linéaire tandis que le lissage par la médiane ne l’est pas ; ce dernier est nommé AphImgMedian dans
Aphelion. Cet opérateur remplace chaque pixel par la valeur médiane de son voisinage, dont les valeurs sont ordonnées du plus petit au plus grand. Comme pour les filtres linéaires passe-bas, plus le voisinage choisi est grand et plus le lissage sera drastique.
Filtres fréquentiels
Les filtres fréquentiels sont utiles lorsque la réponse fréquentielle du bruit est connue.
Il est souvent utile d’exécuter AphImgFFT pour voir le spectre de puissance de l’image. Si vous voyez des pics bien définis ne correspondant à aucune structure de l’image, ceux-ci pourraient être du bruit que vous pourrez facilement éliminer en utilisant un des filtres fréquentiels tels que AphImgHPRectangularFilter.
Après avoir filtré le spectre de puissance, utilisez l’opérateur AphImgInverseFFT pour générer l’image filtrée.
7.2 Filtrage pour éliminer le bruit spatial
Il existe aussi du bruit spatial. Ce bruit est caractérisé par des frontières grossières ou des trous dans les objets. Les opérateurs morphologiques sont les plus efficaces pour
éliminer ce type de bruit. Par exemple, AphImgOpen peut être appliqué à une image binaire, une image à teinte de gris ou en couleurs afin d’éliminer les bords externes
29
APHELION 3.2 - Manuel d’installation & Didacticiel
d’objets brillants. AphImgClose peut être utilisé pour boucher les trous dans les objets.
7.3 Autres opérateurs de traitement d’image
Les paragraphes précédents ont présenté seulement quelques opérateurs d’une des bibliothèques d’opérateurs d’Aphelion. Voici une partie des autres bibliothèques de traitement d’image, avec quelques uns de leurs opérateurs :
Arithmétique/Logique(AphImgAdd, AphImgMultiplyConstant)
Détection de contours (AphImgSobelEdges)
Transforme (AphImgRotate, AphImgRGBToHSI)
Acquisition (AphImgSnap)
Utilitaire Image (AphImgCreateGaussianNoise, AphImgCopy)
7.4 Composants ActiveX d’Aphelion
Toutes les fonctions de traitement d’images d’Aphelion sont disponibles sous forme de méthodes de contrôles ActiveX contenus dans des librairies (DLLs), aussi appelées
Aphelion Toolkits (TKs). De plus, d’autres DLLs sont fournies pour la gestion de l’affichage d’images avant et après traitement et la génération d’ensembles d’objets
Aphelion (ObjectSets). Les principales DLLs ActiveX d’Aphelion actuellement disponibles sont présentés ci-dessous :
• ApxAnalysisTK : définit un contrôle donnant accès aux opérateurs calculant les mesures sur les images et les ensembles d’objets telles que la surface, le périmètre, la corrélation, etc.
• ApxEdgeDetectionTK : définit un contrôle donnant accès aux opérateurs de détection de contour.
• ApxFrequencyTK : définit un contrôle donnant accès aux opérateurs travaillant dans l’espace fréquentiel tels que la transformée de Fourier et le filtrage fréquentiel.
• ApxImgFilteringTK : définit un contrôle donnant accès aux opérateurs de filtrage d’image tels que le lissage et l’amélioration d’image.
• ApxImgUtilityTK : définit un contrôle donnant accès aux opérateurs de traitement basiques d’image tels les traitements arithmétiques et logiques et les opérateurs d’entrée/sortie.
30
APHELION 3.2 - Manuel d’installation & Didacticiel
• ApxMorphologyTK : définit un contrôle donnant accès aux opérateurs de
Morphologie Mathématique tels que l’érosion, la dilatation, la squelétisation et les transformations géodésiques
• ApxObjUtilityTK : définit un contrôle donnant accès aux utilitaires dédiés aux ensembles d’objets tels que les conversions d’objets, le traitement d’objets et de gestion des paramètres d’objets.
• ApxSegmentationTK : définit un contrôle donnant accès aux opérateurs de segmentation d’image tels que les seuillages et les opérateurs de conversion en ensemble d’objets (dont les noms se terminent par Obj).
• ApxImage : définit le contrôle permettant de représenter une image ainsi que d’autres contrôles et objets ActiveX liés à cette image.
• ApxImageCapture : définit un contrôle générique de capture d’image. Celuici s’interface à tous les pilotes de cartes d’Aphelion. Il permet d’acquérir les images en continu ou en mode capture depuis une caméra. Il peut également
être facilement connecté à un contrôle ApxImageDisplay pour l’affichage d’image «live» ou capturée.
• ApxImageDisplay : définit un contrôle d’affichage d’image dynamique ou statique avec la possibilité d’ajout de graphiques sur l’image. Il fournit les contrôles de zoom et de défilement.
• ApxMMX : définit un contrôle permettant d’accélérer certaines opérations de traitement d’image (ouverture et fermeture morphologiques, convolution, etc) basées sur les instructions MMX, pour la plupart.
• ApxObjectSet: définit le contrôle permettant de représenter un ensemble d’objets.
31
APHELION 3.2 - Manuel d’installation & Didacticiel
8. EXTRAIRE ET ANALYSER DES OBJETS
Ce paragraphe explique comment utiliser Aphelion pour extraire des objets d’une image et effectuer des mesures sur ceux-ci.
8.1 Mesures globales
Les mesures globales sont celles qui sont calculées sur l’ensemble de l’image. Par exemple, pour une image binaire donnée, vous pouvez calculer le nombre de pixels non nuls comme la surface de l’image. Cette mesure est obtenue par AphImgArea.
Pour une image à niveaux de gris, vous pouvez calculer la somme des valeurs de tous les pixels comme le volume de l’image grâce à AphImgVolume. D’autres mesures globales sont interactives, telles que AphImgDistance qui donne la longueur d’un segment que vous aurez dessiné sur l’image.
Astuce : Lorsque vous sélectionnez un opérateur d’analyse globale tel que
AphImgHistogram, vous pouvez cliquer sur le bouton dans la boîte de dialogue opérateur pour afficher un menu dans lequel vous pourrez choisir d’envoyer les résultats dans la fenêtre Info, dans un graphique (histogramme) ou dans Excel.
Calibration
De nombreuses mesures globales peuvent être calculées dans des unités physiques plutôt qu’en pixels. Pour cela, vous devrez d’abord étalonner l’image en ouvrant la boîte de dialogue Calibration à partir du menu contextuel de l’image.
Les valeurs d’étalonnage seront automatiquement enregistrées dans l’en-tête de l’image si l’image est sauvée au format TIFF.
Pour plus d’information, ouvrez l’aide en ligne et tapez Calibrating an Image
(Etalonner une Image) dans Index.
8.2 Segmentation
Vous serez peut-être plus souvent intéressé par les objets individualisés plutôt que par les caractéristiques globales de l’image. Aphelion permet de définir ces objets individuels grâce aux opérateurs de segmentation.
Les régions sont la représentation d’objet la plus souvent utilisée. Une région est un ensemble de pixels connexes enregistrés dans une représentation bitmap. La manière la plus usuelle pour obtenir des régions est de seuiller une image en utilisant
AphImgThresholdObj. Cet opérateur est interactif puisque vous devez spécifier les
32
APHELION 3.2 - Manuel d’installation & Didacticiel
seuils haut et bas ; les pixels conservés seront ceux dont les valeurs sont comprises entre ces deux seuils. Des opérateurs de segmentation automatique tels que
AphImgEntropyThresholdObj et AphImgMultiModalThresholdObj sont aussi proposés.
Si vous avez déjà segmenté votre image et obtenu une image binaire, alors vous pouvez également obtenir les régions à l’aide de AphImgClustersObj.
Remarque : tous les opérateurs de segmentation de région dans Aphelion ont deux versions. Les opérateurs dont le nom se termine par Obj génèrent des régions dans l’environnement ISR, tandis que les autres génèrent des images binaires.
Aphelion propose également plusieurs autres représentations d’objet. La liste suivante présente un exemple d’opérateur qui leur est associé :
Segments de droite (AphImgGradientLines)
Points de contour (AphEdgesToEdgel)
Rectangles (AphLabelsToRectangles)
Chaînes (AphEdgelsToChains)
Polygones (AphRegionConvexHullPolygons)
8.3 Mesures d’Objet (mesures individuelles)
Les mesures d’objet sont des attributs calculés pour les objets tels que les régions, les segments de droite et les chaînes. Typiquement, ces mesures sont calculées pour filtrer, classifier ou quantifier les objets de l’image. Aphelion contient des outils de gestion de base de données pour les mesures d’objet, de visualisation et de calcul sur ces objets.
Ensembles d’objet
Les ensembles d’objet appartiennent à la Représentation Symbolique Intermédiaire
(ISR). L’ISR est une base de données utilisée pour le stockage et la gestion des attributs d’objet. L’ISR peut être présentée de manière schématique comme un tableau bi-dimensionnel de mesures, dans lequel chaque ligne correspond à un objet et chaque colonne à une mesure spécifique. Cependant, l’ISR est plus qu’un tableau de mesures puisqu’il est possible d’ordonner les valeurs, d’ajouter ou de supprimer des objets ou des mesures et d’accéder à la représentation spatiale des objets.
Aphelion propose des opérateurs utilitaires pour ISR tels que :
33
APHELION 3.2 - Manuel d’installation & Didacticiel
• AphObjCopy
• AphObjFilter
• AphObjRead
Pour charger ou enregistrer un ensemble d’objet (base de données ISR) utiliser la commande Ouvrir un ensemble d’objet du menu Fichier.
Remarque : le format des fichiers ISR d’Aphelion est totalement compatible avec le format des fichiers ISR de KBVision.
Exemple : afficher des mesures d’objet dans une grille
Cet exemple décrit comment obtenir, à partir d’une image, des mesures d’objet puis les afficher dans une grille.
1. Ouvrir l’image avec laquelle vous voulez travailler.
2. Dans la boîte de dialogue opérateur, cliquez sur le bouton de sélection des opérateurs. Choisir alors Segmentation
→
Segmentation par Région
→
ImgThresholdObj.
3. Spécifiez les paramètres de l’opérateur. Pour cela :
• Cliquez sur le bouton Entrée et choisissez l’image d’entrée dans le menu déroulant,
• Tapez REGIONS dans le champ réservé à Objectset de sortie.
• Déplacez ensuite les réglettes des seuils haut et bas afin d’obtenir les objets voulus colorés en rouge.
4. Cliquez sur le bouton Exécuter un Opérateur pour effectuer l’opération. mesures de région. Pour cela, cliquez sur le bouton de sélection des opérateurs et choisissez alors Analyse
→
Objets
→
ObjComputeMeasurements.
6. Spécifiez les paramètres de l’opérateur. Pour cela :
• Cliquez sur le bouton Entrée et choisissez l’image d’entrée dans le menu déroulant,
• Sélectionnez l’ensemble de régions depuis le menu déroulant obtenu en cliquant sur le bouton à droite du champ Objectset de sortie.
34
APHELION 3.2 - Manuel d’installation & Didacticiel
7. Cliquez sur le bouton Exécute Opérateur pour effectuer l’opération.
Vous avez désormais les régions avec leurs mesures associées dans un ensemble d’objet.
8. Cliquez sur le bouton Liste des objets dans la barre d’outils Objet pour ouvrir la grille. Sélectionnez Régions.
9. Affichez les mesures tel que décrit dans la section suivante du document relative aux grilles.
8.4 Grilles de mesures
Les résultats d’une analyse d’objet sont automatiquement stockés dans une grille
Aphelion, ou tableau de mesures. Si vous choisissez l’option Afficher
automatiquement les grilles dans la boîte de préférences, depuis le menu principal en cliquant sur Options
→
Préférences, la grille s’ouvre alors automatiquement lorsqu’elle est créée. Dans le cas contraire, utilisez la procédure suivante pour ouvrir la grille.
Afficher les données ISR dans une grille
1. Cliquez sur le bouton Liste des ensembles d’objet dans la barre d’outils Objet.
2. Sélectionnez la grille que vous désirez ouvrir, en choisissant son nom.
La grille peut être utilisée pour ordonner, filtrer, modifier et exporter les mesures. Elle peut également être utilisée pour sélectionner un objet individuel ou un ensemble d’objet et le visualiser en superposition dans l’image.
Pour plus d’information, ouvrez l’aide en ligne et tapez Grid Documents ou Message
Passing (Passage d’informations) dans Index.
Mesures proposées
Aphelion propose un grand nombre de mesures pour les objets grâce à l’opérateur
AphObjComputeMeasurements. Cet opérateur permet de calculer toutes les mesures associées à l’ensemble d’objet (cf. la page d’aide de AphObjComputeMeasurements ou se référer au paragraphe 13.2 Mesures individuelles pour plus d’information concernant les différentes mesures).
Liste des mesures effectuées sur des objets :
Région : coordonnées, paramètres de forme, texture, couleur
35
APHELION 3.2 - Manuel d’installation & Didacticiel
Segment de droite : coordonnées, longueur, orientation, contraste, couleur
Chaîne :
Polygone : coordonnées, longueur, courbure, contraste, couleur coordonnées, aire, périmètre, couleur
Point de contour : coordonnées, orientation, intensité, couleur
Rectangle : coordonnées, aire, couleur
Astuce : toute représentation d’objet peut être convertie en région grâce à
AphObjSpatialAttributeToRegions. Cela rend possible le calcul de toutes les mesures de région pour les objets tels que segments de droite, chaînes, ou polygones.
8.5 Autres opérateurs de traitement d’objet
Les paragraphes précédents ont présenté une partie de la bibliothèque d’opérateurs pour les objets d’Aphelion. La liste suivante présente les autres groupes d’opérateur avec un exemple pour chacun d’eux.
Conversion (AphObjSpatialAttributesToRegions)
Transforme (AphObjRotate)
Morphologie (AphRegionErode)
Groupement (AphEdgelsToChains, AphRegionSplitConvex)
Analyse (AphImgVolume, AphRegionFeret, AphChainAttributes)
Utilitaires (AphObjFilter, AphObjCopy)
8.6 Composants ActiveX d’Aphelion
Tous les opérateurs dédiés aux ensembles d’objet d’Aphelion sont également disponibles dans les composants ActiveX d’Aphelion ApxObjects, ApxObjectSet et
ApxObjUtilityTK. Référez-vous à la documentation en ligne afin d’obtenir les informations relatives aux propriétés et méthodes de ces composants.
Tous les opérateurs dédiés à la gestion et au traitement des ensembles d’objets disponibles dans Aphelion sont également proposés dans les composants ActiveX d’Aphelion (ApxObjects, ApxObjectSet, and ApxObjUtilityTK). Veuillez vous référer à l’aide en ligne pour en savoir plus sur les propriétés et méthodes de ces composants. Le paragraphe 7.4 Composants ActiveX d’Aphelion présente l’ensemble des composants ActiveX d’Aphelion.
36
APHELION 3.2 - Manuel d’installation & Didacticiel
9. RAPPORTS D’ANALYSE
9.1 Impression
Vous pouvez imprimer des documents individuels tels que des images, des macros ou des graphiques. Vous pouvez également utiliser la fenêtre de formatage de l’impression pour composer une page d’impression avec différents types de document et du texte.
Sélectionnez la fenêtre que vous désirez imprimer (image, macro ou autre).
Cliquez sur le bouton Impression de la barre principale d’outils.
Cliquez sur le bouton Fenêtre de formatage de l’édition de la barre d’outils
Objet. Depuis la fenêtre d’édition, cliquez sur le bouton droit de la souris pour afficher le menu d’édition de page d’impression et ajouter les images, les graphiques et/ou le texte dans la page. Utilisez la souris et le menu d’édition pour mettre en page les différents éléments. Sélectionnez Aperçu avant Impression depuis le menu
Fichier pour prévisualiser la page d’impression, puis cliquez sur le bouton
Impression de la barre principale d’outils pour imprimer la page.
9.2 Exporter les mesures d’objet
Vous pouvez exporter les mesures d’objet vers Excel, Access, ou tout autre programme pour Windows afin de trier, faire un rapport, tracer des courbes de résultat, ou encore imprimer.
• Depuis la boîte de dialogue opérateur : utilisez l’opérateur Utilitaires
d’objets
→
Objet Entrée/Sortie
→
AphObjExport pour générer un fichier
ASCII avec séparation par tabulation. Ce type de fichier peut ensuite être facilement importé dans Excel, Access et autres logiciels en utilisant leur commande d’importation.
• Depuis la grille de mesures : utilisez la commande Envoyer données à Excel du menu contextuel pour exporter les données sélectionnées de la grille vers
Excel.
37
APHELION 3.2 - Manuel d’installation & Didacticiel
10. EDITER UNE MACRO
BasicScript est un langage interprété extrêmement puissant et compatible Visual
Basic. En utilisant BasicScript, vous pourrez enregistrer des séquences d’opérateurs, faire une boucle sur plusieurs images ou objets, accéder aux pixels et créer des boîtes de dialogue.
Remarque: les fichiers Macro ont l’extension .apm pour Aphelion Macro.
Créer une nouvelle macro
1. Dans le menu Fichier, choisissez Nouveau. La boîte de dialogue New apparaît. macro.
Remarque : cliquez sur le bouton droit de la souris, en plaçant le curseur dans la bannière grise de la fenêtre, pour afficher le menu contextuel de la fenêtre Macro.
Raccourci : cliquez sur le bouton dans la barre d’outils Objet pour afficher la liste des macros d’Aphelion, puis cliquez simplement sur la macro que vous voulez charger.
Charger une macro
Depuis le menu Fichier, cliquez sur Ouvrir Macro… et sélectionnez la macro que vous souhaitez charger depuis l’explorateur.
38
APHELION 3.2 - Manuel d’installation & Didacticiel
Enregistrer une Macro
Tout opérateur que vous exécutez depuis la boîte de dialogue opérateur peut être enregistré dans une macro afin de le sauvegarder et de le rejouer. Ceci est très utile pour regrouper des opérations couramment utilisées ou pour créer une application incluant filtrage, segmentation et analyse.
Pour plus d’information, ouvrez l’aide en ligne et tapez Macros dans Index.
Exécuter et Déboguer une Macro
Un environnement BasicScript d’exécution et de débogage complet est proposé dans
Aphelion. Celui-ci permet d’exécuter une macro, complètement ou en mode pas-àpas, et de contrôler les valeurs des paramètres de la macro. Ceci peut être utilisé pour déceler les erreurs dans une macro ou encore pour une démonstration pas-à-pas.
Pour plus d’information, ouvrez l’aide en ligne et tapez Macros dans Index.
Créer une boîte de dialogue
BasicScript comprend un environnement spécifique pour créer vos propres boîtes de dialogue, avec boutons, fenêtres pour entrer une variable, menus déroulants, etc. Ceci est utilisé afin de créer une application comportant un nombre limité d’options pour l’utilisateur, comme par exemple le choix entre trois filtrages suivi du choix de mesures à calculer.
Pour plus d’information, ouvrez l’aide en ligne et tapez Using the Dialog Editor
(Editeur de Dialogue) dans Index.
10.1 Traduction d’une macro Aphelion Macros en code Visual Basic
Les commandes d’appel d’opérateurs Aphelion sont un peu différentes dans les macros BasicScript et dans les projets Visual Basic. Bien qu’il n’y ait pas de règle concernant la différence de syntaxe entre les deux environnements de développement, les lignes suivantes présentent les principales différences :
Code en Visual Basic
Dim se As New ApxSElement se.Size = 3 se.SetElementType = SetSquare
ApxMorphology1.ImgErode ApxImage1.Object, ApxImage2.Object, se
Code en BasicScript
original = AphImg("Image 0") i1 = AphImgNew("Image1")
39
APHELION 3.2 - Manuel d’installation & Didacticiel
AphImgErode original, i1, AphSElement("Square",3)
Remarque : l’affichage des images est automatique en BasicScript. In Visual Basic, alors qu’il faut l’invoquer en appelant la propriété Content du composant
ApxImageDisplay.
Code en Visual Basic
ApxImgUtility1.ImgAdd ApxImage1.Object, ApxImage2.Object,
ApxImage3.Object
Code en BasicScript
original = AphImg("Image 0") i1 = AphImg(“Image 1”) i2 = AphImgNew("Image2")
AphImgAdd original, i1, i2
40
APHELION 3.2 - Manuel d’installation & Didacticiel
11. MACROS D’APHELION
Les macros suivantes sont fournies dans la version standard de développement d’Aphelion. Nous vous recommandons d’exécuter chacune d’entre elles et de regarder leurs résultats. Des parties de celles-ci pourront être utilisées pour vos propres applications. Le paragraphe suivant décrit et commente en détail l’une de ces macros, à savoir Ceramic.apm.
11.1 Macros d’application
Les macros d’application sont situées dans le répertoire \Aphelion\Macros. Pour charger une macro d'application, cliquez sur le bouton Macros dans la barre d'objets, puis sélectionnez l'entrée Macros. Sélectionnez alors dans la liste la macro que vous souhaitez charger.
Nom des Macros
Aphelion.apm
Fonctionnalités présentées dans les macros
Cette macro présente de nouvelles fonctionnalités.
Remarque : la macro nommée Aphelion.apm se trouvant dans le dossier Macros est automatiquement exécutée au démarrage d’Aphelion
Blood.apm
Ceramic.apm
Circuit.apm
Color.apm
Confocal.apm
DemoDialog.apm
DemoLoop.apm
BasicScript telles boîtes de dialogue et contrôle des fenêtres
Segmentation basique, création d’ensemble d’objets et mesure
Traitement d’images de base et techniques de gestion ISR (ensemble d’objets)
Opérateurs morphologiques pour détecter un défaut
Traitement d’image couleur
Conversion RVB en TSI
Affichage d’une boîte de dialogue permanente pour exécuter une application
Boucle sur toutes les images d'un répertoire auxquelles sont appliqués plusieurs opérateurs
41
APHELION 3.2 - Manuel d’installation & Didacticiel
FeretAccess.apm
Fourier.apm
Granulo.apm
Grille.apm
ImgRegister.apm
ImmunoMarker.apm
Road.apm
RoiProcess.apm
SequenceInterface.apm
Calcul et accès aux diamètres de Feret d’un ensemble d’objet ISR
Exemples de filtrage fréquentiel à l’aide de Fourier
Granulométrie morphologique et export vers Excel
Traitement morphologique et mesures ISR
Compare une image à une référence
Utilisation de l'information couleur pour la détection des cellules cancéreuses
Calcul des points de contour, conversion en chaînes puis en segments de droite
Présente la conversion des ensembles d'objets en régions d'intérêt
Dialogue pour l'acquisition de séquence d'images
Zircone.apm Segmentation et analyse d’une image 3D
Remarque : cette macro fonctionne uniquement si les modules de traitement et de visualisation 3D sont sous licence
11.2 Macros d’exemples BasicScript
Les macros d’exemples sont situées dans le répertoire \Aphelion\Examples.
Pour charger une macro d'application, cliquez sur le bouton Macros dans la barre d'objets, puis sélectionnez l'entrée Examples. Sélectionnez alors dans la liste la macro que vous souhaitez charger.
Nom des Macros
3DSlicer
Fonctionnalités présentées dans les macros
Affiche la section 2D sélectionnée parmi l’ensemble des sections d’une image 3D
Remarque : cette macro fonctionne uniquement si le module 3D Image Processing est sous licence fritté de bronze
42
APHELION 3.2 - Manuel d’installation & Didacticiel
ColorImageAccess.apm images d’un répertoire
Accès aux pixels d’une image couleur en
BasicScript
ComplexImageAccess.apm Accès aux pixels d’une image complexe en
BasicScript
Dialog.apm Affiche une boîte de dialogue permanente depuis laquelle peut être lancer une application
EdgeImageAccess.apm Accès aux pixels d’une image de type Edge en
BasicScript
Editor.apm
ExportToExcel.apm
ExportToNotepad.apm
ExportToWord.apm
FileAccess.apm
Présente les commandes BasicScript de contrôle de l’éditeur d’image binaire et d’ensemble d’objets
Démarre Excel et charge un histogramme associé à une image dans une feuille
Démarre le Bloc Note et y charge du texte
Démarre Word et y charge une image et du texte
Montre comment lire et écrire un fichier en Basic
FuzzyClassifier associées aux cartes d'acquisition
Charge une règle de classification (RuleSet), l’applique à l’ensemble d’objets créé et retourne les valeurs de confiance
GlobalMeasurements.apm Calcule un certain nombre de mesures globales
HistogramAccess.apm Accède aux valeurs d'un histogramme depuis
BasicScript
ImageAccess.apm
ImageFlickerView.apm
Lit et écrit les pixels d'une image depuis BasicScript
Affiche successivement 2 images dans la même fenêtre pour les comparer
ImageRefresh.apm
ImgBoxes.apm
Inhibition de l’affichage des images pour accélérer le temps d’exécution de la macro
Transforme des régions en boîtes circonscrites puis les filtre
ImgChains.apm Extrait des chaînes d’une image à teinte de gris
ImgHistogramChart.apm Utilise les fonctions associées au serveur graphique
43
APHELION 3.2 - Manuel d’installation & Didacticiel
ImgLines.apm
ImgRead.apm
ImportFromExcel.apm
LineROI.apm afin de visualiser l’histogramme d'une image
Extrait des lignes dans une image à teinte de gris
Choix d'une image, puis chargement dans la MDI.
Cette macro peut être utilisée comme une sousroutine
Importe les données d’une feuille Excel dans un ensemble d’objets Aphelion
Crée des régions d’intérêt qui sont dérivées d’un ensemble d’objet de type segments de droite mesures
ObjectAccess.apm graphiques
Accède aux attributs des objets ISR depuis Basic
ObjHistogramChart.apm Utilise les fonctions associées au serveur graphique afin d’afficher l'histogramme d'un objet
PrintPage.apm
ProcessDialog.apm
Utilisation des fonctions d'impression depuis Basic
Affiche une boîte de dialogue permanente afin de lancer des opérations sur une image
RegionMorphology.apm Transformations morphologiques appliquées à des régions ISR
RegionRotate.apm Rotation d'objets ISR
ReinitRefresh.apm ajustement
Initialise le rafraîchissement de l’affichage des images (annule DeferRefresh)
ShowImageSequence.apm affichage une séquence d’images 2D
ViewManipulation.apm Gestion de la taille et de la position de fenêtres de la
MDI depuis BasicScript
11.3 Description détaillée d’une Macro : Ceramic.apm
La description détaillée de la macro-commande Ceramic.apm, une des macros standards disponibles sous Aphelion, a pour but :
44
APHELION 3.2 - Manuel d’installation & Didacticiel
• d’extraire toutes les fibres (objets circulaires et sombres),
• de mesurer la surface, l’élongation et la circularité de chaque fibre,
• de fournir les coordonnées en pixels de la position de chaque fibre.
Ceramic.tif est une image de microscopie électronique à balayage. Les valeurs de ses pixels s’étendent de 1 à 255. Dans cette macro, les fibres sont segmentées en utilisant un seuillage des niveaux de gris. Des opérateurs morphologiques sont utilisés pour nettoyer l’image. Une analyse individuelle de fibres est ensuite effectuée. A partir des mesures qui en découlent, les fibres sont filtrées.
Cette macro montre aussi comment utiliser BasicScript, langage interprété compatible
Visual Basic, afin de créer des boîtes de dialogue.
Remarque : dans cet exemple, le code de la macro apparaît dans les boîtes et les annotations en texte normal. Pour de plus amples informations concernant les commandes de BasicScript, référez-vous au Guide de Référence des Macros, disponible depuis le menu Aide d’Aphelion.
Dans BasicScript, tous les commentaires écrits dans une macro doivent être précédés d’une apostrophe. Une autre alternative est d’utiliser la commande rem.
'-----------------------------------------
'* Ceramic.apm *
'-----------------------------------------
'* Originator: GG *
'* Date of creation: 27/01/96 *
'* Date of last modifications: 26/09/96 *
'-----------------------------------------
Toute sous-routine doit avoir un nom. Dans Aphelion, le nom par défaut est main, mais tout autre nom peut lui être attribué. Une sous-routine peut en appeler une autre, en utilisant le concept de librairie de macros.
45
APHELION 3.2 - Manuel d’installation & Didacticiel
Sub main
'-----------------------------------------
Declarations
'-----------------------------------------
'The following declarations define two integer variables breaktime and bt1000.
Dim breaktime As Integer
Dim bt1000 As Integer
La partie de code suivante définit une boîte de dialogue permettant de spécifier la suppression ou non de toutes les images en fin d’exécution. Les valeurs 180 et 48 correspondent à la taille de la boîte de dialogue. La chaîne de caractères "Aphelion
Dialog Box" est le texte qui apparaît dans la bannière de la boîte de dialogue.
Begin Dialog YesNoDialog ,,180,48,"Aphelion Dialog
Box"
Text 4,8,108,8,"Do you want to free all images?",.Text1
End Dialog
La variable ABox est définie comme une boîte de dialogue de type YesNoDialog.
Dim ABox As YesNoDialog
Lorsque cette variable est utilisée dans l’appel de la fonction Dialog, la fenêtre suivante apparaît alors dans Aphelion :
46
APHELION 3.2 - Manuel d’installation & Didacticiel
La déclaration suivante définit une boîte de dialogue pour spécifier le temps de pause.
En fonction du choix de l’utilisateur, les variables OptionButton1, 2 et 3 seront égales
à 0 ou 1. Les autres valeurs numériques correspondent aux tailles et positions des boutons OK et des trois options.
Begin Dialog BreakTimeDialog ,,189,76,"Break Time_
"No break during the execution",.OptionButton1
"messages displayed during 3 sec.",.OptionButton2
"messages displayed during 5 sec.",.OptionButton3
End Dialog
La variable Breakbox est définie comme une boîte de dialogue de type
BreakTimeDialog, définie ci-dessus.
Dim BreakBox As BreakTimeDialog
Cette variable utilisée dans l’appel de la fonction Dialog affiche la fenêtre suivante :
La déclaration ci-dessous définit une boîte de dialogue pour spécifier les filtres qui seront appliqués sur les objets ISR. Toutes les valeurs numériques correspondent aux positions et tailles des boutons et textes.
47
APHELION 3.2 - Manuel d’installation & Didacticiel
Begin Dialog FilterBox,,172,100,"Object Filtering"
"The filtering of the fibers is based on:",_
.Text1,"Arial",9,ebBold
CheckBox 16,36,68,8,"Surface area",.surface
End Dialog
La variable FBox est définie comme une boîte de dialogue de type FilterBox.
Dim FBox As FilterBox
Cette variable utilisée dans l’appel de la fonction Dialog affiche la fenêtre suivante :
Aphelion supporte la 4- et la 8-connexités. Les deux variables suivantes seront utilisées dans l’opération d’étiquetage pour spécifier le nombre de pixels voisins considérés. graph4C = AphNgbGraph("2D 4-connected") graph8C = AphNgbGraph("2D 8-connected")
Après ces déclarations, le programme commence.
'-----------------------------------------
'Main program *
'-----------------------------------------
48
APHELION 3.2 - Manuel d’installation & Didacticiel
En premier lieu, à l’aide de la fonction Dialog et de la variable BreakBox, la boîte de dialogue pour sélectionner le temps de pause entre deux opérations s’affiche. La fonction Dialog retourne -1 si le bouton OK a été cliqué ou 0 si c’est le bouton
CANCEL. Le bouton CANCEL n’étant pas disponible, seule la valeur -1 peut apparaître. Lorsque le bouton OK a été cliqué, la variable BreakBox.OptionGroup1 indique quelle option a été sélectionnée. Cette variable peut prendre les valeurs 0, 1 ou 2. response% = Dialog(BreakBox)
La commande Select Case permet l’exécution conditionnelle de lignes de programme en fonction de la valeur d’une variable. Ceci est particulièrement utile pour le contrôle de la sélection des boutons d’un dialogue.
Select Case response%
Case -1' OK button
If BreakBox.OptionGroup1 = 0 Then breaktime = 0
Else
If BreakBox.OptionGroup1 = 1 Then
Else breaktime = 5
Case 0 ' Cancel button
MsgBox "Cancel button doesn't exist!"
End Select
Dans BasicScript, tous les temps sont définis en millisecondes. Le nombre de secondes spécifié par la variable BreakBox.OptionGroup1 est donc multiplié par
1000. bt1000 = breaktime * 1000
L’image ceramic.tif est chargée depuis le disque dur et une nouvelle image est créée dans Aphelion à l’aide de l’opérateur AphImgNew. Le chemin complet du fichier image doit être spécifié. original = AphImgNew()
AphImgRead original, "c:\Aphelion\Images\Ceramic.tif"
49
APHELION 3.2 - Manuel d’installation & Didacticiel
La commande MsgOpen permet d’afficher une chaîne de caractères dans une boîte de la MDI. La command Sleep génère une pause d’une durée définie (ici, par breaktime). Enfin, à l’aide de la commande MsgClose, vous fermerez la fenêtre de message ouverte par MsgOpen.
MsgOpen "Composite material in a ceramics matrix",_
Sleep bt1000
MsgClose
Les messages qui suivent sont destinés à guider l’utilisateur. Le second message lui recommande de spécifier les seuils 1 et 117 pour le seuillage. En fait, la fonction
AphImgThreshold comporte trois paramètres, les images d’entrée et de sortie et les valeurs de seuils. Comme l’un des paramètres a été omis, l’exécution de la macro sera interrompue afin que l’utilisateur puisse entrer les valeurs non définies (ici, les seuils). Cependant, BasicScript ne permet pas d’omettre le premier paramètre, et les paramètres supprimés de la ligne de commande doivent l’être de la droite vers la gauche obligatoirempent. Si vous désirez rentrer interactivement le premier paramètre, supprimez au moins un paramètre (le dernier) ; la boîte de dialogue opérateur s’ouvrira lors de l’exécution de la commande et vous pourrez alors modifier le premier paramètre interactivement.
MsgOpen "The gray level histogram of this image_
Includes two modes", breaktime, False, False
Sleep bt1000
MsgClose
MsgOpen "A threshold will segment the two phases",_
Sleep bt1000
MsgClose
MsgOpen "Specify Low as 1 and High as 117", 0, False,_
False
Sleep 3000
Les lignes suivantes présentent un seuillage de l’image originale vers une nouvelle image appelée Binary1. Ce nom apparaîtra dans la bannière de la fenêtre et permettra
également à l’utilisateur de rappeler cette image pour d’autres traitements. Comme
50
APHELION 3.2 - Manuel d’installation & Didacticiel
indiqué plus haut, l’argument AphThreshold de AphImgThreshold n’a pas été spécifié afin de rendre le seuillage interactif. b1 = AphImgNew("Binary1")
AphImgThreshold original,b1
MsgClose
MsgOpen "Interactive gray level Thresholding",_
breaktime, False
Sleep bt1000
MsgClose
L’image binaire résultant du seuillage inclut les fibres ainsi que des parties du fond
(pixels les plus sombres). Les fibres étant plus larges que le bruit de fond, une dilatation morphologique de l’image originale (avec un élément structurant de taille supérieure au bruit et inférieure aux fibres) permet de supprimer les pixels les plus sombres.
La commande AphImgDilate appliquera une dilatation en niveaux de gris de taille 3, avec un élément structurant carré, à l’image originale. Le résultat de la transformation est l’image Image1. i1 = AphImgNew("Image1")
AphImgDilate original,i1,AphSElement("Square",3)
Un nouveau seuillage est effectué pour extraire les germes des fibres. Les seuils sont mis à 0 et 117. Le seuillage est exécuté sur l’image dilatée et l’image résultat, ne contenant plus de bruit de fond, est appelée Binary2. b2 = AphImgNew("Binary2")
AphImgThreshold i1,b2,AphThreshold(0,117)
La fonction suivante, AphImgReconstruct, est une reconstruction binaire de la première image binaire (fibres et bruit de fond) à partir de l’image binaire des germes de fibres. L’image résultante contient toutes les fibres de la première image binaire, reconstruites à l’identique, ayant au moins un germe dans la seconde image binaire.
Ici, la reconstruction utilise la 4-connexité, ce qui signifie que la reconstruction s’effectue de proche en proche en considérant que chaque pixel a quatre voisins dans les directions 0, 90, 180 et 270 degrés (les pixels ayant une arête communes). b3 = AphImgNew("Binary3")
AphImgReconstruct b1,b2,b3,graph4C
51
APHELION 3.2 - Manuel d’installation & Didacticiel
La fonction suivante, AphImgFree, supprime les images binaires Binary1 et Binary2, qui ne sont plus nécessaires pour la suite de l’application.
AphImgFree b1
AphImgFree b2
Certaines fibres de l’image binaire sont encore connectées. L’utilisation d’opérateurs de segmentation binaire basés sur des techniques de morphologie mathématique segmenteront toutes les fibres. L’opérateur AphImgClustersSplitConvex est basé sur l’algorithme de la ligne de partage des eaux. b4 = AphImgNew("Binary4")
AphImgClustersSplitConvex b3, b4, 10, graph4C
AphImgHoleFill est maintenant appliqué pour boucher les trous dans les fibres de l’image binaire précédente.
AphImgHoleFill b4, b4, graph8C
AphImgBorderKill élimine les objets intersectant les bords de l’image (fibres incomplètes). Remarquez qu’ici les images d’entrée et de sortie sont identiques.
Cette caractéristique est supportée par Aphelion pour tous les opérateurs qui ont une image d’entrée et une image de sortie de même classe et de même type. Cet opérateur utilise la 4-connexité.
AphImgBorderKill b4, b4, graph4C
L’opérateur AphImgClustersToLabels génère une image étiquette à partir d’une image binaire. Dans l’image étiquette, un niveau de gris différent est associé à chaque objet.
Tous les pixels d’un même objet connexe ont la même valeur. Les valeurs des
étiquettes varient de 1 au nombre d’objets. Le premier objet est le premier rencontré lors d’un balayage de gauche à droite, et de haut en bas. L’étiquetage est effectué en prenant en compte la connexité. l1 = AphImgNew("Label")
AphImgClustersToLabels b4, l1,_
AphImgFree b4
52
APHELION 3.2 - Manuel d’installation & Didacticiel
Après l’étiquetage, il est alors possible de passer de la représentation image à la représentation symbolique. L’ensemble d’objets appelé FIBERS est alors créé par l’opérateur AphImgLabelsObj. L’ensemble d’objets FIBERS a une représentation spatiale de type Region des fibres et quelques attributs de base (scalar attributes), tels que le nombre de pixels de chaque région. Une manière d’analyser ces données est d’utiliser les fonctionnalités de la grille d’Aphelion. Une grille est comparable à un tableau de mesures ou un tableur dans lequel chaque ligne correspond à une étiquette ou objet et chaque colonne à un attribut ou mesure.
AphImgLabelsObj l1, AphObjNew("FIBERS")
Après avoir créé les objets FIBERS, il est possible d’analyser chaque région et de calculer leur enveloppe convexe à partir de la représentation en région, le meilleur moyen pour calculer l’enveloppe convexe d’un objet étant de le faire à partir de ses contours.
AphRegionConvexHullPolygons AphObj("FIBERS")
Les objets FIBERS peuvent être affichés dans une grille (attributs scalaires) ou en superposition à l’image (représentation spatiale – régions remplies ou contourées).
L’opérateur AphObjDraw dessine ici le contour des objets FIBERS, sous forme polygonale, sur l’image originale.
AphObjDraw original, AphObj("FIBERS"), "POLYGON"
L’ensemble d’objets contient une information complète sur les fibres. Vous pouvez filtrer les objets à partir des mesures de base ou calculer l’ensemble des mesures sur les fibres en utilisant AphObjComputeMeasurements.
P
IXEL
C
OUNT
P
OLYGON
.E
XTENTS
.
LL
.X
P
P
OLYGON
OLYGON
.E
.E
XTENTS
XTENTS
.
.
LL
UR
.Y
.X
Nombre de pixels dans chaque objet
Coordonnée en X de plus faible valeur du polygone
Coordonnée en Y de plus faible valeur du polygone
Coordonnée en X de plus forte valeur du polygone
53
APHELION 3.2 - Manuel d’installation & Didacticiel
P
P
R
R
R
R
OLYGON
OLYGON
EGION
EGION
EGION
EGION
.E
.E
.E
.E
.E
.N
XTENTS
.
UR
UMPOINTS
XTENTS
XTENTS
XTENTS
XTENTS
.
.
.
.
LL
LL
UR
UR
.X
.Y
.Y
.X
.Y
Coordonnée en Y de plus forte valeur du polygone
Nombre de côtés de l’enveloppe convexe de l’objet
Coordonnée en X de plus faible valeur de la région
Coordonnée en Y de plus faible valeur de la région
Coordonnée en X de plus forte valeur de la région
Coordonnée en Y de plus forte valeur de la région
La boîte de dialogue FBox permet à l’utilisateur de choisir quel filtre il désire appliquer. Quatre filtres sont proposés en fonction de quatre paramètres : surface, position, élongation et compacité. response% = Dialog(FBox)
Select Case response%
Case –1' OK button
If FBox.surface Then
La fonction suivante filtre l’ensemble d’objets FIBERS et envoie le résultat dans l’ensemble d’objets SURFACE. L’attribut sur lequel le filtrage est effectué est
PIXEL_COUNT. Les seuils bas et haut sont respectivement égaux à 1000 et 1400.
AphObjNew("SURFACE"),
1000,
AphObjDraw affiche l’ensemble d’objets résultant sur l’image originale.
AphObjDraw i1, AphObj("SURFACE"), "POLYGON"
54
APHELION 3.2 - Manuel d’installation & Didacticiel
La fonction suivante filtre les objets en fonction de leur position dans l’image.
Comme la valeur d’étiquette la plus petite correspond à l’objet placé le plus haut dans l’image, il suffit de filtrer selon la valeur de TOKEN_INDEX. Les seuils choisis sont
1 et 10. Un nouvel ensemble d’objets ISR nommé LOCATION est alors créé.
If FBox.location Then
AphObjNew("LOCATION"),
AphObjDraw i2, AphObj("LOCATION"), "POLYGON"
MsgOpen "Selection of the 10 first fibers",_ breaktime, False
MsgClose
La fonction suivante filtre les objets selon la valeur de l’élongation. Cette mesure est calculée sur les régions et non sur les contours. Les seuils choisis sont 0 et 0.05
(c’est-à-dire les régions les moins allongées). Un nouvel ensemble d’objets ISR nommé ELONGATION est créé.
If FBox.elongation Then
AphObjDraw i3, AphObj("ELONGATION"), "POLYGON"
MsgOpen "Fibers with elongation between 0 and
0.05",_ breaktime, False
MsgClose
La fonction suivante filtre les objets selon leur circularité. D’abord, la fonction
AphObjAttributeRatio génère un nouvel attribut nommé A1, égal à AREA divisé par
PERIMETER pour chaque objet. Ensuite, un autre attribut, A2, est généré ; il est égal
à A1 divisé par PERIMETER, ou encore à AREA divisé par le carré de
55
APHELION 3.2 - Manuel d’installation & Didacticiel
PERIMETER. La circularité est définie par ce rapport. Les deux seuils choisis sont
0.045 et 0.06. Ce filtre montre comment créer de nouveaux attributs à partir d’attributs existants. Pour plus d’information sur la création de nouveaux attributs à partir de BasicScript, référez-vous aux fonctions dont le nom commence par AphObj, comme AphObjAttributeRatio, AphObjAddAttribute ou AphObjSetAttribute. Le résultat final est affiché en superposition sur l’image originale.
If FBox.compacity Then
"PIXEL_COUNT", "A1"
"PERIMETER",
AphObjNew("COMPACITY"),
AphObjDraw i4, AphObj("COMPACITY"), "POLYGON"
MsgOpen "Fibers whose shape is close to a circle",_ breaktime, False
MsgClose
Case 0' Cancel button
MsgBox "Cancel button doesn't exist!"
End Select
Cette dernière boîte de dialogue demande à l’utilisateur s’il désire ou non supprimer toutes les images et les objets créés durant l’exécution de la macro. Le premier choix est la suppression de toutes ces images et de ces objets ; ABox.OptionGroup1 prend alors la valeur 0. La variable response% est la valeur retournée par la fonction
Dialog. response% = Dialog(ABox)
If ABox.OptionGroup1 = 0 Then
If (i1<>0) Then
56
APHELION 3.2 - Manuel d’installation & Didacticiel
If (i2<>0) Then
If (i3<>0) Then
If (i4<>0) Then
End If
C’est la fin de la macro et de la sous-routine main. L’appel de la fonction End Sub termine cette sous-routine.
End Sub
57
APHELION 3.2 - Manuel d’installation & Didacticiel
ImgCos
ImgDivide
ImgExp
ImgExp10
ImgInvert
ImgLog
ImgLog10
12. LISTE DES OPERATEURS D’APHELION
12.1 Arithmétique/Logique
12.1.1 Arithmétique
ImgAbsValue retourne une image dont chaque pixel est la valeur absolue du pixel correspondant de l’image source.
ImgACos
ImgAdd retourne une image dont chaque pixel est l’Arc Cosinus du pixel correspondant de l’image d’entrée. retourne une image dont chaque pixel est l’addition des pixels correspondants des images d’entrée.
ImgASin
ImgATan
ImgBlend retourne une image dont chaque pixel est l’Arc Sinus du pixel correspondant de l’image d’entrée. retourne une image dont chaque pixel est l’Arc Tangente du pixel correspondant de l’image d’entrée. retourne une image dont chaque pixel est la combinaison de type fusion alpha des pixels correspondants dans les images d’entrée. Le facteur de fusion étant défini ainsi : retourne une image dont chaque pixel est le Cosinus du pixel correspondant de l’image d’entrée. retourne une image dont chaque pixel est la division des pixels correspondants des images d’entrée. retourne une image dont chaque pixel est l’Exponentiel népérien du pixel correspondant de l’image d’entrée. retourne une image dont chaque pixel est l’Exponentiel à base 10 du pixel correspondant de l’image d’entrée. retourne l’image opposée de l’image source. retourne une image dont chaque pixel est le Logarithme népérien du pixel correspondant de l’image d’entrée. retourne une image dont chaque pixel est le Logarithme à base 10 du pixel correspondant de l’image d’entrée.
58
APHELION 3.2 - Manuel d’installation & Didacticiel
ImgMask
ImgMatrixMultiply multiplie une image par une matrice.
ImgMaximum retourne une image dont chaque pixel est le maximum des pixels correspondants des images d’entrée.
ImgMinimum conserve toutes les valeurs des pixels sous le masque défini par l’utilisateur et met à zéro toutes les autres.
ImgMultiply
ImgRemainder retournenvoie une image dont chaque pixel est le minimum des pixels correspondants des images d’entrée. retourne une image dont chaque pixel est la division des pixels correspondants des images d’entrée. renvoie une image dont chaque pixel est le reste du pixel correspondant dans l’image d’entrée divisé par une constante entière.
ImgSin
ImgSqr
ImgSqrt
ImgSubtract
ImgTan retourne une image dont chaque pixel est le Sinus du pixel correspondant de l’image d’entrée. retourne une image dont chaque pixel est le carré du pixel correspondant de l’image d’entrée. retourne une image dont chaque pixel est la racine carrée du pixel correspondant de l’image d’entrée. retourne une image dont chaque pixel est la soustraction des pixels correspondants des images d’entrée. retourne une image dont chaque pixel est la Tangente du pixel correspondant de l’image d’entrée.
12.1.2 Logique bit-à-bit
ImgBitAnd retourne une image dont chaque pixel est le Et logique bit à bit des pixels correspondants de 2 images.
ImgBitDifference calcule les différences bit-à-bit des pixels de 2 images.
ImgBitNot
ImgBitOr
ImgBitXNor calcule le complément bit-à-bit des pixels de l’image d’entrée retourne une image dont chaque pixel est le Ou logique bit à bit des pixels correspondants de 2 images. retourne une image dont chaque pixel est le Non Ou
Exclusif bit à bit des pixels correspondants de 2 images.
59
APHELION 3.2 - Manuel d’installation & Didacticiel
ImgBitXOr retourne une image dont chaque pixel est le Ou Exclusif bit à bit des pixels correspondants de 2 images.
ImgLeftShift/ImgRightShift opère le décalage à gauche/droite des bits de chaque pixel de l’image. Si le type de donnée est non signé, cet opérateur utilise un décalage logique (overflow). Si le type de donnée est signé, il utilise un décalage arithmétique.
12.1.3 Logique
ImgAnd
ImgLogicalDifference retourne une image dont chaque pixel est la différence logique des pixels correspondants de 2 images.
ImgNand retourne une image dont chaque pixel est le Et logique des pixels correspondants de 2 images.
ImgNor retourne une image dont chaque pixel est le Non Et logique des pixels correspondants de 2 images. retourne une image dont chaque pixel est le Non Ou logique des pixels correspondants de 2 images.
ImgNot
ImgOr
ImgXnor
ImgXor retourne une image dont chaque pixel est le Non logique du pixel correspondant dans l’image d’entrée. retourne une image dont chaque pixel est le Ou logique des pixels correspondants de 2 images. retourne une image dont chaque pixel est le Non Ou exclusif logique des pixels correspondants de 2 images. retourne une image dont chaque pixel est le Ou exclusif logique des pixels correspondants de 2 images.
12.1.4 Constantes
ImgAddConstant ajoute une valeur constante à tous les pixel de l’image.
ImgMultiplyConstant multiplie par une constante tous lews pixels de l’image.
ImgSubtractConstFloor soustrait une valeur constante à tous les pixels de l’image.
60
APHELION 3.2 - Manuel d’installation & Didacticiel
12.2 Filtrage
12.2.1 Convolution
ImgConvolve convolue l’image d’entrée par un noyau de taille quelconque défini par l’utilisateur.
ImgSeparableConvolve opère une convolution séparable sur l’image. Le premier noyau est orienté selon l’axe des x et le second selon l’axe des y.
12.2.2 Filtrage passe-bas
ImgBlur convolue l’image d’entrée par un noyau de lissage 5x5.
L’application de ce filtre retourne une image paraissant floue.
ImgBoxfilter
ImgGaussianFilter effectue sur l’image un filtrage dit «de boîte» par un noyau de taille définie par l’utilisateur. effectue une convolution récursive de l’image par un noyau de type Gaussien.
ImgLowPass3x3
ImgLowPass5x5
ImgLowPass7x7 effectue le filtrage passe-bas en convoluant l’image par un noyau 3x3. Ce noyau est le noyau LOW_PASS_3x3 décrit dans PIKS. effectue le filtrage passe-bas en convoluant l’image par un noyau 5x5. effectue le filtrage passe-bas en convoluant l’image par un noyau 7x7.
12.2.3 Filtrage passe-haut
ImgHighPass3x3 effectue le filtrage passe-haut par un noyau 3x3. Le noyau de ce filtre est le noyau HIGH_PASS_2_3x3 décrit dans PIKS.
ImgHighPass5x5 effectue le filtrage passe-haut par un noyau 5x5.
ImgHighPass7x7 effectue le filtrage passe-haut par un noyau 7x7.
61
APHELION 3.2 - Manuel d’installation & Didacticiel
ImgLaplacian
ImgLaplacian3x3
ImgLaplacian5x5
ImgLaplacian7x7
ImgLowStop effectue la détection de contours par convolution de l’image par un noyau Laplacien de taille 3x3 (cf. PIKS
LAPLACIAN_1 kernel). effectue la détection de contours par convolution de l’image par un noyau Laplacien de taille 3x3 (cf. PIKS
LAPLACIAN_2 kernel). effectue la détection de contours par convolution de l’image par un noyau Laplacien de taille 5x5. effectue la détection de contours par convolution de l’image par un noyau Laplacien de taille 7x7. effectue un filtrage rapide coupe-bas par soustraction de l’image source et de cette même image sur laquelle est appliqué un filtrage passe-bas. Le niveau de coupure définit la gamme de basses fréquences à supprimer.
12.2.4 Filtrage d’amélioration d’image
ImgMedian effectue un filtrage médian sur un voisinage défini par l’utilisateur.
ImgMedian3x3 effectue un filtrage médian sur un voisinage 3x3.
ImgMedian5x5
ImgMode
ImgMode3x3
ImgNagaoFilter effectue un filtrage médian sur un voisinage 5x5. effectue un filtrage modal sur un voisinage défini par l’utilisateur. effectue un filtrage modal sur un voisinage 3x3. effectue un lissage dans la direction de moindre variance afin de réhausser les contours. Cet opérateur est basé sur un algorithme proposé par Nagao et Matsuyama.
ImgRankValueFilter applique un filtre d’ordre défini par l’utilisateur à l’image source.
ImgWallisFilter amplifie les pixels par un facteur dépendant de l’écarttype des pixels du voisinage. Ce filtre est dérivé de l’opérateur wallis_statistical_differencing décrit dans
PIKS.
62
APHELION 3.2 - Manuel d’installation & Didacticiel
ImgWeymouthFilter effectue le filtre de réhaussement proposé par Weymouth et Overton.
12.3 Détection de contour
12.3.1 Opérateurs Laplacien
ImgLaplacian effectue la détection de contours par convolution de l’image par un noyau Laplacien de taille 3x3 (cf. PIKS
LAPLACIAN_1 kernel).
12.3.2 Opérateurs morphologiques
ImgExternalGradient effectue une détection de contour en soustrayant l’image source à son dilaté.
ImgInternalGradient effectue une détection de contour par soustraction de l’image source et de son érodé.
ImgMorphGradient effectue une détection de contour par soustraction du dilaté de l’image source et de son érodé.
12.3.3 Opérateurs linéaires
ImgCannyDericheEdges applique le gradient récursif développé par Deriche.
ImgOneByTwoEdges opère la détection des arêtes horizontales et verticales en appliquant des noyaux 1x2 et 2x1 prédéfinis.
ImgPrewittEdges extrait les pixels dont les amplitudes du gradient obtenues par les noyaux de Prewitt sont au moins égaux au seuil défini.
ImgRobertsEdges
ImgSobelEdges applique deux noyaux 2x2 proposés par Roberts ; l’un détecte les arêtes orientées selon la diagonale Nordouest/Sud-est et l’autre selon la diagonale Sudouest/Nord-est. extrait les pixels dont les amplitudes du gradient obtenues par les noyaux de Sobel sont au moins égaux au seuil défini.
63
APHELION 3.2 - Manuel d’installation & Didacticiel
ImgZeroCrossEdges extrait les pixels dont la dérivée seconde passe par zéro
(cet opérateur est basé sur l’algorithme proposé par Marr et Hildreth).
12.3.4 Opérateurs non-linéaires
ImgRidgeValleyEdges détecte les points de crêtes (ridge) ou de thalwegs
(valley) de l’image.
12.3.5 Utilitaire
ImgEdgesThin opère un amincissement des contours par suppression des valeurs non maximales dans un voisinage local.
12.4 Morphologie mathématique
12.4.1 Erosion/Dilatation
ImgDilate effectue la dilatation morphologique de l’image d’entrée en utilisant un élément structurant défini.
ImgErode effectue l’érosion morphologique de l’image d’entrée en utilisant un élément structurant défini.
12.4.2 Ouverture/Fermeture
ImgClose effectue la fermeture morphologique de l’image d’entrée en utilisant un élément structurant défini.
ImgOpen effectue l’ouverture morphologique de l’image d’entrée en utilisant un élément structurant défini.
12.4.3 Distance
ImgGraphDistance calcule la fonction distance de l’image binaire d’entrée en utilisant un voisinage 4-connexe ou 8-connexe.
ImgChamferDistance calcule pour tous les pixels non nuls la distance en 4connexité au plus proche pixel nul en utilisant un algorithme séquentiel rapide.
ImgEuclideanDistance calcule la distance euclidienne de tout pixel non nul au plus proche pixel nul.
64
APHELION 3.2 - Manuel d’installation & Didacticiel
12.4.4 Points caractéristiques
ImgExtentedRegionalMaxima extrait les maxima régionaux filtrés (sur un critère de hauteur) de l’image d’entrée.
ImgExtendedRegionalMinima extrait les minima régionaux filtrés (sur un critère de profondeur) de l’image d’entrée.
ImgLocalMaxima extrait les maxima locaux de l’image d’entrée.
ImgLocalMinima extrait les minima locaux de l’image d’entrée.
ImgRegionalMaxima extrait les maxima régionaux de l’image d’entrée.
ImgRegionalMinima: extrait les minima régionaux de l’image d’entrée.
ImgUltimateErodedSet extrait les érodés ultimes de l’image binaire d’entrée.
12.4.5 Géodésie
ImgBorderKill supprime les ensembles connexes de pixels non nuls intersectant le bord de l’image.
ImgBorderKillAndHoleFill applique à la fois ImgBorderKill et ImgHoleFill.
ImgGeodesicDilate effectue une dilatation géodésique de l’image d’entrée en utilisant un élément structurant défini.
ImgGeodesicGraphDistance calcule l’image des distances géodésiques, c’est-àdire à l’intérieur d’un masque spécifié, de l’image binaire d’entrée.
ImgHoleFill remplit les trous des ensembles connexes de pixels non nuls de l’image binaire d’entrée.
ImgReconstruct effectue la reconstruction de l’image d’entrée sous une image de référence.
12.4.6 Ligne de partage des eaux
ImgCatchmentBasins calcule les bassins versants d’une image à niveaux de gris.
ImgConstrainedCatchmentBasins calcule les bassins versants de l’image d’entrée, dont les marqueurs sont imposés.
65
APHELION 3.2 - Manuel d’installation & Didacticiel
ImgConstrainedWatershed calcule la ligne de partage des eaux de l’image d’entrée dont les marqueurs des bassins versants sont imposés.
ImgWatershed calcule la ligne de partage des eaux d’une image à niveaux de gris.
12.4.7 Opérateurs morphologiques évolués
ImgAddReconsClose ajoute une constante à l’image d’entrée et reconstruit l’image résultante sur celle-ci en effectuant des érosions géodésiques.
ImgAreaClose effectue la fermeture morphologique par un élément structurant de forme quelconque et de taille définie.
ImgAreaOpen effectue l’ouverture morphologique par un élément structurant de forme quelconque et de taille définie.
ImgDilateReconsClose dilate l’image d’entrée et reconstruit l’image résultante sur celle-ci en effectuant des érosions géodésiques.
ImgErodeReconsOpen érode l’image d’entrée et reconstruit l’image résultante sous celle-ci en effectuant des dilatations géodésiques.
ImgInfimumClose effectue l’intersection des fermetures de l’image d’entrée par des segments dans toutes les directions.
ImgSubtractReconsOpen soustrait une constante à l’image d’entrée et reconstruit l’image résultante sous celle-ci en effectuant des dilatations géodésiques.
ImgSupremumOpen effectue l’union des ouvertures de l’image d’entrée par des segments dans toutes les directions.
12.4.8 Amincissement/Epaississement
ImgConstrainedThicken applique un épaississement à l’image d’entrée dont les points sélectionnés par l’utilisateur ne peuvent être
épaissis (points d’ancrage).
ImgConstrainedThin applique un amincissement sur l’image d’entrée dont les points sélectionnés par l’utilisateur ne peuvent être amincis (points d’ancrage).
66
APHELION 3.2 - Manuel d’installation & Didacticiel
ImgHitOrMiss
ImgThicken
ImgThin applique à l’image d’entrée une transformation tout-ourien dont la configuration de voisinage est définie par l’utilisateur. effectue un épaississement de l’image d’entrée par une configuration de voisinage définie par l’utilisateur. effectue un amincissement de l’image d’entrée par une configuration de voisinage définie par l’utilisateur.
12.4.9 Squelettisation
ImgConnectedSkeleton calcule le squelette connexe minimal contenant les centres des boules maximales.
ImgMinimalSkeleton calcule le squelette connexe minimal contenant les
érodés ultimes.
ImgThickenSkeleton calcule l’anti-squelette par épaississement.
ImgThinSkeleton calcule le squelette par amincissement.
12.4.10 Filtrage morphologique
ImgAlternateSequential applique à l’image d’entrée un filtre alterné séquentiel dont l’élément structurant et sa taille maximale est définie par l’utilisateur. Un filtre alterné séquentiel est une succession de fermeture et d’ouverture de taille croissante.
ImgAutoMedian applique le filtre auto-médian à l’image source.
12.4.11 Contraste
ImgMorphContrast effectue deux transformations morphologiques, l’une est extensive (typiquement la dilatation) et l’autre antiextensive (typiquement l’érosion), et retourne dans l’image résultante pour chaque pixel la valeur la plus proche de la valeur du pixel correspondant de l’image d’entrée.
67
APHELION 3.2 - Manuel d’installation & Didacticiel
12.5 Transformations fréquentielles
12.5.1 Fourier
ImgFFT
ImgInverseFFT
ImgPeakMask effectue la transformée de Fourier rapide de l’image d’entrée. effectue la transformée de Fourier inverse rapide de l’image d’entrée (de type Frenquency). multiplie ou divise par une constante tous les pixels sous un masque défini interactivement.
12.5.2 Filtres basse fréquence
ImgLPButterworthFilter calcule le filtre passe-bas de Butterworth associé à un masque défini par l’utilisateur.
ImgLPExponentialFilter calcule le filtre passe-bas de type exponentiel associé à un masque défini par l’utilisateur.
ImgLPRectangularFilter calcule le filtre passe-bas de type rectangulaire associé
à un masque défini par l’utilisateur.
ImgLPTrapezialFilter calcule le filtre passe-bas de type trapézoïdal associé à un masque défini par l’utilisateur.
12.5.3 Filtres haute fréquence
ImgHPButterworthFilter calcule le filtre passe-haut de Butterworth associé à un masque défini par l’utilisateur.
ImgHPExponentialFilter calcule le filtre passe-haut de type exponentiel associé
à un masque défini par l’utilisateur.
ImgHPRectangularFilter calcule le filtre passe-haut de type rectangulaire associé
à un masque défini par l’utilisateur.
ImgHPTrapezialFilter calcule le filtre passe-haut de type trapézoïdal associé à un masque défini par l’utilisateur.
68
APHELION 3.2 - Manuel d’installation & Didacticiel
12.6 Transformations
12.6.1 Géométriques
ImgCenter centre l’image en déplaçant deux à deux les quarts d’image opposés.
ImgFlip retourne l’image autour d’un axe donné.
ImgRotate
ImgScale
ImgShear effectue une rotation de l’image autour de son centre. applique un facteur d’échelle à chacun des axes Ox et Oy de l’image. effectue une transformation géométrique affine de type cisaillement de l’image.
ImgTranslate
ImgTranspose effectue une translation de l’image. transpose une image par rapport à l’axe central vertical, à l’axe central horizontal ou encore à l’axe des diagonales principales.
ImgWarpControlPoint corrige le gauchissement bi-dimensionnel de l’image source en utilisant la matrice calculée à partir des couples de points de contrôle définis par l’utilisateur sur l’image
à déformer et l’image de référence.
12.6.2 Utilitaires
ImgCartesianToPolar transforme une image définie dans un espace de coordonnées cartésiennes en une image définie dans un espace de coordonnées polaires.
ImgPolarToCartesian transforme une image définie dans un espace de coordonnées polaires en une image définie dans un espace de coordonnées cartésiennes.
12.6.3 Couleur
ImgColorToRGB convertit une image couleur RVB en 3 images monochromes représentant les bandes Rouge, Verte et
Bleue.
69
APHELION 3.2 - Manuel d’installation & Didacticiel
ImgExcessRGB
ImgExpandRGB
ImgHSIToRGB convertit une image monochrome à laquelle est appliquée une palette en une image couleur (image
RVB). convertit une image Teinte/Saturation/Intensité en une image RVB.
ImgNormalizedRGB convertit l’image couleur RVB en l’image couleur dont les 3 bandes sont respectivement définies par:
R/(R+V+B), V/(R+V+B), B/(R+V+B).
ImgRGBToColor
ImgRGBToHSI convertit une image RVB en une image couleur dont les
3 bandes sont définies respectivement ainsi : 2xRouge-
Vert-Bleu, 2xVert-Rouge-Bleu, 2xBleu-Rouge-Vert. convertit 3 images monochromes représentant les bandes
Rouge, Verte et Bleue en une image couleur RVB. convertit une image RVB en une image
Teinte/Saturation/Intensité.
ImgRGBToYIQ
ImgYIQToRGB convertit une image RVB en une image YIQ. convertit une image YIQ en une image RVB.
12.7 Fonctions utilitaires
12.7.1 Génération d’image
ImgCreateGaussianNoise génère une image de bruit Gaussien.
ImgCreateGaussianSurface génère une image dont les intensités correspondent à une fonction Gaussienne.
ImgCreateRamp génère une image de fonction Rampe selon les axes Ox et Oy.
ImgCreateUniformNoise génère une image de bruit uniforme.
ImgFree
ImgFreeAll efface l’image courante de la mémoire vive. efface toutes les images de la mémoire vive.
12.7.2 Utilitaires
ImgClear met à zéro tous les pixels de l’image.
70
ImgClip
ImgCopy
ImgCut
ImgFill
ImgFrame
ImgFrameEx
ImgJoinBands
ImgPaste
ImgSetName
ImgSetType
ImgSplitBands
ImgSubCopy
APHELION 3.2 - Manuel d’installation & Didacticiel
met à une valeur seuil tous les pixels dont la valeur est supérieure à celle-ci si l’utilisateur a sélectionné Clip haut, ou met à une valeur seuil tous les pixels dont la valeur est inférieure à celle-ci si Clip bas est sélectionné. copie l’image source dans une image destination. copie une zone de l’image source définie par Région d’intérêt dans une image destination de taille minimale pour contenir cette zone. met tous les pixels de l’image à une valeur constante. met tous les pixels de l’image à zéro à l’exception des pixels connexes aux bords de l’image dont la valeur est
1. met les pixels du bord de l’image à la valeur Frame et tous les autres pixels à la valeur Interior. assemble plusieurs images monochromes pour former une image multibande (exemple: 3 images
→ image couleur RVB). colle les zones de deux images sources dans une image destination. affecte un nom spécifié par l’utilisateur à l’image source. convertit l’image source en une image de type spécifié par l’utilisateur. extrait d’une image multibande l’une de ses bandes et la copie dans l’image destination (exemple: l’image du canal Rouge d’une image couleur RVB est obtenue en sélectionnant la bande 0). copie la zone de l’image source définie par la première région d’intérêt dans l’image destination dont la taille est minimale pour contenir cette zone.
71
APHELION 3.2 - Manuel d’installation & Didacticiel
12.7.3 Transformation d’intensité/Point-à-point
ImgEqualizeHistogram calcule la table de conversion des intensités pour égaliser l’histogramme de l’image source et transforme l’intensité de chaque pixel en fonction de cette table. Le résultat est copié dans l’image destination.
ImgLinearScale recalcule la valeur de chaque pixel de l’image source à l’aide d’une fonction de type rampe et copie le résultat dans l’image destination (cette fonction permet d’étaler ou de compresser la gamme des intensités).
ImgMapThroughLUT recalcule la valeur de chaque pixel de l’image source à l’aide d’une fonction définie par l’utilisateur et copie le résultat dans l’image destination (cette fonction permet d’étaler ou de compresser la gamme des intensités).
12.7.4 Entrée/Sortie
ImgImport charge une image dont le format de fichier est non supporté par APHELION. Le fichier à charger devra être un fichier binaire dont les données sont non compressées.
ImgRead charge une image dont le format de fichier est supporté par APHELION, c’est-à-dire TIFF, BitMap, JPEG ou
KBVision.
ImgReadSlices
ImgWrite
ImgWriteSlices charge une série d’images (TIFF, BitMap, JPEG ou
KBVision) pour créer une image 3D - uniquement disponible dans le module 3D Image Processing. enregistre l’image source en format TIFF, BitMap ou
JPEG. enregistre l’image source 3D sous forme de série de fichiers images (TIFF, BitMap, JPEG ou KBVision) - uniquement disponible dans le module 3D Image
Processing.
72
APHELION 3.2 - Manuel d’installation & Didacticiel
12.8 Segmentation
12.8.1 Seuillage
ImgAdaptivePercentileThreshold convertit l’image d’entrée en image binaire par seuillage des niveaux de gris de telle manière que le taux de pixels binarisés appartienne à l’intervalle défini.
ImgColorThreshold effectue la binarisation d’une image couleur par seuillage des canaux RVB ou TSI.
ImgEntropyThreshold définit le seuil optimal comme le niveau de gris maximisant l’entropie de l’histogramme et applique ce seuil à la conversion de l’image source en image binaire.
ImgExtremaThreshold convertit l’image source en image binaire en mettant à 1 tous les pixels de l’image source répondant au critère suivant : abs(valeur_pixel - moyenne) > abs(SD
Threshold x écart-type_local). Tous les autres pixels sont mis à 0.
ImgHysteresisThreshold effectue un seuillage par hystérésis (deux seuils pour l’image des germes et deux seuils pour l’image à reconstruire) et convertit l’image source en image binaire.
ImgMultiModalThreshold applique un opérateur de segmentation de région basé sur la segmentation à partir d’histogrammes locaux.
ImgMaximumContrastThreshold calcule un ensemble de seuils (le nombre de seuils est défini par l’opérateur) donnant un contraste maximal et applique ces seuils à la conversion de l’image source en image étiquetée (ce seuillage automatique n’utilise pas l’histogramme des niveaux de gris, mais l’information de voisinnage, ce qui implique qu’il est moins sensible au défaut d’éclairage).
ImgMomentThreshold définit le seuil optimal comme le niveau de gris maximisant les moments de l’histogramme et applique ce seuil à la conversion de l’image source en image binaire.
ImgThreshold convertit l’image d’entrée en image binaire par seuillage interactif sur les niveaux de gris.
73
APHELION 3.2 - Manuel d’installation & Didacticiel
12.8.2 Morphologie
ImgBlackTophat extrait les parties sombres de l’image dont la taille est inférieure à la taille de l’élément structurant spécifié par l’utilisateur.
ImgClustersSplitConvex effectue la segmentation d’amas selon un critère de convexité.
ImgRegionGrow effectue une croissance de régions sous contrainte de différence de niveaux de gris (intensité) définie par l’opérateur et crée l’image étiquetée correspondante.
ImgSeededRegionGrow effectue une croissance de régions en prenant comme germes des régions les marqueurs définis.
ImgWhiteTophat extrait les parties claires de l’image dont la taille est inférieure à la taille de l’élément structurant spécifié par l’utilisateur.
12.8.3 Rectangles
ImgLabelsToRectangles calcule les rectangles circonscrits aux régions
étiquetées de l’image source et crée l’ensemble d’objets correspondant.
12.8.4 Polygones
PolygonArea calcule la surface des polygones d’un ensembles d’objets de type Polygons.
RegionConvexHullPolygons calcule les enveloppes convexes des objets de l’ensemble d’objets d’entrée et insère les attributs associés dans celui-ci.
12.8.5 Segments de droite (Lines)
ImgEdgesToLines convertit les parties de contours dont le gradient est comparable sous forme de segments de droite (ensemble d’objets).
ImgGradientLines construit des segments de droite (ensemble d’objets) à partir des régions dont la direction du gradient est similaire, par un algorithme comparable à celui de Burns.
74
APHELION 3.2 - Manuel d’installation & Didacticiel
ImgHoughLines construit des segments de droite (ensemble d’objets) à partir d’une image source obtenue par transformée de
Hough.
12.8.6 Régions
ImgEntropyThresholdObj définit le seuil optimal comme le niveau de gris maximisant l’entropie de l’histogramme et applique ce seuil à la conversion de l’image source en ensemble d’objets de type Région.
ImgHysteresisThresholdObj effectue un seuillage par hystérésis (deux seuils pour l’image des germes et deux seuils pour l’image à reconstruire) et convertit l’image source en ensemble d’objets de type Région.
ImgMaximumContrastThresholdObj calcule un ensemble de seuils (le nombre de seuils est défini par l’opérateur) donnant un contraste maximal et applique ces seuils à la conversion de l’image source en ensemble d’objets de type Région.
ImgMomentThresholdObj définit le seuil optimal comme le niveau de gris maximisant les moments de l’histogramme et applique ce seuil à la conversion de l’image source en ensemble d’objets de type Région.
ImgMultiModalThresholdObj applique le seuillage ImgMultiModalThreshold à l’image d’entrée et convertit l’image résultante en ensemble d’objets.
ImgRegionGrowObj effectue une croissance de régions et convertit l’image
étiquette (Label) en ensemble d’objets.
ImgThresholdObj convertit l’image d’entrée en ensemble d’objets de type
Région par seuillage interactif.
75
APHELION 3.2 - Manuel d’installation & Didacticiel
ImgZeroCross effectue une segmentation de l’image d’entrée basée sur le passage par zéro de sa dérivée seconde calculée à l’aide de masques gaussiens dont les tailles sont définies par l’opérateur, et crée l’ensemble d’objets des parties segmentées de l’image. Cet opérateur permet de segmenter les contours de régions de l’image ; l’augmentation de la largeur des masques gaussiens accroît la robustesse de la détection (diminution de l’influence du bruit).
12.8.7 Snakes
ImgSnake applique l’algorithme des snakes (constriction à la manière d’un serpent) à partir d’un marqueur de type
Chain.
12.8.8 Chaînes
ImgLabelsToChains convertit une image étiquette (Label) en chaînes.
12.8.9 Utilitaires
ImgClustersObj convertit les ensembles 4-connexes ou 8-connexes de l’image binaire d’entrée en objets de type Région.
ImgEdgesToEdgels convertit les pixels correspondant à des contours de l’image d’entrée obtenue par l’un des opérateurs de détection de contours en objets de type Contour (Edgel).
ImgLabelsObj chaque ensemble 4-connexe ou 8-connexe (selon le choix de l’opérateur) est étiqueté. convertit les ensembles 4-connexes ou 8-connexes
étiquetés en objets de type Région.
12.9 Analyse
12.9.1 Mesures de champ (Analyse globale)
ImgArea calcule l’aire totale des régions (pixels à 1) de l’image binaire source.
76
APHELION 3.2 - Manuel d’installation & Didacticiel
ImgBandHistogram retourne un ou plusieurs tableaux contenant les valeurs de l’histogrammes des intensités de chaque canal de l’image d’entrée (qui peut être multi-canaux comme une image couleur, par exemple).
ImgBoundingBox retourne les coordonnées de la boîte circonscrite à l’ensemble des régions (pixels à 1) de l’image binaire d’entrée.
ImgCompare
ImgConcavity
ImgConvexity compare deux images et retourne le nombre de pixels <,
≤, =, ≥. et > calcule le nombre de concavités de l’image binaire d’entrée. calcule le nombre de convexités de l’image binaire d’entrée.
ImgCountObjects
ImgEuler
ImgFirstPoint
ImgHistogram
ImgIntercepts
ImgMoments
ImgPerimeter
ImgRange
ImgVolume calcule le nombre de régions 4-connexes de l’image. calcule le nombre d’Euler-Poincaré (nombre de connexités) de l’image binaire d’entrée. retourne la position du premier point non nul de l’image binaire d’entrée. retourne un tableau contenant les valeurs de l’histogramme des niveaux de gris de l’image d’entrée. calcule les intercepts de l’image binaire d’entrée dans toutes les directions de la trame. calcule les moments d’ordres 0, 1, 2 et 3 de l’histogramme des niveaux de gris l’image d’entrée. calcule le périmètre des régions (pixels à 1) de l’image binaire d’entrée. retourne les valeurs des extrema de l’image. calcule la somme des intensités (niveaux de gris) de tous les pixels de l’image.
12.9.2 Transformation pour l’analyse (Image analysis)
ImgHoughTransform effectue la transformée de Hough de l’image d’entrée.
77
APHELION 3.2 - Manuel d’installation & Didacticiel
ImgLawsTexture traite l’image par 9 opérateurs de texture ; l’image de sortie est une image composée de 9 canaux.
ImgLocalVariance
ImgMaskedMean retourne pour chacun des pixels de l’image d’entrée la valeur de la variance locale (la largeur du voisinnage sur lequel la variance est calculée est définie par l’opérateur). calcule la moyenne, en un pixel donné, des pixels appartenant à l’élément structurant centré sur celui-ci, pour tous les pixels inclus dans le masque sélectionné.
ImgMaskedStandardDeviation calcule l’écart-type, en un pixel donné, des pixels appartenant à l’élément structurant centré sur celui-ci, pour tous les pixels inclus dans le masque sélectionné.
12.9.3 Objets
ChainAttributes
ChainWidth calcule les mesures associées aux objets de type Chains. calcule les statistiques de largeur des chaînes et ajoute ces mesures à l’ensemble d’objets de type Chains.
LineAttributes
ObjAttributeRatio calcule les mesures des objets de type Segment de droite. calcule le rapport entre deux attributs (mesures) pour chaque objet d’un ensemble d’objets et crée un nouvel attribut contenant le résultat.
ObjComputeMeasurements calcule toutes les mesures de chaque objet d’un ensemble d’objets. Les mesures calculées dépendent du type d’objet.
ObjComputeRuleScore calucle le résultat d’une loi, définie dans l’outil de classification Fuzzy Logic, appliquée à un ensemble d’objets.
ObjHaralickTexture calcule de paramètres de texture définis par Haralick
(Energy, Entropy, Contrast, Inverse Difference Moment,
Correlation) de chaque objet. ensemble d’objets.
78
APHELION 3.2 - Manuel d’installation & Didacticiel
ObjIntercepts calcule les intercepts de chaque région d’un ensemble d’objets 3D - uniquement disponible dans le module 3D
Image Processing.
ObjMoments classification Fuzzy Logic. calcule les extrema, la moyenne et l’écart-type des valeurs d’un attribut d’un ensemble d’objets.
ObjShape
ObjSpatialAttributeStatistics calcule le minimum, le maximum, la moyenne et l’écart-type des pixels appartenant à la zone spatiale
(spatial attribute) spécifiée de chaque objet.
RegionFeret calcule les attributs de forme de chaque région d’un ensemble d’objets 3D (opérateur équivalent à
RegionShape, dédié aux ensembles d’objets 2D) - uniquement disponible dans le module 3D Image
Processing.
RegionShape calcule les diamètres de Ferets (projections dans N directions – N étant défini par la valeur Angles) de chaque région d’un ensemble d’objets. calcule les attributs de forme de chaque région d’un ensemble d’objets, tels que la hauteur, la largeur, le périmètre, l’élongation, la circularité.
RegionStatistics calcule le minimum, le maximum, la moyenne et l’écarttype des valeurs d’intensité des pixels incrits dans chaque région d’un ensemble d’objets.
12.9.4 Mesures interactives
ImgDistance calcule la distance entre 2 points définie interactivement.
ImgProfile génère le profil des intensités des pixels sous la droite tracée interactivement.
ImgTrace retourne les valeurs d’intensité sous les points tracée interactivement.
79
APHELION 3.2 - Manuel d’installation & Didacticiel
ImgWarpControlPoint effectue une déformation géométrique pour corriger le gauchissement. Cette déformation utilise des couples de points de contrôle spécifiés interactivement à la fois sur l’image à déformer et sur l’image de référence.
12.9.5 Corrélation/ Mise en correspondance
ImgAutoCorrelate calcule la corrélation d’un image source par elle-même.
ImgCooccurence calcule la matrice de cooccurence.
ImgCorrelateWithTemplate calcule la corrélation d’une image d’entrée par un gabarit (sous forme de noyau de convolution).
ImgCrossCorrelate calcule la corrélation croisée de deux images
(complexes) en utilisant la transformée de Fourier rapide.
ImgFromTemplate
ImgToTemplate convertit un gabarit (sous forme de noyau de convolution) en image. convertit une image gabarit (sous forme de noyau de convolution) en image.
12.10 Traitement d’objets
12.10.1 Géométrie
ObjRotate
ObjScale
ObjShear
ObjTranslate effectue une rotation de l’ensemble d’objets autour de son centre. applique un facteur d’échelle à l’ensemble d’objets. applique une déformation linéraire à l’ensemble d’objets. effectue une translation de l’ensemble d’objets.
12.10.2 Régions
RegionClose
RegionDilate
RegionErode applique une fermeture morphologique aux régions de l’ensemble d’objets et y ajoute les attributs générés. applique une dilatation morphologique aux régions de l’ensemble d’objets et y ajoute les attributs générés. applique une érosion morphologique aux régions de l’ensemble d’objets et y ajoute les attributs générés.
80
APHELION 3.2 - Manuel d’installation & Didacticiel
RegionHoleFill
RegionOpen bouche les trous des aux régions de l’ensemble d’objets et y ajoute les attributs générés. applique une ouverture morphologique aux régions de l’ensemble d’objets et y ajoute les attributs générés.
12.10.3 Segments de droite (Lines)
RegionLineFit ajuste des segments de droite à chaque région de l’ensemble d’objets d’entrée.
12.10.4 Chaînes
ChainLineFit ajuste un segment de droite à chaque chaîne de l’ensemble d’objets source.
12.10.5 Regroupement
ChainNeighbors calcule l’ensemble des chaînes voisines, de par leurs extrémités dans un rayon défini.
EdgelNeighbors calcule un nouvel attribut de voisinnage des objets de type Contour de l’ensemble d’objets d’entrée. Les objets sont considérés comme voisins selon un critère : leur distance dans un cône de propagation dont l’angle est défini par l’utilisateur doit être inférieure à une valeur définie par l’utilisateur.
EdgelsToChains
ObjOverlap
RegionOverlap regroupe les objets de contours en chaînes par une procédure itérative de propagation. calcule un nouvel attribut indiquant le nombre d’objets du second ensemble d’objets 3D recouvert par chaque objet du premier ensemble d’objets 3D - uniquement disponible dans le module 3D Image Processing. calcule un nouvel attribut indiquant le nombre d’objets du second ensemble d’objets recouvert par chaque objet du premier ensemble d’objets.
RegionSplitConvex divise les régions d’un ensemble d’objets en sous-régions selon un critère de convexité.
81
APHELION 3.2 - Manuel d’installation & Didacticiel
RegionSplitStatistical divise les régions d’un ensemble d’objets en sous-régions en fonction de l’analyse de l’histogramme des intensités des pixels.
RegionSplitUnconnected divise les régions d’un ensemble d’objets en sousrégions selon un critère de connexité (par exemple, un ensemble d’objets ayant subi une érosion peut contenir des régions à plusieurs parties connexes ; cet opérateur permet de convertir ces régions en plusieurs régions distinctes).
12.10.6 Morphology (uniquement disponible dans le module 3D Image
Processing)
ObjClose applique une fermeture morphologique 3D à chaque région de l’ensemble d’objets 3D et y ajoute les attributs générés.
ObjDilate
ObjErode applique une dilatation morphologique 3D à chaque région de l’ensemble d’objets 3D et y ajoute les attributs générés. applique une érosion morphologique 3D à chaque région de l’ensemble d’objets 3D et y ajoute les attributs générés.
ObjOpen applique une ouverture morphologique 3D à chaque région de l’ensemble d’objets 3D et y ajoute les attributs générés.
12.11 Utilitaires d’objets
12.11.1 Entrée/Sortie d’objets
ObjExport enregistre les données de type scalaire (les données spatiales ne sont pas exportées par cet opérateur) d’un ensemble d’objets d’entrée dans un fichier tabulé. Ce fichier peut être chargé dans un tableur tel que Microsoft
Excel.
ObjFree supprime l’ensemble d’objets sélectionné.
ObjFreeAll supprime tous les ensembles d’objets chargés.
82
APHELION 3.2 - Manuel d’installation & Didacticiel
ObjImport charge un fichier tabulé tel qu’il puisse être ouvert dans le tableur d’APHELION
©
.
ObjRead
ObjWrite charge un ensemble d’objets. enregistre un ensemble d’objets.
RegionToBoundaryPolygon convertit les contours polygonaux des régions en vecteurs.
12.11.2 Gestion des objets (Cut/Copy/Paste)
ObjAppend effectue la concaténation de deux ensemble d’objets et enregistre le résultat dans un nouvel ensemble d’objets.
ObjCopy
ObjDeleteAttribute supprime un attribut sélectionné par l’utilisateur d’un ensemble d’objets.
ObjFilter copie un ensemble d’objets dans un ensemble d’objets destination. filtre les objets d’un ensemble d’entrée en fonction des valeurs d’un attribut que l’utilsateur a sélectionné (seuils haut et bas définissant l’intervalle accepté).
ObjFree
ObjMerge supprime un ensemble d’objets. fusionne deux ensemble d’objets et enregistre le résultat dans un nouvel ensemble d’objets.
12.11.3 Affichage (Graphic)
ObjDraw dessine un ensemble d’objets dans l’un des plans graphiques de l’image sélectionnée.
ObjDrawMapped dessine un ensemble d’objets dans l’un des plans graphiques de l’image ; les valeurs d’intensité du graphique en superposition à chaque objet est fonction de la valeur d’un attribut de l’objet de type scalaire que l’utilisateur a sélectionné.
ObjRemoveOverlay supprime le plan graphique de l’image correspondant à l’attribut spatial sélectionné d’un ensemble d’objets.
83
APHELION 3.2 - Manuel d’installation & Didacticiel
12.11.4 Conversion
ObjSpatialAttributeToImage écrit dans l’image la valeur de l’attribut spatial sélectionné pour chaque région d’un ensemble d’objets.
ObjSpatialAttributeToRegions convertit l’ensemble d’objets sélectionné (de type
Contour, Segment de droite, Rectangle, etc) en ensemble d’objets de type Region.
12.12 Acquisition d’image (module optionnel)
12.12.1 Acquisition/Capture
FGFreeze Fige le mouvement de l’acquisition continue lancée par la fonction ImgGrab.
FGStartGrab
ImgGetFGFrame ouvre la fenêtre d’acquisition continue d’image. récupère une image de la fenêtre d’acquisition continue d’image lancée par la fonction FGStartGrab
ImgGrab
ImgSnap acquisition continue (type vidéo) avec affichage de l’image et capture après arrêt sur image (ImgFreeze). capture intantanément l’image acquise.
12.13 Recognition Toolkit (module optionnel)
12.13.1 Utilitaire
AutoCode
Encode
Normal
Centroid
MeanAsgn code les valeurs d’attributs d’un ensemble d’objets sous forme discrète. code les attributs d’un ensemble d’objets. normalise les caractéristiques (moyennes centrées et variances à 1). Cet opérateur peut être utilisé en prétraitement avant l’évaluation, le regroupement ou la classification. calcule les centroïdes des classes. Pratique pour l’analyse des données et l’apprentissage en vue de la classification. associe les objets au centroïde de classe le plus proche.
Peut être utilisé en conjonction avec la fonction Centroid, pour l’évaluation et la classification.
84
APHELION 3.2 - Manuel d’installation & Didacticiel
12.13.2 Extraction
Boxes
Corners
MergeLines
MergeBoxes
Parallels crée les boîtes par relation entre les coins opposés et adjacents recherche les coins satisfaisant aux règles de tolérance imposées par l’utilisateur. fusionne les segments de droite (Lines). Il peut fusionner des segments colinéaires ou quasiment parallèles. fusionne des boîtes créées par la fonction Boxes. Ce dernier peut créer de nombreuses boîtes avec recouvrement. recherche les paires de lignes satisfaisant aux règles de tolérance sur la distance et l’angle inter-lignes définies par l’utilisateur.
12.13.3 Evaluation
CorrEval évalue l’utilité d’attribut d’un ensemble d’objets par corrélation et supprime les attributs redondants pour la classification.
LinkEval
MRegres
PairEval discrimant pour classer les objets. recherche la structure d’arbre qui maximise l’information discriminante de second ordre. effectue une régression linéaqire multiple. Il peut être utilisé pour l’évaluation de caractéristiques et l’analyse de redondance. utilisé pour l’évaluation du contenu d’information en vue de la reconnaissance d’objets comparables
12.13.4 Apprentissage
Bayes_Trn assimile les données et génère les centres de classes, la covariance et les pondérations requis par le classifieur
Bayes_Trn.
DIT_Trn génère l’arbre des informations discriminantes optimal et les probabilités requis par le classifieur DIT_Cls.
85
APHELION 3.2 - Manuel d’installation & Didacticiel
KNN_Trn
MinD_Trn
PFSClust génère le fichier prototype requis par le classifieur
KNN_Cls. génère les centres de classe et les pondérations requis par le classifieur MinD_Cls. recherche les classes naturelles selon la méthode Pseudo
F Statistic.
12.13.5 Classification
Bayes_Cls classe les données selon la loi normale multi-variable de
Bayes.
DIT_Cls
KNN_Cls classe les données aussi bien discrètes que codées ou symboliques à partir de l’arbre des informations discriminantes. classe les données selon la règle des K plus proches voisins (particulièrement adaptée aux distributions complexes).
MinD_Cls classe les données selon un critère de distance minimale au centre de classe.
Remarque : de nombreux opérateurs supplémentaires d’Aphelion, pouvant être appelés depuis BasicScript, sont disponibles. Pour plus d’informations sur ceux-ci, veuillez vous conférer à Aphelion Reference Guide
→
BasicScript Commands and
Functions dans le sommaire de l’aide en ligne.
86
APHELION 3.2 - Manuel d’installation & Didacticiel
13. LISTE DES MESURES
13.1 Mesures globales
Les mesures globales, ou mesures de champ, sont les mesures calculées sur l’ensemble de l’image telle que la teneur (surface seuillée divisée par la surface totale de l’image, pour une image 2D). Les opérateurs de mesures globales sont définis dans le paragraphe 12.9.1 Mesures de champ (Analyse globale).
Comment calculer la teneur de phase ?
Cette mesure, aussi appelée surface spécifique pour une image 2D ou volume spécifique pour une image 3D, est l’une des mesures de champ les plus fréquemment utilisée en analyse d’image. L’opérateur AphImgMoments donne cette valeur (la moyenne) lorsqu’elle est calculée sur une image binaire.
13.2 Mesures individuelles
Les mesures individuelles sont des mesures calculées sur les objets (cf. le groupe d’opérateurs Analysis
→
Objects). Ils peuvent être divisés en plusieurs groupes en fonction du type d’objets auquel ils s’appliquent. Le préfixe du nom de l’opérateur indique le type d’objets. La liste des préfixes est présentée ci-dessous :
Type d’objets Préfixe et exemple d’opérateur
Tout type d’objets Obj (AphObjComputeMeasurements)
13.2.1 Mesures sur les objets de type Chain
AphChainAttributes calcule les attributs relatifs aux objets de type Chain : longueur, courbure, intensité moyenne et contraste.
AphChainWidth calcule les attributs d’objets de type Chain suivants : largeur moyenne, largeurs minimale et maximale, écart-type.
87
APHELION 3.2 - Manuel d’installation & Didacticiel
13.2.2 Mesures sur les objets de type Line
AphLineAttributes calcule les attributs d’objets de type Line suivants :
LINE.P1.X / Y coordonnées en X / Y de la première extrémité du segment de droite.
LINE.P2.X / Y
LINE_LENGTH coordonnée en X / Y de la seconde extrémité du segment de droite. longueur du segment de droite.
LINE_MIDPOINT.X / Y coordonnée en X / Y du point milieu du segment de droite.
LINE_ANGLE angle en radians entre le segment de droite et l’axe Ox.
LINE_RHO distance du segment de droite à l’origine (0,0) de l’image.
LINE_THETA angle en radians entre la normale au segment de droite et l’axe
Ox.
LINE_MIN_T coordonnées minimales des extrémités du segment de droite.
LINE_MAX_T coordonnées maximales des extrémités du segment de droite.
LINE_INTENSITY intensité moyenne des pixels sous le segment de droite.
LINE_CONTRAST valeur absolue de la différence entre les intensités moyennes sous les deux segments de droite situés de part et d’autre du segment de droite, parallèlement et à une distance d’un pixel.
88
APHELION 3.2 - Manuel d’installation & Didacticiel
13.2.3 Mesures sur les objets de type Region
AphRegionFeret calcule les attributs suivants :
Le plus petit rectangle circonscrit
(minimum bounding rectangle ou
MBR) d’une région est le rectangle circonscrit à la région dont la surface est plus petite que celle des autres rectangles circonscrits.
Avec D(
α) le diamètre de féret projeté sur l’axe faisant un angle
α avec l’axe
Ox, la surface du rectangle circonscrit correspondant est :
S(
α) = D(α) x D(α+π/2).
MBR est le rectangle tel que S(
α) est minimale.
MBR_ANGLE orientation en radians du grand diamètre de féret ou grande côté du MBR.
MBR_CENTER.X / Y coordonnées X et Y du centre du MBR.
MBR_DIAMETERS.NUMELEMENTS nombre d’orientations utilisées pour le calcul des diamètres et pour définir le MBR.
MBR_FILL
MBR_HEIGHT
MBR_WIDTH
Rapport de surface entre la région et son MBR. longueur du petit côté du MBR ou petit diamétre de féret. longueur du grand côté du MBR ou grand diamètre de féret.
MBR_POLYGON.LL.X valeur inférieure des coordonnées en X du MBR.
MBR_POLYGON.LL.Y valeur inférieure des coordonnées en Y du MBR.
MBR_POLYGON.UR.X valeur supérieure des coordonnées en X du MBR.
MBR_POLYGON.UR.Y valeur supérieure des coordonnées en Y du MBR.
AphRegionShape calcule les mesures suivantes :
AREA* surface calibrée de chaque région.
89
APHELION 3.2 - Manuel d’installation & Didacticiel
BOUNDING_RECT_FILL rapport de surfaces de chaque région et de son rectangle circonscript (dont les côtés sont horizontaux et verticaux).
BR_TO_PERIMETER rapport de périmètres de chaque région (attribut
PERIMETER) et de son rectangle circonscrit
(2xHEIGHT + 2xWIDTH).
CENTROID.X / Y centre de masse de chaque région (coordonnées moyennes des pixels de chaque région).
CIRCULARITY
COMPACTNESS paramètre de forme égal à 1 pour un disque parfait et tendant vers 0 pour une région fine et longue. Sa formule est : 4 x
π x AREA / CROFTON_PERMIETER² paramètre de forme égal à 1 pour un rectangle parfait et tendant vers 0 pour les régions aux contours irréguliers ou pour les régions fines et allongées. Sa formule est :
16 x AREA / PERIMETER²
CROFTON_PERIMETER* estimateur du périmètre de chaque région. Ce calcul du périmètre donne une valeur du périmètre beaucoup plus proche des valeurs mesurées dans le domaine continu que la valeur du périmètre donnée par le comptage du nombre de pixels du contour de la région
(PERIMETER), en particulier pour les régions de forme arrondie.
HEIGHT*
ELONGATION
INTERCEPTS_θ différence entre les coordonnées supérieure et inférieure sur l’axe Oy de la région, plus 1. C’est également la longueur de la projection de la région sur l’axe Oy. valeur absolue de la différence entre les axes principaux d’inertie, divisée par la somme des inerties. Cette mesure est égale à 0 pour un disque parfait et tend vers 1 pour une ellipse étroite et très allongée. nombre de transition 1
→0 (en pixels) dans la direction θ
(0°, 45°, 90° et 135°).
LOG_HEIGHT_TO_WIDTH log
10
(HEIGHT/WIDTH).
MAJOR_AXIS orientation de l’axe majeur d’inertie (en radions).
90
APHELION 3.2 - Manuel d’installation & Didacticiel
NUMBER_OF_BLOBS nombre de groupes de pixels connexes (calculé en 4connexité, ie seuls les 4 plus proches voisins d’un pixel sont considérés comme connexes) pour chaque région.
NUMBER_OF_HOLES nombre de groupes de pixels connexes (calculé en 4connexité) ayant une valeur de 0 entourés par des pixels ayant une valeur de 1 dans chaque objet.
PERIMETER* nombre de pixels définissant en 4-connexité le contour de chaque région, calibré par la taille réelle d’un pixel.
WIDTH* différence entre les coordonnées supérieure et inférieure sur l’axe Ox de la région, plus 1. C’est également la longueur de la projection de la région sur l’axe Ox.
Les mesures marquées d’un * sont calibrées.
AphRegionStatistics calcule les mesures suivantes :
REGION_MIN valeur du pixel ayant la plus faible intensité de chaque région.
REGION_MAX
REGION_MEAN valeur du pixel ayant la plus forte intensité de chaque région. moyenne des valeurs d’intensité des pixels appartenant à chaque région.
REGION_SD écart-type des valeurs d’intensité des pixels appartenant à chaque région.
REGION_SKEWNESS moment centré et normalisé d’ordre 3 (skewness) des valeurs d’intensité des pixels appartenant à chaque région.
REGION_KURTOSIS moment centré et normalisé d’ordre 4 (Kurtosis) des valeurs d’intensité des pixels appartenant à chaque région.
91
APHELION 3.2 - Manuel d’installation & Didacticiel
13.2.4 Object measurements
AphObjComputeMeasurements calcule toutes les mesures, selon le type d’objets, décrites dans les paragraphes 13.2.1 à 13.2.3, ainsi que les mesures décrites cidessous :
HEDGE_MIN
HEDGE_MAX valeur minimale de l’image des contours (Edge) horizontaux calculée à partir de l’image d’entrée (input), dans chaque objet. valeur maximale de l’image des contours (Edge) horizontaux calculée à partir de l’image d’entrée (input), dans chaque objet.
HEDGE_MEAN
HEDGE_SD écart-type des valeurs l’image des contours (Edge) horizontaux calculée à partir de l’image d’entrée (input), dans chaque objet.
HEDGE_SKEWNESS moment centré et normalisé d’ordre 3 (skewness) des valeurs l’image des contours (Edge) horizontaux calculée
à partir de l’image d’entrée (input), dans chaque objet.
HEDGE_KURTOSIS moment centré et normalisé d’ordre 4 (Kurtosis) des valeurs l’image des contours (Edge) horizontaux calculée
à partir de l’image d’entrée (input), dans chaque objet.
VEDGE_MIN moyenne des valeurs l’image des contours (Edge) horizontaux calculée à partir de l’image d’entrée (input), dans chaque objet.
VEDGE_MAX
VEDGE_MEAN
VEDGE_SD valeur minimale de l’image des contours (Edge) verticaux calculée à partir de l’image d’entrée (input), dans chaque objet. valeur maximale de l’image des contours (Edge) verticaux calculée à partir de l’image d’entrée (input), dans chaque objet. moyenne des valeurs l’image des contours (Edge) verticaux calculée à partir de l’image d’entrée (input), dans chaque objet.
écart-type des valeurs l’image des contours (Edge) verticaux calculée à partir de l’image d’entrée (input), dans chaque objet.
92
APHELION 3.2 - Manuel d’installation & Didacticiel
VEDGE_SKEWNESS moment centré et normalisé d’ordre 3 (skewness) des valeurs l’image des contours (Edge) verticaux calculée à partir de l’image d’entrée (input), dans chaque objet.
VEDGE_KURTOSIS moment centré et normalisé d’ordre 4 (Kurtosis) des valeurs l’image des contours (Edge) verticaux calculée à partir de l’image d’entrée (input), dans chaque objet.
93
APHELION 3.2 - Manuel d’installation & Didacticiel
14. EXEMPLES DE PROGRAMMATION
Plusieurs exemples de programmation sont fournis sur le CD-ROM d’APHELION, dans le répertoire Examples.
Les exemples écrits en Visual C++ du répertoire Developer Samples présente comment ajouter de nouveaux opérateurs à l’interface graphique d’APHELION et comment développer des applications indépendantes appelant les bibliothèques dynamiques d’APHELION (DLLs).
Le répertoire Microsoft Visual Basic contient plus de dix projets Visual Basic appelant les composants ActiveX d'’PHELION pour afficher les images, pour effectuer des traitements et pour gérer les ensembles d’objets.
Il n’y a pas de règle établie pour décider d’utilser un environnement de programmation plutôt qu’un autre ; cependant, nous vous conseillons ce qui suit :
• Si vous souhaitez modifier l’interface graphique d’APHELION ou ajouter un nouvel opérateur dans un menu, alors utilisez Visual C++.
• Si vous souhaitez développer une application indépendante, alors utilisez
Visual C++ et les DLLs d’APHELION. Depuis les autres environnements de développement tels que Visual Basic, Jbuilder, utilisez les composants
ActiveX d’APHELION.
• Si vous souhaitez préparer rapidement une étude de faisabilité, faites-la depuis l’interface graphique d’APHELION en utilisant l’interpréteur de macro BasicScript ou encore depuis Visual Basic en utilisant les composants
ActiveX d’APHELION ; la première solution est cependant la plus rapide.
• Si vous ne souhaitez vraiment pas utiliser Microsoft Visual Basic, alors utilisez Delphi ou Jbuilder de Borland/Imprise.
• Enfin, nous vous recommandons d’utiliser les DLLs d’APHELION uniquement depuis l’environnement Visual C++, langage natif de notre logiciel, car les autres environnements nécessitent parfois l’utilisation de wrappers (interfaces de communication) afin d’accéder aux bibliothèques
Visual C++.
94
APHELION 3.2 - Manuel d’installation & Didacticiel
14.1 Exemples de développement
14.1.1 Ajout de nouveaux opérateurs dans l’interface d’APHELION
Exemple 2 – Ecriture d’un opérateur
Cet exemple présente comment écrire votre opérateur et l’ajouter à l’interface graphique d’APHELION. Celui-ci sera ensuite accessible depuis la boîte de dialogue opérateur.
Exemple 4 – Accès à un ensemble d’objets en utilisant les fonctions ISR
Cet exemple est comparable à l’exemple décrit ci-dessus, tout en réalisant une véritable opération ; il effectue une opération sur un ensemble d’objets. En outre, il présente l’utilisation de classes d’arguments plus complexes que précédemment.
Exemple 5 – Programmation évoluée dans APHELION
C’est un exemple de programmation évoluée dans APHELION. Les opérateurs ainsi créés seront disponibles dans l’interface graphique d’APHELION.
14.1.2 Développement d’applications indépendantes en Visual C++
Exemple 1 – Ecriture d’une application indépendante
Ce programme simple charge une image depuis un fichier sur le disque, calcule des mesures sur celle-ci et enregistre l’image dans un nouveau ficher.
Exemple 3 – Exportation d’un ensemble d’objets vers EXCEL
Cette application effectue une opération sur un ensemble d’objets et convertit l’ensemble d’objets résultant en fichier au format lisible depuis EXCEL.
14.2 Exemples Visual Basic
14.2.1 Gestion des images dans APHELION
Propriété et données d’image
Cetexemple présente comment changer les propriétés d’une image et comment accéder aux valeurs de ses pixels.
95
APHELION 3.2 - Manuel d’installation & Didacticiel
InfoFields
Cet exemple présente comment charger une image, l’afficher à l’aide du composant
ImageDisplay et comment écrire dans l’en-tête de celle-ci des informations
14.2.2 Acquisition d’images avec une caméra et une carte de numérisation
ImageCaptureBasic
Cet exemple Visual Basic montre comment acquérir et capturer des images depuis une caméra comment sauver ces images sur disque.
SequenceCapture
Cette démonstration vous permettra de visualiser les images acquises par une caméra et d’enregistrer celles-ci sur le disque à une fréquence optimale.
14.2.3 Affichage d’images avec les composant ApxImageDisplay
ImageDisplayBasic
Cet exemple montre comment afficher une image à l’aide du composant
ApxImageDisplay et comment changer les paramètres d’affichage (contraste, brillance, etc). Pour un complément d’information concernant le contexte d’affichage, référez-vous à la section Changing the Display Context du manuel utilisateur (User Guide manual).
InteractiveOverlay
Il présente comment dessiner des objets graphiques dans l’overlay graphique de l’image. Les objets peuvent être des rectangles, des ellipses et des segments de droite.
Les objets pourront être déplacés dans l’overlay graphique.
Objectset
Il montre comment créer un ensemble d’objets et comment afficher celui-ci sur l’image binaire. Le mécanisme de passage de message ainsi que l’affichage des mesures (dans la partie droite du formulaire Visual Basic) sont également présentés.
Overlay
Cet exemple montre comment dessiner des objets graphiques dans l’overlay de l’image et comment changer les paramètres de ces objets tels que la couleur, la forme, etc.
96
APHELION 3.2 - Manuel d’installation & Didacticiel
Zoom
Cet exemple présente comment afficher une image dans une fenêtre créée par le composant ApxImageDisplay. La taille de la fenêtre peut être changée tout en conservant le rapport entre la hauteur et la largeur réelles de l’image ou sans aucune contrainte. Le contrôle du rapport de grandissement (Zoom) est également implémenté.
14.3 Utilisation des ActiveX d’APHELION depuis Visual C++
Les exemples présentés dans le paragraphe 14.2 sont également implémentés en
Visual C++ ; ils sont disponibles dans le répertoire ActiveX du CD-ROM.
97
APHELION 3.2 - Manuel d’installation & Didacticiel
15. MODULES OPTIONNELS D’APHELION
15.1 Traitement et visualization d’image 3D
Le traitement d’image 3D est propose dans le module optionnel Aphelion 3D
Image Processing. Environ deux tiers des opérateurs de traitement, d’analyse et d’interprétation d’image 2D sont adaptés à l’espace 3D. Les images 3D sont traitées comme des données volumiques (X, Y, Z) et les mesures sont calculées à partir de l’information 3D. Par exemple, les operations de filtrage, étiquetage
(labeling), ligne de partage des eaux sont disponibles dans ce module et peuvent
être exécutées depuis l’interface graphique d’Aphelion de la même manière que les opérations appliquées aux images 2D.
Le module 3D Image Display est composé d’une interface pour l’affichage des images 3D avant et après analyse. Plusieurs modes d’affichage sont proposés
(composite avec transparence, iso-surface avec orientation de l’éclairage de la scène et coupes 2D).
AVICreator, inclus dans le module 3D Image Display, est un outil d’enregistrement de films au format AVI ou série d’images à partir de l’affichage d’image 3D. Il permet de créer facilement une animation multimédia de la représentation des images 3D pour être inséré dans un document multimedia.
15.2 Interfaces pour materiel de capture d’image
Une large gamme d’interfaces logicielles pour le pilotage de système d’acquisition est proposée sous forme de modules optionnels d’Aphelion (cf. liste des interfaces dans le paragraphe 4.3 Acquérir une Image). Ils fournissent les contrôles d’acquisition tels que la taille de l’image capturée et le gain. Grâce à ces modules, les images peuvent être capturées directement depuis l’environnement Aphelion.
Les récents protocoles d’interfaçage tels que Twain, Windows Media Driver et
WDM sont également disponibles.
15.3 Image Montage
Aphelion Image Montage est un module dédié à la reconstruction de grandes images à partir de plusieurs images pavant l’espace (mosaïque). Il est ainsi possible de générer une image de très haute résolution à partir d’images de résolution moyenne afin d’effectuer des analyses à différentes échelles.
En microscopie, Aphelion Image Montage permet de reconstruire une image complète d’un échantillon sans qu’il soit nécessaire d’avoir une platine motorisée et automatisée sur le microscope.
98
APHELION 3.2 - Manuel d’installation & Didacticiel
15.4 Kriging Toolkit
Kriging Toolkit est dédié à la suppression de bruit sur des images lorsque celui-ci est particulièrement présent. La méthode de filtrage utilisée est basée sur une analyse géostatistique de krigeage. Ce module calcule le variogramme de ou des images et fournit les outils pour l’approximation du variogramme par une combinason linéaire de fonctions, avec interaction manuelle assistée, et la sélection des fonctions caractérisant le bruit, et finalement filtre la ou les images.
15.5 Recognition Toolkit
Recognition Toolkit propose un ensemble d’outils dédiés à la classification d’objet et à l’interprétation des données. Ces outils sont basés sur des analyses probabilistiques des attributs d’objets pour l’automatisation de la classification.
Ils peuvent être utilisés pour traiter des ensembles d’objets ou encore pour générer des classes d’objets.
Des macros d’exemple sont fournies ; elles peuvent être utilisées comme base pour votre outil de classification.
15.6 VisionTutor
VisionTutor Computer Vision Course comprend un cours théorique de traitement et d’interprétation d’image et un ensemble d’exercices appliqués aux différentes notions abordées dans le cours. Ce cours s’adresse aux universités, aux écoles d’ingénieurs, aux instituts universitaires, aux laboratoires ainsi qu’aux organismes de formation. Les techniques y sont présentées afin de préparer les
étudiants et les utilisateurs à maîtriser les concepts et la pratique de la vision par ordinateur.
Le cours est constitué de pages avec graphiques, liens hypertextes et liens au logiciel Aphelion pour les exercices (tous ces exercices sont des macros
Aphelion).
15.7 Interface de contrôle de platine motorisée
Le module Stage Control permet un contrôle totale de la platine motorisée, par interfaçage de l’unité de contrôle (nous contacter pour connaître la liste des contrôleurs supportés), depuis la vitesse de déplacement jusqu’au déplacement en
X, Y, Z ou encore la rotation de roue de filtre. Un composant ActiveX contrôle les déplacements de la platine et gère les acquisition d’image (acquisition unique ou acquisition de N images dans une zone pré-définie). Le module propose
également des exemples présentant comment piloter l’ensemble du système, depuis l’initialisation du contrôleur jusqu’à l’enregistrement des images.
99

Public link updated
The public link to your chat has been updated.