Évaluer les résultats via HDev Engine

Vous consultez actuellement la documentation pour la dernière version (2.1.2). Pour accéder à une autre version, cliquez sur le bouton "Changer de version" situé dans le coin supérieur droit de la page.

■ Si vous n’êtes pas sûr de la version du produit que vous utilisez, veuillez contacter le support technique Mech-Mind pour obtenir de l’aide.

Fonction

Cette étape exécute un programme de vision Halcon prédéfini via HDevEngine et envoie le résultat du calcul à Mech-Vision.

Scénario d’utilisation

Cette étape sert à appeler certaines procédures dans Halcon.

Entrée et sortie

  • Entrées: Déterminées par le type de données saisi dans le paramètre Input Port Name.

  • Sorties: Déterminées par le type de données saisi dans le paramètre Output Port Name.

Description des paramètres

Paramètres du programme

Les paramètres dans “Program Settings” sont illustrés dans la figure ci-dessous.

evaluate results by hdevengine parameter 1
Chemin du programme HDev

Description: Ce paramètre sert à spécifier le chemin du programme HDev, c’est-à-dire le chemin du programme principal dans Halcon HDevelop.

Dossier des procédures externes

Description: Ce paramètre sert à spécifier le chemin où sont stockées les procédures externes Halcon (plusieurs chemins peuvent être ajoutés en les séparant par des points-virgules, “;”).

Nom de la procédure

Description: Ce paramètre sert à définir le nom de la procédure externe. Vous pouvez sélectionner le nom dans la liste déroulante.

Paramètres de débogage

Les paramètres dans “Debugging Settings” sont illustrés dans la figure ci-dessous.

evaluate results by hdevengine parameter 2
Débogage en ligne

Description: Sélectionnez pour activer le serveur de débogage. Vous pourrez alors vérifier en temps réel dans Halcon HDevelop les données entrées par Mech-Vision et déboguer le programme.

Réglage par défaut: Non sélectionné.

Instruction de réglage: Une fois Online Debugging sélectionné, allez dans la barre de menus de HALCON HDevelop et cliquez sur Exécuter  Attacher au processus\..., puis cliquez sur OK dans la fenêtre contextuelle pour activer le serveur de débogage. Si le serveur de débogage n’est pas activé dans Halcon, Mech-Vision peut présenter des lenteurs pendant l’exécution.

Recommandation de réglage: Veuillez sélectionner l’option selon vos besoins réels.

Paramètres d’entrée

Les paramètres dans “Input Settings” sont illustrés dans la figure ci-dessous.

evaluate results by hdevengine parameter 3

Les Input Settings ne peuvent être configurés qu’après avoir saisi le Procedure Name, sinon les paramètres correspondants n’apparaîtront pas.

Nom du port d’entrée

Description: Ce paramètre sert à spécifier le(s) type(s) de données du(des) port(s) d’entrée.

Noms des variables de contrôle en entrée

Description: Ce paramètre sert à définir la liste des noms des données de contrôle en entrée.

Noms des variables iconiques en entrée

Description: Ce paramètre sert à définir la liste des noms des données iconiques en entrée.

Paramètres de sortie

Les paramètres dans “Output Settings” sont illustrés dans la figure ci-dessous.

evaluate results by hdevengine parameter 4
Nom du port de sortie

Description: Ce paramètre sert à spécifier le(s) type(s) de données du(des) port(s) de sortie.

Données de contrôle en sortie

Description: Ce paramètre sert à définir la liste des noms des données de contrôle en sortie.

Données iconiques en sortie

Description: Ce paramètre sert à définir la liste des noms des données iconiques en sortie.

Instructions

Prérequis

Pour utiliser l’étape “Evaluate Results by HDevEngine”, les deux prérequis suivants doivent être remplis, sinon l’étape ne pourra pas être trouvée dans la bibliothèque d’étapes.

  1. Le logiciel Halcon HDevelop sous licence a été installé sur votre ordinateur.

  2. Copiez les fichiers DLL concernés, comme indiqué dans la figure ci-dessous, depuis le Installation folder\\bin\\x64-win64 de Halcon HDevelop vers le dossier d’installation de Mech-Vision. Ensuite, activez le plugin step_hdev_engine via Aide  À propos des plug-ins dans la barre de menus de Mech-Vision, puis redémarrez Mech-Vision pour que les modifications prennent effet.

    evaluate results by hdevengine dll file

Méthodes prises en charge pour appeler des programmes Halcon

  • Appeler un programme principal HDev dans Mech-Vision, et il n’y a aucune procédure externe dans le programme principal.

  • Appeler un programme principal HDev dans Mech-Vision, et il y a plusieurs procédures externes dans le programme principal.

  • Appeler une seule procédure externe dans Mech-Vision.

Types de données pris en charge pour la conversion

Dans le projet Mech-Vision, lorsque d’autres étapes envoient des données à cette étape, les types de données pris en charge par Mech-Vision sont convertis en types de données pris en charge par Halcon. Lorsque cette étape envoie des données à d’autres étapes, les types de données pris en charge par Halcon sont convertis en types de données pris en charge par Mech-Vision.

Les informations détaillées sur les types de données pris en charge pour la conversion sont les suivantes.

  • Types de données iconiques

Halcon data type Mech-Vision Data type Remarque

Image

Image

Les types de données pris en charge par Mech-Vision et par Halcon peuvent être convertis l’un en l’autre.

  • Types de données de contrôle

Halcon data type Mech-Vision Data type Remarque

Tuple

NumberList, String, StringList, Variant, VariantList

Lorsque d’autres étapes envoient des données à cette étape, le type de données Mech-Vision en entrée peut être converti en tuples, qui peuvent être une collection de données hétérogènes. Lorsque cette étape envoie des données à d’autres étapes, seuls les tuples contenant un type de données unique peuvent être convertis en un type de données pris en charge par Mech-Vision.

integer

NumberList

Ce n’est que lorsque l’étape envoie des données à d’autres étapes que les types de données pris en charge par Halcon peuvent être convertis en types de données pris en charge par Mech-Vision.

real

NumberList

Ce n’est que lorsque l’étape envoie des données à d’autres étapes que les types de données pris en charge par Halcon peuvent être convertis en types de données pris en charge par Mech-Vision.

string

String

Ce n’est que lorsque l’étape envoie des données à d’autres étapes que les types de données pris en charge par Halcon peuvent être convertis en types de données pris en charge par Mech-Vision.

Remarques

Veuillez prêter attention aux points suivants lorsque vous utilisez l’étape “Evaluate Results by HDevEngine” pour exécuter le programme Halcon.

  • Input Settings n’a pas besoin d’être configuré lorsque seul le programme principal est exécuté.

  • L’exécution simultanée du programme principal et des procédures externes n’est pas prise en charge.

  • Si vous souhaitez déboguer ou modifier le code du programme Halcon, veuillez sélectionner “Reload File” dans Execution Flags, afin que la version la plus récente du programme Halcon soit rechargée à chaque exécution du projet. Si l’option “Reload File” n’est pas sélectionnée, la version non modifiée du programme sera chargée lors de la prochaine exécution du projet.

Exemples d’utilisation

Exemple 1: Appeler un programme principal HDev sans aucune procédure externe

Le programme Halcon utilisé dans cet exemple est présenté ci-dessous.

read_image (Image, 'fabrik')

regiongrowing (Image, Regions, 1, 1, 3, 200)

area_center (Regions, Area, Row, Column)

Après avoir enregistré le programme ci-dessus dans Halcon HDevelop, vous pouvez appeler le programme dans Mech-Vision. Le flux opérationnel comprend les étapes suivantes.

  1. Définissez le chemin du programme principal. Définissez hDev Program Path dans les paramètres de l’étape “Evaluate Results by HDevEngine”.

  2. Configurez les ports de sortie. Selon les types de données utilisés dans Halcon, définissez le paramètre Output Port Name.

  3. Définissez les noms des données de sortie. Selon les noms de données correspondants dans Halcon, définissez Output Ctrl Var Names et Output Iconic Var Names.

Après avoir terminé les opérations ci-dessus, les paramètres de l’étape sont présentés comme suit.

evaluate results by hdevengine example main paramter

Le projet Mech-Vision correspondant à cet exemple est présenté ci-dessous. Vous pouvez double-cliquer sur le flux de données correspondant aux ports de sortie pour vérifier les résultats.

evaluate results by hdevengine example main

Exemple 2: Appeler un programme principal HDev avec plusieurs procédures externes

Le programme Halcon utilisé dans cet exemple est présenté ci-dessous.

* atoms.hdev: Locates irregularities in an atomic grid structure
*
dev_close_window ()
dev_update_window ('off')
* ****
* Acquire image
* ****
read_image (Image, 'atoms')
get_image_size (Image, Width, Height)
crop_rectangle1 (Image, Image, Height / 2, 0, Height - 1, Width - 1)
get_image_size (Image, Width, Height)
*dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowID)
*set_display_font (WindowID, 14, 'mono', 'true', 'false')
dev_set_draw ('margin')
dev_set_line_width (2)
dev_display (Image)
*disp_message (WindowID, 'Original image', 'window', 12, 12, 'black', 'true')
*disp_continue_message (WindowID, 'black', 'true')
stop ()
* ****
* Segment image
* ****
* -> Using watershed
gauss_filter (Image, ImageGauss, 5)
watersheds (ImageGauss, Basins, Watersheds)
dev_display (Image)
dev_set_colored (12)
dev_display (Watersheds)
*disp_message (WindowID, 'Watersheds', 'window', 12, 12, 'black', 'true')
*disp_continue_message (WindowID, 'black', 'true')
stop ()
* ****
* Process regions
* ****
* -> Skip regions at the border of the image
smallest_rectangle1 (Basins, Row1, Column1, Row2, Column2)
select_shape (Basins, SelectedRegions1, 'column1', 'and', 2, Width - 1)
select_shape (SelectedRegions1, SelectedRegions2, 'row1', 'and', 2, Height - 1)
select_shape (SelectedRegions2, SelectedRegions3, 'column2', 'and', 1, Width - 3)
select_shape (SelectedRegions3, Inner, 'row2', 'and', 1, Height - 3)
* -> Select irregularly shaped atoms
select_shape (Inner, Irregular, ['moments_i1','moments_i1'], 'or', [0,9.5e8], [1.5e8,1e10])
dev_display (Image)
dev_set_line_width (1)
dev_set_color ('white')
dev_display (Inner)
dev_set_line_width (3)
dev_set_color ('red')
dev_display (Irregular)
*disp_message (WindowID, 'Defects', 'window', 12, 12, 'black', 'true')

Après avoir enregistré le programme ci-dessus dans Halcon HDevelop, vous pouvez appeler le programme dans Mech-Vision. Le flux opérationnel comprend les étapes suivantes.

  1. Définissez le chemin du programme principal. Définissez hDev Program Path dans les paramètres de l’étape “Evaluate Results by HDevEngine”.

  2. Définissez le chemin des procédures externes. Définissez le chemin des procédures externes dans External Procedure Folder dans les paramètres de l’étape “Evaluate Results by HDevEngine”.

  3. Configurez les ports de sortie. Selon les types de données utilisés dans Halcon, définissez le paramètre Output Port Name.

  4. Définissez les noms des données de sortie. Selon les noms de données correspondants dans Halcon, définissez Output Ctrl Var Names et Output Iconic Var Names.

Après avoir terminé les opérations ci-dessus, les paramètres de l’étape sont présentés comme suit.

evaluate results by hdevengine example procedure paremter

Le projet Mech-Vision correspondant à cet exemple est présenté ci-dessous. Vous pouvez double-cliquer sur le flux de données correspondant aux ports de sortie pour vérifier les résultats.

evaluate results by hdevengine example procedure

Exemple 3: Appeler une seule procédure externe

Le programme Halcon utilisé dans cet exemple est présenté ci-dessous.

gauss_filter(Image, Image_Gauss, Kernel_Size)

regiongrowing (Image_Gauss, Regions, 1, 1, 3, 200)

area_center (Regions, Area, Row, Column)

return ()

Après avoir enregistré le programme ci-dessus dans Halcon HDevelop, vous pouvez appeler le programme dans Mech-Vision. Le flux opérationnel comprend les étapes suivantes.

  1. Définissez le chemin des procédures externes. Définissez le chemin des procédures externes dans External Procedure Folder dans les paramètres de l’étape “Evaluate Results by HDevEngine”.

  2. Définissez le nom de la procédure externe. Sélectionnez le nom de la procédure externe dans la liste déroulante du paramètre Procedure Name.

  3. Configurez les ports d’entrée. Selon la liste des paramètres de la procédure externe, définissez le paramètre Input Port Name.

  4. Définissez les noms des données d’entrée. Selon les noms de données correspondants dans Halcon, définissez Input Ctrl Var Names et Input Iconic Var Names.

  5. Configurez les ports de sortie. Selon les types de données utilisés dans Halcon, définissez le paramètre Output Port Name.

  6. Définissez les noms des données de sortie. Selon les noms de données correspondants dans Halcon, définissez Output Ctrl Var Names et Output Iconic Var Names.

Après avoir terminé les opérations ci-dessus, les paramètres de l’étape sont présentés comme suit.

evaluate results by hdevengine example procedure name paramter

Le projet Mech-Vision correspondant à cet exemple est présenté ci-dessous. Vous pouvez double-cliquer sur le flux de données correspondant aux ports de sortie pour vérifier les résultats.

evaluate results by hdevengine example procedure name

Cette page est-elle utile ?

Veuillez nous indiquer comment améliorer :

Nous accordons de l’importance à votre vie privée

Nous utilisons des cookies pour vous offrir la meilleure expérience possible sur notre site web. En continuant à utiliser le site, vous reconnaissez accepter l’utilisation des cookies. Si vous refusez, un cookie unique sera utilisé pour garantir que vous ne soyez pas suivi ou reconnu lors de votre visite sur ce site.