HALCON 21.11 Progress Gebruikersgids

HALCON-21-11-Progress-featured-image

halcon-logo

HALCON 21.11 Vordering

HALCON-21-11-Progress-produk-beeld

'n Vinnige toegang tot die funksionaliteit van HALCON, weergawe 21.11.0.0
Alle regte voorbehou. Geen deel van hierdie publikasie mag sonder vooraf skriftelike toestemming van die uitgewer gereproduseer, in 'n herwinningstelsel gestoor of versend word in enige vorm of op enige manier, hetsy elektronies, meganies, deur fotokopiëring, opname of andersins nie.

Kopiereg © 2003-2021 deur MVTec Software GmbH, München, Duitsland
Beskerm deur die volgende patente: VSA 7,239,929, VS 7,751,625, VS 7,953,290, VS 7,953,291, VS 8,260,059, VS 8,379,014, VS 8,830,229. Verdere patente hangende.
Microsoft, Windows, Windows Server 2008/2012/2012 R2/2016, Windows 7/8/8.1/10, Microsoft .NET, Visual C++ en Visual Basic is óf handelsmerke óf geregistreerde handelsmerke van Microsoft Corporation.
Linux is 'n handelsmerk van Linus Torvalds.
macOS en OpenCL is handelsmerke van Apple Inc.
NVIDIA, CUDA, cuBLAS en cuDNN is óf handelsmerke óf geregistreerde handelsmerke van NVIDIA Corporation.
OpenGL is 'n handelsmerk van Silicon Graphics, Inc.
Alle ander nasionaal en internasionaal erkende handelsmerke en handelsname word hiermee erken.
Meer inligting oor HALCON kan gevind word by: http://www.halcon.com/

Oor hierdie handleiding

Hierdie handleiding stel jou bekend aan HALCON. Dit is bedoel vir beginners sonder vooraf kennis van HALCON.
Hierdie handleiding kan ook gebruik word as 'n verwysingsgids vir verskeie ander HALCON-handleidings, aangesien dit hulle met mekaar verbind met die volgende onderwerpe:

  1. Installeer HALCON (bladsy 7)
    Hierdie hoofstuk stel die MVTec-sagtewarebestuurder (SOM) bekend.
  2. HALCON Argitektuur (bladsy 9)
    Sommige teoretiese agtergrond, nodig om te verstaan ​​wat HALCON is en hoe dit werk.
  3. Hoe om toepassings te ontwikkel (bladsy 15)
    Hierdie hoofstuk verduidelik drie basiese benaderings vir ontwikkeling met HALCON en lei jou deur 'n eerste programmeringseksample.
  4. Hoe om voort te gaan (bladsy 19)
    Hierdie hoofstuk verwys na bykomende inligtingsbronne.

Installeer HALCON

Vir Linux- en Windows-gebruikers beveel ons aan om HALCON af te laai en te installeer via die MVTec Software Manager (SOM). SOM is 'n installasiebestuurder vir sagtewarepakkette. Dit bied toegang tot 'n afgeleë katalogus van produkte, en ondersteun onder meer die aflaai en installering van pakkette. 'n Stap-vir-stap inleiding oor hoe om HALCON via SOM te installeer, kan gevind word in die Installasiegids.

HALCON Argitektuur

HALCON se basiese argitektuur word in figuur 2.1 uitgebeeld. Die hoofdeel is die beeldverwerkingsbiblioteek, wat uit meer as 2000 operateurs bestaan. Jy kan ook jou eie operateurs ontwikkel in die vorm van sogenaamde ex-tension-pakkette (bladsy 11). Jy gebruik die operateurs in jou toepassing via taalkoppelvlakke (bladsy 11) soos HALCON/C++ of HALCON/Python. Dit is biblioteke wat 'n direkte gebruik van die operateurs in die tipiese programmeringstyl van die verskillende programmeertale moontlik maak.

HALCON-21-11-Vooruitgang-01

Figuur 2.1: Basiese argitektuur van HALCON.

Vir die toegang tot beeldverkrygingtoestelle, verskaf HALCON beeldverkrygingskoppelvlakke (bladsy 13) wat jou toelaat om heel verskillende verkrygingstoestelle op 'n algemene manier te gebruik. Die biblioteke wat die toestelspesifieke implementerings bevat, word dinamies gelaai wanneer nodig. Op dieselfde manier word toegang tot I/O-toestelle verkry deur toestelspesifieke I/O-koppelvlakke (bladsy 13).

Operateurs

Wanneer enige soort funksionaliteit van die HALCON-biblioteek gebruik word, word dit via 'n operateur gedoen. Die meeste van hulle bestaan ​​uit veelvuldige metodes, wat via parameters gekies word. 'n Volledige lys van alle operateurs kan gevind word in die HALCON Operator Reference beskikbaar in HDevelop, .NET, Python, C++ en C sintaksis. Belangrike kenmerke van operateurs is:

  • Daar is geen hiërargie tussen operateurs nie. Van die sagteware argitektuur punt van view, is alle operateurs op dieselfde vlak.
  • Natuurlik is daar logiese groepe operateurs. Byvoorbeeldample, dit kan gesien word deur die klasse wat aangebied word vir C++ en .NET, waar operateurs wat dieselfde datatipe verwerk, lidfunksies van die ooreenstemmende klasse is.
  • Die ontwerp van die operateurs volg die reëls van die oop argitektuur. Daarom kan jy jou eie operateurs skep en sodoende HALCON uitbrei (sien afdeling 2.2). Die Uitbreidingspakketprogrammeerderhandleiding bevat gedetailleerde inligting oor die uitbreiding van die operateurbiblioteek.
  • Baie operateurs kan deursigtige gebruik maak van outomatiese parallelisering, wat 'n maklike manier moontlik maak om die program te bespoedig wanneer groot beelde op 'n multi-verwerker of multi-kern rekenaar gebruik word. Gedetailleerde inligting oor parallelle programmering kan gevind word in die tegniese nota Parallelle programmering, sowel as in die Program-mer's Guide.
  • Operateurs het gestandaardiseerde reëls vir die ordening van inset- en afvoerparameters: inset-ikonies, uitset-ikonies, insetbeheer en uitsetbeheer (sien afdeling 2.1.1). Nie al die groepe is dalk nodig vir 'n gegewe operateur nie. Oor die algemeen word insetparameters van operateurs nie gewysig nie, wat lei tot 'n duidelike en eenvoudige semantiek. Daar is slegs 'n paar uitsonderings op hierdie ontwerp, bv. set_grayval, overpaint_gray, en overpaint_region.

Parameters en datastrukture
HALCON het twee basiese tipes parameters: ikoniese data en beheerdata. Beelde, streke en XLD's (eXtented Line Description) behoort tot die ikoniese data.

Beelde bestaan ​​hoofsaaklik uit kanale, dit wil sê, matrikse wat pixelwaardes bevat. Alle kanale van 'n prent het dieselfde grootte. Vir gedetailleerde inligting oor pixels en kanale, lees asseblief die hoofstuk “Beeld” van die HALCON Operator Reference.
Vir elke prent spesifiseer die sogenaamde streek van belang (ROI) watter deel van die prent verwerk word. Die ROI kan baie buigsaam gedefinieer word (van 'n eenvoudige reghoek tot 'n stel onverbonde pixels). Vir besonderhede oor ROI-hantering, sien die Oplossingsgids I, Streek van belang op bladsy 27.

Streke is 'n stel pixels. Die pixels van 'n streek hoef nie gekoppel te wees nie. Selfs 'n arbitrêre versameling pixels kan as 'n enkele streek hanteer word. Met die operateurverbinding kan 'n streek in sy gekoppelde streke verdeel word, dit wil sê komponente wat uit gekoppelde pixels bestaan.

XLD's bevat alle kontoer- en veelhoekgebaseerde data. Subpixel-akkurate operateurs soos edges_sub_pix gee die kontoere terug as XLD-data. ’n Kontoer is ’n reeks 2D-beheerpunte wat deur lyne verbind word. Tipies is die afstand tussen beheerpunte ongeveer een pixel. XLD-voorwerpe bevat, behalwe die beheerpunte, sogenaamde plaaslike en globale eienskappe. Tipiese examples vir hierdie is, bv. die rand amplitude van 'n beheerpunt of die regressieparameters van 'n kontoersegment. Benewens die onttrekking van XLD-voorwerpe, ondersteun HALCON verdere verwerking. Bvamplese hiervoor is die keuse van kontoere gebaseer op gegewe kenmerkreekse vir die segmentering van 'n kontoer in lyne, boë, veelhoeke of parallelle.

Die beheerdata bevat handvatsels en basiese datatipes soos heelgetal, werklik, string.

Handvatsels is verwysings na komplekse datastrukture, bv. 'n verbinding met 'n beeldverkrygingskoppelvlak of 'n model vir die vormgebaseerde passing. Vir doeltreffendheid en datasekuriteitsredes word nie die hele struktuur nie, maar slegs die handvatsel tussen die operateurs deurgegee. Handvatsels is towerwaardes wat nie verander moet word nie en kan verskil van uitvoering tot uitvoering en weergawe tot weergawe. Hulle word outomaties uitgevee sodra alle verwysings oorskryf is. Bvamplese waar handvatsels gebruik word, is grafiese vensters, files, voetstukke, beeldverkryging-koppelvlakke, OCR, OCV, meet en pas.

Uitbreidingspakkette

HALCON kan deur nuwe operateurs verleng word. Alhoewel HALCON reeds 'n oorvloedige stel operateurs vir verskeie take bevat, wil jy dalk nuwe operateurs implementeer, bv. om toegang tot 'n spesiale hardeware te verkry of om 'n alternatiewe algoritme te implementeer. Om dit te doen, verskaf HALCON die Uitbreidingspakket-koppelvlak, wat die integrasie van nuwe operateurs (geïmplementeer in C) in die vorm van sogenaamde uitbreidingspakkette moontlik maak. Die Uitbreidingspakket-koppelvlak bevat verskeie vooraf gedefinieerde roetines en makro's vir die maklike hantering van beelddata en geheue-objekte in C. Sodra 'n nuwe operateur suksesvol geïntegreer is, kan dit soos enige ander HALCON-operateur gebruik word. Die Uitbreidingspakketprogrammeerderhandleiding bevat gedetailleerde inligting oor die uitbreiding van die operateurbiblioteek.

Taalkoppelvlakke

Soos getoon in figuur 2.1 op bladsy 9, verskaf HALCON sogenaamde taalkoppelvlakke. Dit is moedertaalbindings wat jou in staat stel om operateurs te bel en HALCON-datatipes direk vanuit jou toepassing te gebruik, of dit nou Python, C, C++ of .NET is.
Om die ontwikkeling te begin, beveel ons aan om eers een van die gereed-om-te-hardloop-eks na te gaanampdie programme. Hier kan jy sien hoe die projek opgestel moet word en hoe operateurs en tipes gebruik word.
Vir elke taalkoppelvlak kan die name van tipes, klasse, die naamkonvensies van operateurs, ens. verskil om te voldoen aan die tipiese reëls wat vir die geselekteerde taal geld. Die operateurshandtekeninge vir die ondersteunde programmeertale word in die HALCON Operator Reference gedokumenteer.

HALCON/Python
Die Python-koppelvlak staan ​​uit vir sy eenvoud en sy vermoë vir vinnige prototipering. HALCON-operateurs word direk as selfstandige funksies genoem, nadat die HALCON/Python-module ingevoer is. Let ook daarop dat operateurparameters in HALCON/Python verdeel word in funksieparameters (insette) en terugkeerwaardes (uitset).

Example
Die volgende kode lees 'n prent en bereken die aantal gekoppelde streke (bladsy 10) daarin.
img = ha.read_image('pcb')
streek = ha.threshold(img, 0, 122)
num_regions = ha.count_obj(ha.connection(streek))
print(f'Aantal streke: {num_regions}')

Vir voorvereistes en 'n gedetailleerde deurloop, sien asseblief Programmeerdergids, Deel 4, A First Example.

HALCON/C
Die C-koppelvlak is die eenvoudigste koppelvlak wat deur HALCON ondersteun word. Elke operateur word verteenwoordig deur óf een óf twee globale funksies waar die operateurnaam en die parametervolgorde identies is aan die HDevelop-taal.

Example
Die volgende kode lees 'n prent en bereken die aantal gekoppelde streke (bladsy 10) daarin.
Hobject img;
read_image(&img, "pcb");
Hobject streek;
drempel(img, ®ion, 0, 122);
Hobject connected_regions;
verbinding (streek, &verbonde_streke);
Hlong getal_streke = 0;
count_obj (verbonde_streke, &num_streke);
printf(“Aantal streke: %” PRIdPTR “\n”, aantal_streke);

Vir voorvereistes en 'n gedetailleerde deurloop, sien asseblief Programmeerdergids, Deel 5, A First Example.

HALCON/C++
Die C++-koppelvlak is baie meer gesofistikeerd as die C-koppelvlak. Hier, die advantage van C++ en objekgeoriënteerde programmering word gebruik, dit wil sê, outomatiese tipe omskakeling, konstruksie en vernietiging, of groepering van funksies saam met hul data in klasse. Soos in die C-koppelvlak, word globale funksies vir elke HALCON-operateur verskaf vir 'n prosedurele styl van programmering.

Example
Die volgende kode lees 'n prent en bereken die aantal gekoppelde streke (bladsy 10) daarin.
HBeeld img {“pcb”};
HRegio-streek = img.Threshold(0, 122);
Hlong numRegions = streek.Connection().CountObj();
std::cout << “Aantal streke: ” << numRegions << '\n';

Vir voorvereistes en 'n gedetailleerde deurloop, sien asseblief Programmeerdergids, Deel 2, A First Example.

HALCON/.NET
C# en Visual Basic .NET gebruik HALCON via die .NET-koppelvlak.
Analoog aan C++ word twee style van programmering aangebied: prosedureel en objekgeoriënteerd. Vir die prosedurele styl bied die klas HOperatorSet alle HALCON-operateurs, waar HObject gebruik word om ikoniese data te hanteer en HTuple vir beheerdata gebruik word. Vir die objekgeoriënteerde styl word klasse soos HDataCode2d, HMeasure of HShapeModel verskaf vir die sentrale funksionaliteit. Daarbenewens is klasse vir ikoniese data, bv. HImage of HRegion, beskikbaar.

Example
Die volgende kode lees 'n prent en bereken die aantal gekoppelde streke (bladsy 10) daarin.
HImage img = nuwe HImage(“pcb”);
HRegio-streek = img.Threshold(0d, 122d);
int numRegions = streek.Connection().CountObj();
Console.WriteLine(“Aantal streke: ” + numRegions);

Vir voorvereistes en 'n gedetailleerde deurloop, sien asseblief Programmeerdergids, Deel 3, A First Example.

Beeldverkryging-koppelvlakke

HALCON se beeldverkrygingskoppelvlakke vorm die brug tussen sagteware wat deur die vervaardiger van die beeldverkrygingstoestel en HALCON verskaf word. Hulle vorm 'n algemene, generiese koppelvlak wat slegs 'n klein stel operateurs benodig. Verwys asseblief na die Oplossingsgids II-A vir gedetailleerde inligting oor hierdie onderwerp.
Tans bied HALCON koppelvlakke vir meer as 50 raamgrypers en honderde industriële kameras in die vorm van dinamies laaibare biblioteke (Windows: DLL's; Unix-agtige stelsels: gedeelde biblioteke). Biblioteekname begin met die voorvoegsel hAcq; die biblioteke wat eindig met die agtervoegsel xl word deur HALCON XL gebruik.
Die mees gebruikte koppelvlakke gebaseer op industriestandaarde is reeds saam met die HALCON biblioteke geïnstalleer. Bykomende koppelvlakke, sowel as die nuutste weergawes van reeds ingesluit koppelvlakke kan afgelaai word onder https://www.mvtec.com/products/interfaces. Die HALCON-beeldverkryging-koppelvlakke kan meer gereeld verander as die HALCON-biblioteek self. Een rede hiervoor is dat MVTec voortdurend nuwe koppelvlakke ontwikkel; verder, as die sagteware wat deur die vervaardigers van beeldverkrygingtoestelle verskaf word, verander, bv. as nuwe kenmerke geïntegreer word, sal die ooreenstemmende HALCON-koppelvlakke aangepas word. Verwys asseblief ook na die Beeldverkryging-koppelvlakverwysing vir 'n volledige lys van ondersteunde beeldverkrygingskoppelvlakke.
Sodra jy jou beeldverkrygingstoestel suksesvol geïnstalleer het, is al wat jy hoef te doen om toegang daartoe vanaf HALCON te doen om die operateur open_framegrabber te bel, die naam van die beeldverkrygingskoppelvlak en 'n paar bykomende inligting te spesifiseer, bv. oor die gekoppelde kamera. Dan kan beelde gegryp word deur die operateur grab_image (of grab_image_async) te bel.

I / O-koppelvlakke

HALCON verskaf koppelvlakke vir verskeie I/O-toestelle om data-verkryging moontlik te maak. Hierdie koppelvlakke is beskikbaar as dinamies laaibare biblioteke (Windows: DLL's; Unix-agtige stelsels: gedeelde biblioteke). Biblioteekname begin met die voorvoegsel hio; die biblioteke wat eindig met die agtervoegsel xl word deur HALCON XL gebruik.
Die HALCON I/O-toestelkoppelvlakke bied verenigde toegang tot verskillende I/O-toestelle deur 'n klein stel operateurs te gebruik. Nadat jy jou I/O-toestel geïnstalleer het, word 'n verbinding tot stand gebring deur die operateur open_io_device te gebruik, wat die naam van die I/O-toestelkoppelvlak en, opsioneel, 'n paar toestelspesifieke parameters spesifiseer. Sodra die verbinding tot stand gebring is, kan 'n transmissiekanaal oopgemaak word deur open_io_channel te skakel. Om waardes op hierdie kanaal te lees en te skryf, gebruik die operateurs lees_io_kanaal en skryf_io_kanaal, onderskeidelik.
Neem asseblief kennis dat die HALCON I/O-toestelkoppelvlakke meer gereeld kan verander as die HALCON-biblioteek self. Jy kan die jongste inligting tesame met aflaaibare koppelvlakke (insluitend dokumentasie) onder vind https://www.mvtec.com/products/interfaces. Verwys asseblief ook na die I/O-toestelkoppelvlakverwysing vir 'n volledige lys van ondersteunde I/O-toestelkoppelvlakke.

Hoe om toepassings te ontwikkel

Ons beveel aan dat jy begin met vinnige prototipering in HDevelop, die interaktiewe ontwikkelingsomgewing vir die HALCON-masjienvisie-biblioteek. U kan HDevelop gebruik om die optimale operateurs en parameters te vind om u beeldontledingstaak op te los. Nadat 'n HDevelop-program volgens die gegewe vereistes ontwikkel is, moet dit in sy finale omgewing vertaal word. Hiervoor kan jy kies tussen die volgende drie benaderings, afhangende van jou voorkeure:

  • Begin van vooraf: Om jou program van nuuts af te skryf beteken om jou HDevelop-kode handmatig in die teikenprogrammeertaal (C++, Python…) te vertaal. Soos voorheen genoem, kan die naamkonvensies van operateurs, die name van klasse, ens., tussen programmeertale verskil. Kyk na die HALCON Operator Reference om die HALCON operateur handtekeninge vir elke ondersteunde programmeertaal te kry. Vir inligting oor hoe om toepassings in die gewenste doeltaal te skep, lees asseblief die Programmeerdergids.
  • Voer HDevelop-kode uit: Vertaal jou HDevelop-kode outomaties in die teikenprogrammeertaal deur HDevelop se kode-uitvoer te gebruik.
  • Voer biblioteekprojek uit: HDevelop se biblioteekuitvoer genereer 'n gereed-vir-gebruik-projeklêer, insluitend omvou-per-kode in die teikentaal en die CMake file om die projek te bou. HDevelop se biblioteekuitvoer gebruik die HDevEngine, 'n biblioteek wat as 'n tolk optree. Met HDevEngine kan jy HDevelop-programme of -prosedures direk uitvoer vanaf 'n toepassing wat in C++ geskryf is of enige taal wat .NET-voorwerpe kan integreer. U hoef dus nie die hele toepassing te hersaamstel wanneer u veranderinge aan die HDevelop-kode maak nie.
    Natuurlik kan jy die HDevEngine gebruik sonder om HDevelop se biblioteekuitvoerfunksie te gebruik. Hoe om HDevEngine te gebruik, word in detail beskryf in die Programmeerdergids, Deel 6 (Gebruik HDevEngine).
HOntwikkel

Kom ons kyk eers na HDevelop. Figuur 3.1 toon HDevelop se gebruikerskoppelvlak, nadat 'n program gelaai is en gedeeltelik uitgevoer is.
By verstek is hierdie vensters sigbaar, wat ook noodsaaklik is vir ontwikkeling met HDevelop:

  1. Grafiese Venster Vertoon (intermediêre) resultate, naamlik ikoniese data (bladsy 10) soos beelde, streke en XLD's.
  2. Programvenster Dit is waar jy jou programkode tik, deur operateurs (bladsy 10) te gebruik om toegang tot HALCON se beeldverwerkingsmetodes te kry.
  3. Veranderlike Venster Toon alle veranderlikes, naamlik ikoniese veranderlikes en beheerveranderlikes. Ikoniese veranderlikes bevat ikoniese data (bladsy 10) en beheerveranderlikes bevat beheerdata (bladsy 10).

Gedetailleerde inligting oor HDevelop kan gevind word in die HDevelop Gebruikersgids. Ons tutoriaalvideo's bied ook 'n goeie inleiding tot HDevelop:

  • HOntwikkel handleiding 01: GUI en navigasie
  • HOntwikkel Tutoriaal 02: Veranderlikes
  • HOntwikkel Tutoriaal 03: Visualisering

HALCON-21-11-Vooruitgang-02

Figuur 3.1: HDevelop se gebruikerskoppelvlak.

Exampdie Program

Noudat jy bekendgestel is aan HDevelop se gebruikerskoppelvlak en die basiese konsepte van HALCON (bladsy 9), laat ons 'n C++-toepassing ontwikkel deur die Biblioteek-uitvoerbenadering te gebruik.
Benewens die volgende stap-vir-stap instruksies, beveel ons aan dat jy ons tutoriaalvideo's kyk: Integreer HDevelop-kode in 'n C++-toepassing deur die Library Project Export te gebruik
Integreer HDevelop-kode in 'n C#-toepassing deur die Library Project Export te gebruik
Die video's demonstreer die biblioteekuitvoer en verskaf meer agtergrondinligting oor die onderwerp.

Skep prototipe in HDevelop
Die taak van die volgende example is om 'n beeld te lees en die aantal gekoppelde streke dit te tel.

  1. Maak HDevelop oop en voer die volgende kode in die programvenster in:
    lees_beeld (Beeld, 'pcb')
    drempel (prent, streek, 0, 122)
    verbinding (Streek, Connected Regions)
    count_obj (Connected Regions, Number)
  2. Toets jou program deur op Run in die nutsbalk te klik of F5 te druk.

Om hierdie HDevelop-kode maklik in 'n werklike toepassing te integreer, kap ons die masjienvisie-deel in 'n plaaslike prosedure in.

  1. Merk die volgende kodelyne: drempel (Beeld, Streek, 0, 122) verbinding (Region, ConnectedRegions) count_obj (ConnectedRegions, Number)
  2. Regskliek om die kontekskieslys oop te maak.
  3. Kies Skep nuwe prosedure.
  4. Noem dit count_regions.
  5. Kies Parameters en verander seleksieskema na Eerste in, laaste uit.
  6. Bevestig met OK.
  7. Stoor jou HDevelop-program as hdev_count_regions.hdev

Berei Visual Studio Project voor
In hierdie example, ons sal Visual Studio 2019 gebruik. 1

  1. Skep 'n leë C++ Windows Console-projek en noem dit vs_count_regions. Aktiveer asseblief die opsie Plaas oplossing en projek in dieselfde gids. 2
  2. Voeg 'n C++-bron by file (Menu Projek Voeg nuwe item by... C++ File) en noem dit vs_count_regions.cpp.
  3. Kies die oplossingsplatform x64 uit die aftreklys in die nutsbalk.
  4. Maak u projekeienskappe oop (Menu Project vs_count_regions Properties ...) en maak die volgende instellings:
    • Kies C/C++ Algemeen en voeg die volgende Addisionele Insluit-gidse by:$(HALCONROOT)\include;$(HALCONROOT)\include\halconcpp;
    • Kies Linker General en voeg die volgende Addisionele Biblioteekgids by:$(HALCONROOT)\lib\$(HALCONARCH);
    • Kies Koppelinvoer en voeg die volgende bykomende afhanklikhede by: halconcpp.lib;hdevenginecpp.lib;

Voer Biblioteekprojek uit
Vervolgens voer ons ons HDevelop-program hdev_count_regions.hdev uit na ons Visual Studio-projeklêergids.

  1. Maak die voorheen geskepte HDevelop-program hdev_count_regions.hdev oop.
  2. Maak oop File  Voer biblioteekprojek uit …
  3. Maak die volgende instellings:
    • Invoer file: Huidige Program
    • Doeltaal: C++
    • Projek Naam: hdev_count_regions
    • Projekligging: Kies die ligging van ons Visual Studio-projek vs_count_regions.
    • Naamruimte: hdev_count_regions
  4. Bevestig met Uitvoer.

Nou moet jou Visual Studio-projekvouer vs_count_regions ten minste die volgende data bevat:

  • vs_count_regions.cpp (Bron File)
  • vs_count_regions.sln (Oplossing)
  • hdev_count_regions (vouer van HDevelop Export)
    • cmmaak
    • res_ hdev_ count_ streke
    • hdev _ count_ streke. hdev
  •  bron
    • hdev_count_regions.cpp
    • hdev_count_regions.h
    • CMakeLists.txt

Integreer Biblioteekprojek in Visual Studio
Laastens moet ons die HDevelop-program in ons Visual Studio-projek integreer.

  1. Maak die Visual Studio-projek oop.
  2. Maak Projek Voeg Bestaande Item by ... oop en kies die C++ file hdev_count_regions.cpp en die kopskrif file hdev_count_regions.h, geskep deur HDevelop's Library Export. (Die files is geleë in die gids hdev_count_regions source.)
  3. Voer die volgende kode in vs_count_regions.cpp in:
    #sluit in
    #sluit “HalconCpp.h” in
    #sluit in "hdev_count_regions/source/hdev_count_regions.h"
    int hoof()
    {
    HalconCpp::HImage Image(“pcb”);
    hdev_count_regions::SetResourcePath(“hdev_count_regions/res_hdev_count_regions”);
    HalconCpp::HTuple Number{};
    hdev_count_regions::count_regions(Beeld, &Getal);
    std::cout << “Getal streke: ” << Number.L() << '\n';
    }
  4. Voer die program uit. → 'n Konsole maak oop, wat die resultaat 'Aantal streke: 43' wys.

Hoe om voort te gaan

Om dieper in HALCON te duik, bied ons verdere dokumentasie en ondersteuning.

  • HOntwikkel Eksampdie programme
    HALCON bied 'n uitgebreide stel example programme, nie net vir HDevelop nie, maar ook vir verskillende programmeertale. Hierdie examples kan gevind word in die gids wat deur die omgewingsveranderlike % HALCONEX aangedui wordAMPLES% of, as die veranderlike nie gestel is nie, in die subgids bvamples van die gids waarin jy HALCON geïnstalleer het.
    Om 'n HDevelop exampvir die program, kies die spyskaart File  Blaai deur HDevelop Exampdie programme…. Vir beginners beveel ons aan om 'n ex te kiesample uit die kategorie Toepassingsgebied.
  • Dienste en ondersteuning
    Ons webwebwerf https://www.mvtec.com/services-support bied 'n verskeidenheid ondersteuning, bvample tutoriaalvideo's, inligting oor werkswinkels en opleidings, die ontwikkelaarshoek wat wenke en truuks verskaf, en vele meer.
  • HALCON Dokumentasie
    Die dokumentasie verskaf 'n magdom inligting, van beginneronderwerpe tot kundige kennis. Byvoorbeeldample, ons Oplossingsgidse beskryf masjienvisiemetodes en hoe om dit in HDevelop toe te pas. 'n Goeie beginpunt is Solution Guide I wat jou bekendstel aan die belangrikste masjienvisiemetodes.
    'n verbyview van alle handleidings met 'n kort beskrywing kan op die dokumentasie se inskrywingsbladsy gevind word.

Dokumente / Hulpbronne

PDF thumbnail21.11 Vordering
User Guide · 21.11 Progress, 21.11, Progress

Vra 'n Vraag

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

Vra 'n Vraag

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