HALCON 21.11 Progress User Guide

HALCON-21-11-Progress-featured-image

halcon-logo

HALCON 21.11 Foarútgong

HALCON-21-11-Progress-produkt-ôfbylding

In flugge tagong ta de funksjonaliteit fan HALCON, Ferzje 21.11.0.0
Alle rjochten foarbehâlden. Gjin diel fan dizze publikaasje meie sûnder foarôfgeande skriftlike tastimming fan de útjouwer fermannichfâldige, opslein yn in opheljensysteem, of oerdroegen wurde yn hokker foarm of op hokker wize dan ek, elektroanysk, meganysk, troch fotokopy, opname of oars.

Copyright © 2003-2021 troch MVTec Software GmbH, München, Dútslân
Beskerme troch de folgjende patinten: 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. Fierdere patinten yn ôfwachting.
Microsoft, Windows, Windows Server 2008/2012/2012 R2/2016, Windows 7/8/8.1/10, Microsoft .NET, Visual C++ en Visual Basic binne hannelsmerken of registrearre hannelsmerken fan Microsoft Corporation.
Linux is in hannelsmerk fan Linus Torvalds.
macOS en OpenCL binne hannelsmerken fan Apple Inc.
NVIDIA, CUDA, cuBLAS, en cuDNN binne hannelsmerken as registrearre hannelsmerken fan NVIDIA Corporation.
OpenGL is in hannelsmerk fan Silicon Graphics, Inc.
Alle oare nasjonaal en ynternasjonaal erkende hannelsmerken en hannelsnammen wurde hjirby erkend.
Mear ynformaasje oer HALCON is te finen op: http://www.halcon.com/

Oer dizze hânlieding

Dizze hantlieding yntrodusearret jo oan HALCON. It is bedoeld foar begjinners sûnder foarkennis fan HALCON.
Dizze hantlieding kin ek brûkt wurde as in referinsjegids foar ferskate oare HALCON-hantliedingen, om't it se mei de folgjende ûnderwerpen ferbynt:

  1. HALCON ynstallearje (side 7)
    Dit haadstik yntrodusearret de MVTec Software Manager (SOM).
  2. HALCON-arsjitektuer (side 9)
    Guon teoretyske eftergrûn, nedich om te begripen wat HALCON is en hoe't it wurket.
  3. Hoe applikaasjes ûntwikkelje (side 15)
    Dit haadstik ferklearret trije basisbenaderingen foar ûntwikkeljen mei HALCON en liedt jo troch in earste programmearring eksample.
  4. Hoe trochgean (side 19)
    Dit haadstik ferwiist nei ekstra boarnen fan ynformaasje.

Ynstallaasje fan HALCON

Foar Linux en Windows-brûkers advisearje wy HALCON te downloaden en te ynstallearjen fia de MVTec Software Manager (SOM). SOM is in ynstallaasjebehearder foar softwarepakketten. It biedt tagong ta in katalogus fan produkten op ôfstân, en stipet, ûnder oare funksjes, it downloaden en ynstallearjen fan pakketten. In stap foar stap ynlieding oer hoe't jo HALCON fia SOM kinne ynstallearje is te finen yn 'e ynstallaasjegids.

HALCON Architecture

De basisarsjitektuer fan HALCON is ôfbylde yn figuer 2.1. It haaddiel is de byldferwurkingsbibleteek, dy't bestiet út mear as 2000 operators. Jo kinne ek ûntwikkelje jo eigen operators yn 'e foarm fan saneamde ex-spanning pakketten (side 11). Jo brûke de operators yn jo applikaasje fia taalynterfaces (side 11) lykas HALCON/C++ of HALCON/Python. Dit binne biblioteken dy't in direkt gebrûk fan 'e operators tastean yn' e typyske programmearstyl fan 'e ferskate programmeartalen.

HALCON-21-11-Foargong-01

Ofbylding 2.1: Basis arsjitektuer fan HALCON.

Foar de tagong fan apparaten foar oanwinst fan ôfbyldings leveret HALCON ynterfaces foar ôfbyldingswinning (side 13) wêrmei jo op in gewoane manier hiel ferskillende oanwinstapparaten kinne brûke. De biblioteken dy't de apparaatspesifike ymplemintaasjes befetsje wurde dynamysk laden as it nedich is. Op deselde manier wurde I/O-apparaten tagong fia apparaatspesifike I/O-ynterfaces (side 13).

Operators

Wannear't elke soart funksjonaliteit wurdt brûkt út 'e HALCON-bibleteek, wurdt it dien fia in operator. De measte fan harren omfetsje meardere metoaden, dy't wurde selektearre fia parameters. In folsleine list fan alle operators is te finen yn de HALCON Operator Reference beskikber yn HDevelop, .NET, Python, C++, en C syntaksis. Wichtige funksjes fan operators binne:

  • D'r is gjin hiërargy ûnder operators. Ut de software arsjitektuer punt fan view, alle operators binne op itselde nivo.
  • Fansels binne der logyske groepen fan operators. Bygelyksample, dit kin sjoen wurde troch de klassen oanbean foar C ++ en .NET, dêr't operators ferwurkjen fan deselde gegevens type binne lid funksjes fan de oerienkommende klassen.
  • It ûntwerp fan 'e operators folget de regels fan' e iepen arsjitektuer. Dêrom kinne jo jo eigen operators oanmeitsje en sa HALCON útwreidzje (sjoch paragraaf 2.2). It Hânlieding fan 'e Extension Package Programmer befettet detaillearre ynformaasje oer it útwreidzjen fan de operatorbibleteek.
  • In protte operators kinne transparant gebrûk meitsje fan automatyske parallellisaasje, wêrtroch in maklike manier om it programma te fersnellen by it brûken fan grutte ôfbyldings op in multi-prosessor of multi-core kompjûter. Detaillearre ynformaasje oer parallelle programmearring is te finen yn 'e technyske notysje Parallel Programming, lykas ek yn' e Program-mer's Guide.
  • Operators hawwe standerdisearre regels foar it bestellen fan ynput- en útfierparameters: ynput byldkaike, útfier byldkaike, input kontrôle en útfier kontrôle (sjoch paragraaf 2.1.1). Net alle groepen kinne nedich wêze foar in opjûne operator. Yn 't algemien wurde ynfierparameters fan operators net wizige, wat resulteart yn in dúdlike en ienfâldige semantyk. D'r binne mar in pear útsûnderingen op dit ûntwerp, bygelyks set_grayval, overpaint_gray en overpaint_region.

Parameters en gegevensstruktueren
HALCON hat twa basissoarten parameters: byldbepalende gegevens en kontrôlegegevens. Ofbyldings, regio's en XLD's (eXtented Line Description) hearre ta de byldbepalende gegevens.

Ofbyldings besteane benammen út kanalen, ie, matrices befetsje pixel wearden. Alle kanalen fan in ôfbylding hawwe deselde grutte. Foar detaillearre ynformaasje oer piksels en kanalen, lês asjebleaft it haadstik "Ofbylding" fan 'e HALCON Operator Reference.
Foar elke ôfbylding jout de saneamde regio fan belang (ROI) oan hokker diel fan 'e ôfbylding ferwurke wurdt. De ROI kin heul fleksibel wurde definieare (fan in ienfâldige rjochthoek oant in set fan net ferbûne piksels). Foar details oer ROI-ôfhanneling sjoch de Solution Guide I, Region of Interest op side 27.

Regio's binne in set fan piksels. De piksels fan in regio hoege net te ferbinen. Sels in willekeurige kolleksje fan piksels kin wurde behannele as ien regio. Mei de operatorferbining kin in regio opdield wurde yn syn ferbûne regio's, dat wol sizze komponinten besteande út ferbûne piksels.

XLDs befetsje alle kontoeren en polygon basearre gegevens. Subpixel-krekte operators lykas edges_sub_pix jouwe de kontoeren werom as XLD-gegevens. In kontoer is in sekwinsje fan 2D kontrôlepunten, dy't ferbûn binne troch linen. Typysk is de ôfstân tusken kontrôlepunten sawat ien piksel. XLD-objekten befetsje, neist de kontrôlepunten, saneamde lokale en globale attributen. Typysk eksamples foar dizze binne, bygelyks, de râne amplitude fan in kontrôle punt of de regression parameters fan in kontoer segment. Njonken de winning fan XLD-objekten stipet HALCON fierdere ferwurking. Examples foar dit binne de seleksje fan kontoeren basearre op opjûne funksje berik foar de segmentation fan in kontoer yn linen, bôgen, polygoanen of parallellen.

De kontrôlegegevens omfetsje hânfetten en basisgegevenstypen lykas integer, real, string.

Handgrepen binne ferwizings nei komplekse gegevens struktueren, bygelyks, in ferbining mei in byld akwisysje ynterface of in model foar de foarm-basearre matching. Om redenen fan effisjinsje en gegevensfeiligens wurdt net de heule struktuer, mar allinich de handgreep trochjûn tusken de operators. Hantsjes binne magyske wearden dy't net feroare wurde moatte en kinne ferskille fan útfiering nei útfiering en ferzje nei ferzje. Se wurde automatysk wiske as alle referinsjes oerskreaun binne. Examples wêr't hannelingen wurde brûkt binne grafyske finsters, files, sockets, interface foar ôfbyldingswinning, OCR, OCV, mjitten en oerienkommende.

Extension Packages

HALCON kin útwreide wurde troch nije operators. Hoewol HALCON al in oerfloedich set fan operators befettet foar ferskate taken, wolle jo miskien nije operators ymplementearje, bygelyks om tagong te krijen ta in spesjale hardware of om in alternatyf algoritme te ymplementearjen. Om dit te dwaan, leveret HALCON de Extension Package Interface, dy't de yntegraasje fan nije operators (implementearre yn C) mooglik makket yn 'e foarm fan saneamde útwreidingspakketten. De útwreidingspakket-ynterface befettet ferskate foarôf definieare routines en makro's foar de maklike ôfhanneling fan ôfbyldingsgegevens en ûnthâldobjekten yn C. Sadree't in nije operator mei súkses yntegreare is, kin it brûkt wurde lykas elke oare HALCON-operator. It Hânlieding fan 'e Extension Package Programmer befettet detaillearre ynformaasje oer it útwreidzjen fan de operatorbibleteek.

Taal ynterfaces

Lykas werjûn yn figuer 2.1 op side 9, jout HALCON saneamde taalynterfaces. Dit binne memmetaalferbiningen, wêrtroch jo operators kinne skilje en HALCON-gegevenstypen direkt fanút jo applikaasje kinne brûke, of it no Python, C, C++, of .NET is.
Om de ûntwikkeling te begjinnen, riede wy oan om earst ien fan 'e ready-to-run eks te kontrolearjenampde programma's. Hjir kinne jo sjen hoe't it projekt opset wurde moat en hoe't operators en typen wurde brûkt.
Foar elke taalynterface kinne de nammen fan typen, klassen, de nammekonvinsjes fan operators, ensfh. De hantekeningen fan de operator foar de stipe programmeartalen binne dokumintearre yn de HALCON Operator Reference.

HALCON/Python
De Python-ynterface stiet op foar syn ienfâld en syn fermogen foar rappe prototyping. HALCON-operators wurde direkt as selsstannige funksjes neamd, nei it ymportearjen fan de HALCON/Python-module. Tink derom ek dat operator parameters yn HALCON / Python wurde opdield yn funksje parameters (ynputs) en werom wearden (útfier).

Example
De folgjende koade lêst in ôfbylding en berekkent it oantal ferbûne regio's (side 10) dêryn.
img = ha.read_image('pcb')
regio = ha.threshold(img, 0, 122)
num_regions = ha.count_obj(ha.connection(regio))
print(f'Number of Regions: {num_regions}')

Foar betingsten en in detaillearre trochgong, sjoch asjebleaft Programmer's Guide, Part 4, A First Example.

HALCON/C
De C-ynterface is de ienfâldichste ynterface stipe troch HALCON. Eltse operator wurdt fertsjintwurdige troch ien of twa globale funksjes dêr't de operator namme en de parameter folchoarder binne identyk oan de HDevelop taal.

Example
De folgjende koade lêst in ôfbylding en berekkent it oantal ferbûne regio's (side 10) dêryn.
Hobject img;
read_image(&img, "pcb");
Hobject regio;
threshold(img, ®ion, 0, 122);
Hobject ferbûn_regio's;
ferbining (regio, &ferbûne_regio's);
Hlong num_regions = 0;
count_obj (ferbûne_regio's, &num_regio's);
printf("Number of Regions: %" PRIdPTR "\n", num_regions);

Foar betingsten en in detaillearre trochgong, sjoch asjebleaft Programmer's Guide, Part 5, A First Example.

HALCON/C++
De C ++ ynterface is folle mear ferfine as de C ynterface. Hjir, de advantages fan C ++ en objekt-rjochte programmearring wurde brûkt, ie, automatyske type konverzje, konstruksje en ferneatiging, of groepearjen funksjes tegearre mei harren gegevens yn klassen. Lykas yn 'e C-ynterface, wurde globale funksjes foar elke HALCON-operator levere foar in prosedurele styl fan programmearring.

Example
De folgjende koade lêst in ôfbylding en berekkent it oantal ferbûne regio's (side 10) dêryn.
HIimage img {"pcb"};
HRegio regio = img.Threshold(0, 122);
Hlong numRegions = region.Connection().CountObj();
std::cout << “Number of Regions: ” << numRegions << '\n';

Foar betingsten en in detaillearre trochgong, sjoch asjebleaft Programmer's Guide, Part 2, A First Example.

HALCON/.NET
C# en Visual Basic .NET brûke HALCON fia de .NET ynterface.
Analoog oan C ++ wurde twa stilen fan programmearring oanbean: prosedureel en objekt-rjochte. Foar de prosedurele styl biedt de klasse HOperatorSet alle HALCON-operators, wêrby't HObject wurdt brûkt om byldbepalende gegevens te behanneljen en HTuple wurdt brûkt foar kontrôlegegevens. Foar de objekt-rjochte styl wurde klassen lykas HDataCode2d, HMeasure, of HShapeModel foarsjoen foar de sintrale funksjonaliteit. Derneist binne klassen foar byldbepalende gegevens, bygelyks HImage of HRegion, beskikber.

Example
De folgjende koade lêst in ôfbylding en berekkent it oantal ferbûne regio's (side 10) dêryn.
HImage img = new HImage(“pcb”);
HRegio regio = img.Threshold(0d, 122d);
int numRegions = region.Connection().CountObj();
Console.WriteLine(“Number of Regions: ” + numRegions);

Foar betingsten en in detaillearre trochgong, sjoch asjebleaft Programmer's Guide, Part 3, A First Example.

Image Acquisition Interfaces

De ynterfaces foar ôfbyldingswinning fan HALCON foarmje de brêge tusken software levere troch de fabrikant fan it apparaat foar ôfbyldingswinning en HALCON. Se foarmje in mienskiplike, generike ynterface dy't allinich in lytse set fan operators fereasket. Sjoch asjebleaft de Solution Guide II-A foar detaillearre ynformaasje oer dit ûnderwerp.
Op it stuit leveret HALCON ynterfaces foar mear dan 50 frame-grabbers en hûnderten yndustriële kamera's yn 'e foarm fan dynamysk laden bibleteken (Windows: DLL's; Unix-like systemen: dielde biblioteken). Biblioteeknammen begjinne mei it foarheaksel hAcq; de biblioteken dy't einigje mei it efterheaksel xl wurde brûkt troch HALCON XL.
De meast brûkte ynterfaces basearre op yndustry noarmen binne al ynstallearre tegearre mei de HALCON li-braries. Oanfoljende ynterfaces, lykas de lêste ferzjes fan al opnommen ynterfaces kinne wurde downloade ûnder https://www.mvtec.com/products/interfaces. De HALCON-ôfbyldingsoanwinst-ynterfaces kinne faker wizigje dan de HALCON-bibleteek sels. Ien reden hjirfoar is dat MVTec kontinu ûntwikkelet nije ynterfaces; fierder, as de software levere troch de fabrikanten fan ôfbylding oanwinst apparaten feroarings, Bygelyks, as nije funksjes wurde yntegrearre, de oerienkommende HALCON Schnittstellen wurde oanpast. Ferwize asjebleaft ek nei de Referinsje foar ôfbyldingswinning foar in folsleine list mei stipe ynterfaces foar ôfbyldingswinning.
Sadree't jo mei súkses ynstallearre jo ôfbylding oanwinst apparaat, alles wat jo hoege te dwaan om tagong ta it fan HALCON is te skiljen de operator open_framegrabber, spesifisearje de namme fan de ôfbylding oanwinst ynterface en wat oanfoljende ynformaasje, bygelyks, oangeande de ferbûn kamera. Dan kinne ôfbyldings pakt wurde troch de operator grab_image (of grab_image_async) te roppen.

I / O ynterfaces

HALCON leveret ynterfaces foar ferskate I / O-apparaten om gegevenswinning mooglik te meitsjen. Dizze ynterfaces binne beskikber as dynamysk laden bibleteken (Windows: DLL's; Unix-like systemen: dielde bibleteken). Biblioteeknammen begjinne mei it foarheaksel hio; de biblioteken dy't einigje mei it efterheaksel xl wurde brûkt troch HALCON XL.
De HALCON I/O-apparaat-ynterfaces jouwe unifoarme tagong ta ferskate I/O-apparaten mei in lytse set operators. Neidat jo hawwe ynstallearre jo I / O apparaat, in ferbining wurdt makke mei help fan de operator open_io_device, spesifisearje de namme fan de I / O apparaat ynterface en, opsjoneel, guon apparaat-spesifike parameters. Sadree't de ferbining is oprjochte, kin in oerdracht kanaal wurde iepene troch oprop open_io_channel. Om wearden op dit kanaal te lêzen en te skriuwen, brûk de operators respektivelik read_io_channel en write_io_channel.
Tink derom dat de ynterfaces fan HALCON I/O-apparaten faker wizigje kinne as de HALCON-bibleteek sels. Jo kinne de lêste ynformaasje fine tegearre mei ynlaadbere ynterfaces (ynklusyf dokumintaasje) ûnder https://www.mvtec.com/products/interfaces. Ferwize asjebleaft ek nei de Referinsje fan I/O-apparaatynterface foar in folsleine list mei stipe I/O-apparaatynterfaces.

Hoe applikaasjes te ûntwikkeljen

Wy riede oan dat jo begjinne mei rappe prototyping yn HDevelop, de ynteraktive ûntwikkelingsomjouwing foar de HALCON-masinefisybibleteek. Jo kinne HDevelop brûke om de optimale operators en parameters te finen om jo taak foar ôfbyldingsanalyse op te lossen. Nei it ûntwikkeljen fan in HDevelop-programma neffens de opjûne easken, moat it wurde oerset yn har definitive omjouwing. Hjirfoar kinne jo kieze tusken de folgjende trije oanpakken, ôfhinklik fan jo foarkar:

  • Begjin fanôf it begjin: Jo programma fanôf it begjin skriuwe betsjut om jo HDevelop-koade manuell oer te setten yn 'e doelprogrammearringstaal (C++, Python ...). Lykas earder neamd, kinne de nammejouwingskonvenanten fan operators, de nammen fan klassen, ensfh., ferskille tusken programmeartalen. Besjoch de HALCON Operator Reference om de HALCON-operatorhantekeningen te krijen foar elke stipe programmeartaal. Foar ynformaasje oer hoe't jo applikaasjes meitsje kinne yn jo winske doeltaal, lês asjebleaft de Programmer's Guide.
  • Eksportearje HDevelop Code: Oersette jo HDevelop-koade automatysk yn 'e doelprogrammearringstaal mei help fan HDevelop's koade-eksport.
  • Biblioteekprojekt eksportearje: De biblioteekeksport fan HDevelop genereart in klear te brûken projektmap, ynklusyf wrap-per-koade yn 'e doeltaal en de CMake file om it projekt te bouwen. De biblioteekeksport fan HDevelop brûkt de HDevEngine, in bibleteek dy't fungearret as tolk. HDevEngine lit jo HDevelop-programma's of prosedueres direkt útfiere fan in applikaasje skreaun yn C++ of elke taal dy't .NET-objekten kin yntegrearje. Sa hoege jo de heule applikaasje net opnij te kompilearjen by it meitsjen fan wizigingen yn 'e HDevelop-koade.
    Fansels kinne jo de HDevEngine brûke sûnder de bibleteekeksportfunksje fan HDevelop te brûken. Hoe HDevEngine te brûken wurdt yn detail beskreaun yn 'e Programmeur's Guide, Part 6 (Gebrûk fan HDevEngine).
Hûntwikkeling

Litte wy in earste blik nimme op HDevelop. Ofbylding 3.1 lit de brûkersynterface fan HDevelop sjen, neidat in programma is laden en foar in part útfierd.
Standert binne dizze finsters sichtber, dy't ek essensjeel binne foar ûntwikkeljen mei HDevelop:

  1. Grafysk finster Toant (tusken) resultaten, nammentlik byldbepalende gegevens (side 10) lykas ôfbyldings, regio's en XLD's.
  2. Programmafinster Dit is wêr jo jo programmakoade ynfiere, mei operators (side 10) om tagong te krijen ta HALCON's byldferwurkingsmetoaden.
  3. Fariabele Finster Toant alle fariabelen, nammentlik byldbepalende fariabelen en kontrôle fariabelen. Ikoanyske fariabelen befetsje byldbepalende gegevens (side 10) en kontrôle fariabelen befetsje kontrôle gegevens (side 10).

Detaillearre ynformaasje oer HDevelop is te finen yn 'e HDevelop User's Guide. Us tutorialfideo's biede ek in goede ynlieding foar HDevelop:

  • HDevelop Tutorial 01: GUI en navigaasje
  • HDevelop Tutorial 02: Fariabelen
  • HDevelop Tutorial 03: Fisualisaasje

HALCON-21-11-Foargong-02

Ofbylding 3.1: HDevelop's brûkersynterface.

Exampit programma

No't jo binne yntrodusearre oan de brûkersynterface fan HDevelop en de basisbegripen fan HALCON (side 9), litte wy in C++-applikaasje ûntwikkelje mei de Biblioteekeksportoanpak.
Neist de folgjende stap-foar-stap ynstruksjes riede wy oan dat jo ús tutorialfideo's besjen: HDevelop-koade yntegrearje yn in C++-applikaasje mei de Library Project Export
Yntegrearje HDevelop-koade yn in C#-applikaasje mei de Library Project Export
De fideo's demonstrearje de biblioteekeksport en jouwe mear eftergrûnynformaasje oer it ûnderwerp.

Meitsje prototype yn HDevelop
De taak fan de folgjende eksample is te lêzen in ôfbylding en telle it oantal ferbûn regio it it.

  1. Iepenje HDevelop en fier de folgjende koade yn yn it programmafinster:
    read_image (ôfbylding, 'pcb')
    drompel (ôfbylding, regio, 0, 122)
    ferbining (Region, ConnectedRegions)
    count_obj (ConnectedRegions, Number)
  2. Test jo programma troch te klikken op Run yn 'e arkbalke of op F5 te drukken.

Om dizze HDevelop-koade maklik te yntegrearjen yn in feitlike applikaasje, kapsulearje wy it diel fan 'e masinefisy yn in lokale proseduere.

  1. Markearje de folgjende koaderigels: drompel (ôfbylding, regio, 0, 122) ferbining (Region, ConnectedRegions) count_obj (ConnectedRegions, Number)
  2. Rjochts-klikke om it kontekstmenu te iepenjen.
  3. Kies Nije proseduere oanmeitsje.
  4. Neam it count_regions.
  5. Selektearje parameters en feroarje seleksjeskema nei Earst yn, lêste út.
  6. Befêstigje mei OK.
  7. Bewarje jo HDevelop-programma as hdev_count_regions.hdev

Tariede Visual Studio Project
Yn dizze eksample, wy sille Visual Studio 2019 brûke. 1

  1. Meitsje in leech C++ Windows Console-projekt en neam it vs_count_regions. Aktivearje asjebleaft de opsje Pleats oplossing en projekt yn deselde map. 2
  2. Foegje in C ++ boarne ta file (Menuprojekt Nij item tafoegje ... C++ File) en neam it vs_count_regions.cpp.
  3. Kies it oplossingsplatfoarm x64 út it dellûkmenu yn 'e arkbalke.
  4. Iepenje jo projekteigenskippen (Menu Project vs_count_regions Eigenskippen ...) en meitsje de folgjende ynstellings:
    • Selektearje C/C++ Algemien en heakje de folgjende Oanfoljende ynfoljende mappen ta: $(HALCONROOT)\include;$(HALCONROOT)\include\halconcpp;
    • Selektearje Linker Algemien en foegje de folgjende Oanfoljende Biblioteekmap ta: $(HALCONROOT)\lib\$(HALCONARCH);
    • Selektearje Linker Input en foegje de folgjende Oanfoljende Ofhinklikens ta: halconcpp.lib;hdevenginecpp.lib;

Eksportearje Library Project
Dêrnei eksportearje wy ús HDevelop-programma hdev_count_regions.hdev yn ús Visual Studio-projektmap.

  1. Iepenje it earder oanmakke HDevelop-programma hdev_count_regions.hdev.
  2. Iepen File  Biblioteekprojekt eksportearje...
  3. Meitsje de folgjende ynstellings:
    • Ynfier file: Aktueel programma
    • Doeltaal: C++
    • Projektnamme: hdev_count_regions
    • Projektlokaasje: Kies de lokaasje fan ús Visual Studio-projekt vs_count_regions.
    • Nammeromte: hdev_count_regions
  4. Befêstigje mei Eksportearje.

No moat jo Visual Studio-projektmap vs_count_regions op syn minst de folgjende gegevens befetsje:

  • vs_count_regions.cpp (Boarne File)
  • vs_count_regions.sln (Oplossing)
  • hdev_count_regions (map fan HDevelop Export)
    • cmke
    • res_ hdev_ count_ regio's
    • hdev _ count_ regio's. hdev
  •  boarne
    • hdev_count_regions.cpp
    • hdev_count_regions.h
    • CMakeLists.txt

Yntegrearje Library Project yn Visual Studio
As lêste moatte wy it HDevelop-programma yntegrearje yn ús Visual Studio Project.

  1. Iepenje it Visual Studio Project.
  2. Iepenje Project Add besteand item ... en kies de C ++ file hdev_count_regions.cpp en de koptekst file hdev_count_regions.h, makke troch HDevelop's Library Export. (De files lizze yn 'e map hdev_count_regions boarne.)
  3. Fier de folgjende koade yn yn vs_count_regions.cpp:
    #ynklusyf
    #include "HalconCpp.h"
    #include "hdev_count_regions/source/hdev_count_regions.h"
    int main()
    {
    HalconCpp :: HImage Image(“pcb”);
    hdev_count_regions::SetResourcePath(“hdev_count_regions/res_hdev_count_regions”);
    HalconCpp::HTuple Number{};
    hdev_count_regions::count_regions(Ofbylding, &Nûmer);
    std::cout << “Number of Regions: ” << Number.L() << '\n';
    }
  4. It programma útfiere. → In konsole iepenet, mei it resultaat 'Aantal regio's: 43'.

Hoe trochgean

Om djipper yn HALCON te dûken, biede wy fierdere dokumintaasje en stipe.

  • HDevelop Exampde programma's
    HALCON biedt in wiidweidige set fan eksample programma's, net allinich foar HDevelop, mar ek foar ferskate programmeartalen. Dizze eksamples kinne fûn wurde yn 'e map oanjûn troch de omjouwingsfariabele % HALCONEXAMPLES% of, as de fariabele net ynsteld is, yn 'e submap bglamples fan de map wêryn jo HALCON ynstallearre hawwe.
    Om in HDevelop example programma, selektearje it menu File  Blêdzje troch HDevelop Exampde programma's…. Foar begjinners riede wy oan om in eks te selektearjenample út de kategory Applikaasje gebiet.
  • Tsjinsten en stipe
    Ús website https://www.mvtec.com/services-support biedt in ferskaat oan stipe, bygelyksample tutorialfideo's, ynformaasje oer workshops en trainingen, de hoeke fan 'e ûntwikkelders mei tips en trúkjes, en in protte mear.
  • HALCON dokumintaasje
    De dokumintaasje leveret in skat oan ynformaasje, fan begjinnersûnderwerpen oant saakkundige kennis. Bygelyksample, ús Solution Guides beskriuwe masinefisymetoaden en hoe't se se tapasse yn HDevelop. In goed begjinpunt is Solution Guide I dy't jo yntrodusearret oan 'e wichtichste metoaden foar masinefisy.
    In oerview fan alle hânboeken mei in koarte beskriuwing is te finen op de yngongside fan 'e dokumintaasje.

Dokuminten / Resources

PDF thumbnail21.11 Foarútgong
User Guide · 21.11 Progress, 21.11, Progress

Stel in fraach

Use this section to ask about setup, compatibility, troubleshooting, or anything missing from this manual.

Stel in fraach

Ask about setup, compatibility, troubleshooting, or anything missing from this manual. Name and email are optional.