HALCON 21.11 Prugressu

Un accessu rapidu à e funziunalità di HALCON, Versione 21.11.0.0
Tutti i diritti riservati. Nisuna parte di sta publicazione pò esse riprudutta, almacenata in un sistema di ricuperazione, o trasmessa in qualsiasi forma o per qualsiasi mezzu, elettronicu, meccanicu, fotocopia, arregistramentu, o altrimenti, senza permessu scrittu di l'editore.
Copyright © 2003-2021 da MVTec Software GmbH, München, Germania
Prutettu da i seguenti brevetti: US 7,239,929, US 7,751,625, US 7,953,290, US 7,953,291, US 8,260,059, US 8,379,014, US 8,830,229. Ulteriori brevetti pendenti.
Microsoft, Windows, Windows Server 2008/2012/2012 R2/2016, Windows 7/8/8.1/10, Microsoft .NET, Visual C++ è Visual Basic sò marchi o marchi registrati di Microsoft Corporation.
Linux hè una marca di Linus Torvalds.
macOS è OpenCL sò marchi di Apple Inc.
NVIDIA, CUDA, cuBLAS è cuDNN sò marchi o marchi registrati di NVIDIA Corporation.
OpenGL hè una marca di Silicon Graphics, Inc.
Tutti l'altri marchi è nomi di cummerciale ricunnisciuti naziunale è internaziunale sò cunnisciuti.
Più infurmazione nantu à HALCON pò esse truvata à: http://www.halcon.com/
Circa stu Manuale
Stu manuale vi presenta HALCON. Hè destinatu à i principianti senza cunniscenza previa di HALCON.
Stu manuale pò ancu esse usatu cum'è una guida di riferimentu à parechji altri manuali HALCON, postu chì li interconnetta in i seguenti temi:
- Installazione di HALCON (pagina 7)
Stu capitulu presenta u Manager di Software MVTec (SOM). - HALCON Architecture (pagina 9)
Certi sfondate teorichi, bisognu di capisce ciò chì HALCON hè è cumu si travaglia. - Cumu Sviluppà Applicazioni (pagina 15)
Stu capitulu spiega trè approcci basi per u sviluppu cù HALCON è vi guida à traversu una prima prugrammazione example. - Cumu cuntinuà (pagina 19)
Stu capitulu si riferisce à fonti supplementari d'infurmazioni.
Installazione di HALCON
Per l'utilizatori di Linux è Windows, ricumandemu di scaricà è di stallà HALCON via u Manager Software MVTec (SOM). SOM hè un gestore di stallazione per i pacchetti software. Parmette l'accessu à un catalogu remotu di i prudutti, è sustene, frà altre funziunalità, u scaricamentu è a stallazione di pacchetti. Una introduzione passu à passu nantu à cumu installà HALCON via SOM pò esse truvata in a Guida di Installazione.
L'architettura HALCON
L'architettura basica di HALCON hè illustrata in a figura 2.1. A parte principale hè a biblioteca di trasfurmazioni di l'imaghjini, chì hè custituita da più di 2000 operatori. Pudete ancu sviluppà i vostri propri operatori in forma di i cosiddetti pacchetti ex-tension (pagina 11). Aduprate l'operatori in a vostra applicazione via interfacce di lingua (pagina 11) cum'è HALCON/C++ o HALCON/Python. Quessi sò biblioteche chì permettenu un usu direttu di l'operatori in u stilu tipicu di prugrammazione di e diverse lingue di prugrammazione.

Figura 2.1: L'architettura basica di HALCON.
Per l'accessu à i dispositi di acquisizione di l'imaghjini, HALCON furnisce interfacce di acquisizione di l'imaghjini (pagina 13) chì vi permettenu di utilizà dispositi di acquisizione assai diffirenti in modu cumuni. E biblioteche chì cuntenenu implementazioni specifiche di u dispositivu sò caricate dinamicamente quandu hè necessariu. De la même manière, on accède aux appareils I/O via des interfaces E/S spécifiques à chaque appareil (page 13).
Operatori
Ogni volta chì ogni tipu di funziunalità hè aduprata da a biblioteca HALCON, hè fatta via un operatore. A maiò parte di elli includenu parechji metudi, chì sò selezziunati via paràmetri. Una lista completa di tutti l'operatori pò esse truvata in u HALCON Operator Reference dispunibule in HDevelop, .NET, Python, C++, è sintassi C. E caratteristiche impurtanti di l'operatori sò:
- Ùn ci hè micca gerarchia trà l'operatori. Da u puntu di l'architettura di u software view, tutti l'operatori sò à u listessu livellu.
- Di sicuru, ci sò gruppi lògichi di uperatori. Per esample, questu pò esse vistu da e classi pruposti per C++ è .NET, induve l'operatori chì trattanu u listessu tipu di dati sò funzioni membri di e classi currispundenti.
- U disignu di l'operatori segue e regule di l'architettura aperta. Dunque, pudete creà u vostru propiu operatore è cusì allargà HALCON (vede a sezione 2.2). U Manuale di u Programmatore di u Pacchettu di Estensione cuntene infurmazioni detallate nantu à l'estensione di a biblioteca di l'operatore.
- Parechji operatori ponu fà un usu trasparenti di a parallelisazione automatica, chì permette un modu faciule di accelerà u prugramma quandu si usanu grandi imagine in un computer multi-processore o multi-core. L'infurmazione dettagliata nantu à a prugrammazione parallela pò esse truvata in a nota tecnica Programmazione Parallela, è ancu in a Guida di u Programmatore.
- L'operatori anu reguli standardizati per l'urdinamentu di i paràmetri di input è output: input iconic, output iconic, input control, and output control (vede a sezione 2.1.1). Ùn tutti i gruppi puderanu esse necessariu per un operatore determinatu. In generale, i paràmetri di input di l'operatori ùn sò micca mudificati, chì risultatu in una semantica chjara è simplice. Ci hè solu uni pochi eccezzioni à stu disignu, per esempiu, set_grayval, overpaint_gray è overpaint_region.
Parametri è Strutture di Dati
HALCON hà dui tipi basi di paràmetri: dati iconichi è dati di cuntrollu. L'imaghjini, e regioni è i XLD (eXtented Line Description) appartenenu à i dati iconichi.
Images custituitu principarmenti di canali, vale à dì, matrici chì cuntenenu valori di pixel. Tutti i canali di una maghjina anu a stessa dimensione. Per infurmazione dettagliata nantu à i pixel è i canali, leghjite u capitulu "Image" di u Riferimentu Operatore HALCON.
Per ogni imagine, a chjamata regione d'interessu (ROI) specifica quale parte di l'imaghjini hè trattata. U ROI pò esse definitu assai flexiblemente (da un rectangulu simplice à un settore di pixel cunnessi). Per i dettagli nantu à a gestione di u ROI vede a Soluzione Guida I, Regione d'interessu à a pagina 27.
Regioni sò un inseme di pixel. I pixel di una regione ùn anu micca bisognu à esse cunnessi. Ancu una cullizzioni arbitraria di pixel pò esse trattata cum'è una sola regione. Cù a cunnessione di l'operatore, una regione pò esse divisa in e so regioni cunnessi, vale à dì, cumpunenti custituiti da pixel cunnessi.
XLD comprende tutti i dati basati su contorni e poligoni. L'operatori subpixel-accurate cum'è edges_sub_pix tornanu i contorni cum'è dati XLD. Un contour hè una sequenza di punti di cuntrollu 2D, chì sò cunnessi da linee. Di genere, a distanza trà i punti di cuntrollu hè di circa un pixel. L'uggetti XLD cuntenenu, in più di i punti di cuntrollu, cusì chjamati attributi lucali è glubale. tipicu examples per questi sò, per esempiu, u bordu amplitudine di un puntu di cuntrollu o i paràmetri di regressione di un segmentu di cuntorni. In più di l'estrazione di l'oggetti XLD, HALCON supporta più trasfurmazioni. Esampi per questu sò a selezzione di contorni basati nantu à intervalli di caratteristiche date per a segmentazione di un contornu in linee, archi, poligoni o paralleli.
I dati di cuntrollu includenu manichi è tipi di dati basi cum'è integer, real, string.
Manichi sò riferimenti à strutture cumplessi di dati, per esempiu, una cunnessione à una interfaccia d'acquisizione di l'imaghjini o un mudellu per l'abbinamentu basatu in forma. Per ragioni di efficienza è di sicurità di dati, micca tutta a struttura, ma solu u manicu hè passatu trà l'operatori. I manichi sò valori magichi chì ùn deve micca esse cambiatu è ponu differisce da l'esekzione à l'esekzione è a versione à a versione. Sò sguassati automaticamente una volta chì tutte e referenze sò soprascritti. Esampi quali induve i manichi sò usati sò finestri grafichi, files, sockets, interfacce di acquisizione d'imaghjini, OCR, OCV, misurazione è currispundenza.
Pacchetti di estensione
HALCON pò esse allargatu da novi operatori. Ancu se HALCON cuntene digià un inseme abbundante di operatori per diverse attività, pudete vulete implementà novi operatori, per esempiu, per accede à un hardware speciale o per implementà un algoritmu alternativu. Per fà cusì, HALCON furnisce l'Interfaccia di Pacchetti di Estensione, chì permette l'integrazione di novi operatori (implementati in C) in forma di i cosiddetti pacchetti di estensione. L'Extension Package Interface cuntene parechje rutine predefinite è macros per a manipulazione faciule di l'imaghjini di l'imaghjini è l'uggetti di memoria in C. Una volta chì un novu operatore hè statu integratu successu, pò esse usatu cum'è qualsiasi altru operatore HALCON. U Manuale di u Programmatore di u Pacchettu di Estensione cuntene infurmazioni detallate nantu à l'estensione di a biblioteca di l'operatore.
Interfacce di lingua
Cum'è mostra in a figura 2.1 in a pagina 9, HALCON furnisce l'interfaccia di lingua chjamata. Quessi sò ligami in lingua nativa, chì vi permettenu di chjamà l'operatori è aduprà tipi di dati HALCON direttamente da a vostra applicazione, sia Python, C, C++, o .NET.
Per principià u sviluppu, ricumandemu di prima cuntrollà unu di l'ex pronti à curririampi prugrammi. Quì, pudete vede cumu u prugettu deve esse stallatu è cumu l'operatori è i tipi sò usati.
Per ogni interfaccia di lingua, i nomi di tippi, classi, cunvenzioni di nomenamentu di l'operatori, etc. pò esse diffirenti per esse cumpletu cù e regule tipiche chì s'applicanu à a lingua scelta. E firme di l'operatore per e lingue di prugrammazione supportate sò documentate in u Riferimentu di l'operatore HALCON.
HALCON/Python
L'interfaccia Python si distingue per a so simplicità è a so capacità di prototipazione rapida. L'operatori HALCON sò chjamati direttamente cum'è funzioni standalone, dopu avè impurtatu u modulu HALCON / Python. Nota ancu chì i paràmetri di l'operatore in HALCON / Python sò spartuti in paràmetri di funzione (inputs) è valori di ritornu (output).
Example
U codice seguente leghje una maghjina è calcula u numeru di regioni cunnessi (pagina 10) in questu.
img = ha.read_image('pcb')
regione = ha.threshold(img, 0, 122)
num_regions = ha.count_obj (ha.connection (regione))
print(f'Number of Regions: {num_regions}')
Per i prerequisiti è una guida dettagliata, vede a Guida di u Programmatore, Parte 4, A First Example.
HALCON/C
L'interfaccia C hè l'interfaccia più simplice supportata da HALCON. Ogni operatore hè rapprisintatu da una o duie funzioni globale induve u nome di l'operatore è a sequenza di paràmetri sò identiche à a lingua HDevelop.
Example
U codice seguente leghje una maghjina è calcula u numeru di regioni cunnessi (pagina 10) in questu.
Hobject img;
read_image(&img, "pcb");
regione Hobject;
threshold (img, ®ion, 0, 122);
Hobject connection_regions;
cunnessione (regione, ®ioni_cunnesse);
Hlong num_regions = 0;
count_obj (regioni_cunnesse, &num_regions);
printf("Number of Regions: %" PRIdPTR "\n", num_regions);
Per i prerequisiti è una guida dettagliata, vede a Guida di u Programmatore, Parte 5, A First Example.
HALCON/C++
L'interfaccia C++ hè assai più sofisticata cà l'interfaccia C. Eccu, l'avantitages di C ++ è prugrammazione uggettu-orientatu sò usati, vale à dì, cunversione tipu autumàticu, custruzzione è distruzzioni, o funzioni di raggruppamentu inseme cù i so dati in classi. Cum'è in l'interfaccia C, e funzioni globale per ogni operatore HALCON sò furnite per un stile procedurale di prugrammazione.
Example
U codice seguente leghje una maghjina è calcula u numeru di regioni cunnessi (pagina 10) in questu.
HImage img {"pcb"};
HRregione = img.Threshold(0, 122);
Hlong numRegions = regione.Connection().CountObj();
std::cout << "Number of Regions:" << numRegions << '\n';
Per i prerequisiti è una guida dettagliata, vede a Guida di u Programmatore, Parte 2, A First Example.
HALCON/.NET
C# è Visual Basic .NET utilizanu HALCON via l'interfaccia .NET.
Analogamente à C++, sò offerti dui stili di prugrammazione: procedurale è orientatu à l'ughjettu. Per u stilu procedurale, a classa HOperatorSet furnisce tutti l'operatori HALCON, induve HObject hè utilizatu per trattà e dati iconichi è HTuple hè utilizatu per i dati di cuntrollu. Per u stilu orientatu à l'ughjettu, classi cum'è HDataCode2d, HMeasure, o HShapeModel sò furnite per a funziunalità cintrali. Inoltre, e classi per i dati iconichi, per esempiu, HImage o HRegion, sò dispunibili.
Example
U codice seguente leghje una maghjina è calcula u numeru di regioni cunnessi (pagina 10) in questu.
HImage img = nova HImage ("pcb");
HRregione = img.Threshold(0d, 122d);
int numRegions = regione.Connection().CountObj();
Console.WriteLine ("Number of Regions: " + numRegions);
Per i prerequisiti è una guida dettagliata, vede a Guida di u Programmatore, Parte 3, A First Example.
Interfacce di Acquisizione di l'Image
L'interfaccia di acquisizione di l'imaghjini di HALCON formanu u ponte trà u software furnitu da u fabricatore di u dispusitivu di acquisizione di l'imaghjini è HALCON. Formanu una interfaccia cumuna è generica chì richiede solu un picculu gruppu di operatori. Per piacè riferite à a Soluzione Guide II-A per infurmazioni detallate nantu à questu tema.
Attualmente, HALCON furnisce interfacce per più di 50 frame grabbers è centinaie di camere industriali in forma di biblioteche caricabili dinamicamente (Windows: DLL; Sistemi Unix-like: biblioteche spartute). I nomi di biblioteche cumincianu cù u prefissu hAcq; e librerie chì finiscinu cù u suffissu xl sò aduprate da HALCON XL.
L'interfacce più largamente usate basate nantu à i standard di l'industria sò digià stallate inseme cù e librerie HALCON. Interfacce supplementari, è ancu l'ultime versioni di l'interfaccia digià inclusa ponu esse scaricate sottu https://www.mvtec.com/products/interfaces. L'interfaccia di acquisizione di l'imaghjini HALCON pò cambià più freti chè a biblioteca HALCON stessu. Una ragiuni di questu hè chì MVTec sviluppa continuamente novi interfacce; Inoltre, se u software furnitu da i pruduttori di i dispositi di acquisizione di l'imaghjini cambia, per esempiu, se sò integrate novi funzioni, l'interfaccia HALCON currispundenti seranu adattate. Per piacè riferite ancu à u Riferimentu di l'Interfaccia di Acquisizione di l'Image per una lista completa di l'interfacce di acquisizione di l'imagine supportate.
Una volta installatu bè u vostru dispositivu di acquisizione di l'imaghjini, tuttu ciò chì duvete fà per accede da HALCON hè di chjamà l'operatore open_framegrabber, specificendu u nome di l'interfaccia di acquisizione di l'imaghjini è qualchì infurmazione supplementaria, per esempiu, in quantu à a camera cunnessa. Allora, l'imaghjini ponu esse pigliati chjamendu l'operatore grab_image (o grab_image_async).
Interfacce I / O
HALCON furnisce interfacce per parechji dispositi I/O per attivà l'acquisizione di dati. Queste interfacce sò dispunibuli cum'è biblioteche caricabili dinamicamente (Windows: DLL; Sistemi Unix-like: biblioteche spartute). I nomi di biblioteche cumincianu cù u prefissu hio; e librerie chì finiscinu cù u suffissu xl sò aduprate da HALCON XL.
L'interfaccia di i dispositi HALCON I/O furnisce un accessu unificatu à diversi dispositi I/O utilizendu un picculu gruppu di operatori. Dopu avè installatu u vostru dispositivu I/O, una cunnessione hè stabilita utilizendu l'operatore open_io_device, specificendu u nome di l'interfaccia di u dispositivu I/O è, eventualmente, alcuni paràmetri specifichi di u dispusitivu. Quandu a cunnessione hè stabilita, un canale di trasmissione pò esse apertu chjamendu open_io_channel. Per leghje è scrive i valori nantu à stu canale, utilizate l'operatori read_io_channel è write_io_channel, rispettivamente.
Per piacè nutate chì l'interfaccia di u dispositivu HALCON I/O pò cambià più freti chè a biblioteca HALCON stessa. Pudete truvà l'ultime infurmazione inseme cù interfacce scaricabili (cumprese a documentazione) sottu https://www.mvtec.com/products/interfaces. Per piacè riferite ancu à u Riferimentu di l'interfaccia di i dispositi I/O per una lista completa di l'interfacce di i dispositi I/O supportati.
Cumu Sviluppà Applicazioni
Hè cunsigliatu di principià cù prototipi rapidi in HDevelop, l'ambiente di sviluppu interattivu per a biblioteca di visione di macchina HALCON. Pudete aduprà HDevelop per truvà l'operatori è i paràmetri ottimali per risolve u vostru compitu di analisi di l'imaghjini. Dopu avè sviluppatu un prugramma HDevelop secondu e esigenze date, deve esse traduttu in u so ambiente finali. Per questu, pudete sceglie trà e trè approcci seguenti, secondu e vostre preferenze:
- Partenza da Scratch: Scrivite u vostru prugramma da zero significa traduce u vostru codice HDevelop in a lingua di prugrammazione di destinazione (C++, Python ...) manualmente. Comu diciatu prima, i cunvenzioni di nomenclatura di l'operatori, i nomi di classi, etc., ponu esse diffirenti trà e lingue di prugrammazione. Fighjate à u Riferimentu di l'operatore HALCON per uttene e firme di l'operatore HALCON per ogni lingua di prugrammazione supportata. Per infurmazione nantu à cumu creà applicazioni in a vostra lingua di destinazione desiderata, leghjite a Guida di u Programmatore.
- Esporta codice HDevelop: Traduce u vostru codice HDevelop in a lingua di prugrammazione di destinazione automaticamente utilizendu l'esportazione di codice HDevelop.
- Prughjettu di l'esportazione di a biblioteca: L'esportazione di a biblioteca di HDevelop genera un cartulare di prughjettu prontu per l'usu, cumprese u codice wrap-per in a lingua di destinazione è u CMake. file per custruisce u prugettu. L'esportazione di a biblioteca di HDevelop usa HDevEngine, una libreria chì agisce cum'è interprete. HDevEngine vi permette di eseguisce direttamente programmi HDevelop o prucedure da una applicazione scritta in C++ o qualsiasi lingua chì pò integrà l'oggetti .NET. Cusì, ùn avete micca bisognu di recompilà tutta l'applicazione quandu fate cambiamenti à u codice HDevelop.
Di sicuru, pudete aduprà HDevEngine senza aduprà a funzione d'esportazione di biblioteca di HDevelop. Cumu aduprà HDevEngine hè descrittu in dettagliu in a Guida di u Programmatore, Parte 6 (Usendu HDevEngine).
H Sviluppà
Fighjemu un primu sguardu à HDevelop. A Figura 3.1 mostra l'interfaccia d'utilizatore di HDevelop, dopu chì un prugramma hè stata caricata è in parte eseguita.
Per automaticamente, sti finestri sò visibili, chì sò ancu essenziali per u sviluppu cù HDevelop:
- Finestra Grafica Mostra risultati (intermedi), vale à dì dati iconichi (pagina 10) cum'è imagine, regioni è XLD.
- Finestra di u prugramma Questu hè induve scrive u vostru codice di u prugramma, utilizendu l'operatori (pagina 10) per accede à i metudi di trasfurmazioni di l'imaghjini di HALCON.
- Finestra Variabile Mostra tutte e variàbili, vale à dì variabili iconichi è variabili di cuntrollu. Variabili iconichi cuntenenu dati iconichi (pagina 10) è variabili di cuntrollu cuntenenu dati di cuntrollu (pagina 10).
L'infurmazione dettagliata nantu à HDevelop pò esse truvata in a Guida di l'Usuariu di HDevelop. I nostri video tutoriali offrenu ancu una bona introduzione à HDevelop:
- HDevelop Tutorial 01: GUI è Navigazione
- HDevelop Tutorial 02: Variabili
- HDevelop Tutorial 03: Visualizazione

Figura 3.1: L'interfaccia d'utilizatore di HDevelop.
Exampu prugramma
Avà chì avete statu introduttu à l'Interfaccia d'Usuariu di HDevelop è i cuncetti basi di HALCON (pagina 9), sviluppemu una applicazione C++ utilizendu l'Approcciu di Esporta Biblioteche.
In più di e seguenti struzzioni step-by-step, ricumandemu di fighjà i nostri video tutoriali: Integrate u codice HDevelop in una applicazione C++ utilizendu a Libreria Project Export.
Integrate u codice HDevelop in una applicazione C# usendu l'esportazione di u prughjettu di a biblioteca
I video mostranu l'esportazione di a biblioteca è furnisce più infurmazione di fondo nantu à u tema.
Crea prototipu in HDevelop
U compitu di i seguenti example hè di leghje una maghjina è cuntà u numeru di regioni cunnessi.
- Aprite HDevelop è inserite u seguente codice in a finestra di u prugramma:
read_image (Image, 'pcb')
soglia (Image, Regione, 0, 122)
cunnessione (Regione, ConnectedRegions)
count_obj (ConnectedRegions, Number) - Pruvate u vostru prugramma clicchendu Run in a toolbar o pressu F5 .
Per integrà facilmente stu codice HDevelop in una applicazione attuale, incapsulemu a parte di visione di a macchina in una prucedura lucale.
- Evidenziate e seguenti linee di codice: threshold (Image, Region, 0, 122) connection (Region, ConnectedRegions) count_obj (ConnectedRegions, Number)
- Cliccate cù u dirittu per apre u menù di cuntestu.
- Sceglite Crea una nova prucedura.
- Nominate count_regions.
- Selezziunate Parametri è cambiate Schema di Selezzione in First In, Last Out.
- Cunfirmà cù OK.
- Salvà u vostru prugramma HDevelop cum'è hdev_count_regions.hdev
Preparate Visual Studio Project
In questu example, avemu aduprà Visual Studio 2019. 1
- Crea un prughjettu di C++ Windows Console vacanti è chjamate vs_count_regions. Per piacè attivate l'opzione Pone a suluzione è u prughjettu in u stessu cartulare. 2
- Aghjunghjite una fonte C++ file (Menu Prughjettu Add New Item... C++ File) è u nome vs_count_regions.cpp.
- Sceglite a piattaforma di suluzione x64 da u menù drop-down in a toolbar.
- Apertura e proprietà di u vostru prughjettu (Menu Project vs_count_regions Properties...) è fate i seguenti paràmetri:
- Selezziunate C/C++ Generale è aghjunghje i seguenti Direttori Included Addiziunali: $(HALCONROOT)\include;$(HALCONROOT)\include\halconcpp;
- Selezziunate Linker Generale è aghjunghje l'annuariu di Biblioteche Addizionale: $(HALCONROOT)\lib\$(HALCONARCH);
- Selezziunate Linker Input è aghjunghje e seguenti Dipendenze Addiziunali: halconcpp.lib;hdevenginecpp.lib;
Prughjettu di l'esportazione di a biblioteca
Dopu, esportemu u nostru prugramma HDevelop hdev_count_regions.hdev in u nostru cartulare di prughjettu di Visual Studio.
- Aprite u prugramma HDevelop creatu prima hdev_count_regions.hdev.
- Apertu File Prughjettu di l'esportazione di a biblioteca...
- Fate i seguenti paràmetri:
- Input file: Programma attuale
- Lingua di destinazione: C++
- Nome di u prughjettu: hdev_count_regions
- Locu di u Prughjettu: Sceglite u locu di u nostru prughjettu Visual Studio vs_count_regions.
- Spaziu di nomi: hdev_count_regions
- Cunfirmà cù Esporta.
Avà, u vostru cartulare di prughjettu Visual Studio vs_count_regions deve cuntene almenu e seguenti dati:
- vs_count_regions.cpp (Source File)
- vs_count_regions.sln (Soluzione)
- hdev_count_regions (Cartella da HDevelop Export)
- cmake
- res_ hdev_ count_ regions
- hdev _ count_ regions. hdev
- fonte
- hdev_count_regions.cpp
- hdev_count_regions.h
- CMakeLists.txt
Integrate u Prughjettu di Biblioteca in Visual Studio
Infine, avemu da integrà u prugramma HDevelop in u nostru Prughjettu Visual Studio.
- Aprite u Prughjettu Visual Studio.
- Open Project Add Existing Item... è sceglite u C++ file hdev_count_regions.cpp è l'intestazione file hdev_count_regions.h, creatu da HDevelop's Library Export. (U files sò situati in u cartulare hdev_count_regions source.)
- Inserite u seguente codice in vs_count_regions.cpp:
#include
#include "HalconCpp.h"
#include "hdev_count_regions/source/hdev_count_regions.h"
int principale()
{
HalconCpp::HImage Image ("pcb");
hdev_count_regions::SetResourcePath ("hdev_count_regions/res_hdev_count_regions");
HalconCpp::HTuple Number{};
hdev_count_regions::count_regions(Image, &Number);
std::cout << "Number of Regions:" << Number.L() << '\n';
} - Eseguite u prugramma. → Una cunsola si apre, affissendu u risultatu "Number of regions: 43".
Cumu Cuntinuà
Per immersione più profonda in HALCON, offre più documentazione è supportu.
- HDevelop Exampi Programmi
HALCON furnisce una vasta gamma di exampi prugrammi, micca solu per HDevelop, ma ancu per diverse lingue di prugrammazione. Questi exampi pò esse truvati in u cartulare denotatu da a variabile d'ambiente % HALCONEXAMPLES% o, se a variàbile ùn hè micca stabilita, in u subdirectory examples di u cartulare in quale avete installatu HALCON.
Per apre un HDevelop exampu prugramma, selezziunà u menu File Sfoglia HDevelop Exampi Programmi…. Per i principianti, ricumandemu di selezziunà un example da a categuria Area Applicazioni. - Servizi è Supportu
I nostri websitu https://www.mvtec.com/services-support offre una varietà di supportu, per esempiuample video tutoriale, infurmazione nantu à i workshops è furmazioni, u corner di sviluppatori chì furnisce cunsiglii è trucchi, è assai di più. - Documentazione HALCON
A documentazione furnisce una ricchezza d'infurmazioni, da temi principianti à cunniscenze esperte. Per esample, i nostri Guide di Soluzione descrizanu i metudi di visione di a macchina è cumu si applicanu in HDevelop. Un bonu puntu di partenza hè a Soluzione Guida I chì vi introduce à i metudi principali di visione di a macchina.
Un sopraview di tutti i manuali cù una breve descrizzione ponu esse truvati nantu à a pagina di entrata di a documentazione.
Documenti / Risorse
![]() |
HALCON 21.11 Prugressu [pdfGuida di l'utente 21.11 Prugressu, 21.11, Prugressu |





