HALCON 21.11 Aurrerapena

HALCON-en funtzionalitaterako sarbide azkarra, 21.11.0.0 bertsioa
Eskubide guztiak erreserbatuak. Argitalpen honen zatirik ezin da erreproduzitu, berreskuratze-sistema batean gorde, edo inolaz ere transmititu edo inolaz ere, elektronikoa, mekanikoa, fotokopia, grabazioa edo beste edozein modutan, argitaratzailearen idatzizko baimenik gabe.
Copyright © 2003-2021 MVTec Software GmbH, München, Alemania
Patente hauek babestuta daude: 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. Patente gehiago zain daude.
Microsoft, Windows, Windows Server 2008/2012/2012 R2/2016, Windows 7/8/8.1/10, Microsoft .NET, Visual C++ eta Visual Basic Microsoft Corporation-en marka komertzialak edo erregistratuak dira.
Linux Linus Torvaldsen marka komertziala da.
macOS eta OpenCL Apple Inc-ren marka komertzialak dira.
NVIDIA, CUDA, cuBLAS eta cuDNN NVIDIA Corporation-en marka komertzialak edo erregistratuak dira.
OpenGL Silicon Graphics, Inc-ren marka komertziala da.
Honen bidez, nazio eta nazioartean aitortutako gainerako marka eta izen komertzialak onartzen dira.
HALCONi buruzko informazio gehiago hemen aurki daiteke: http://www.halcon.com/
Eskuliburu honi buruz
Eskuliburu honek HALCON aurkezten dizu. HALCON aldez aurretik ezagutzen ez duten hasiberrientzat da.
Eskuliburu hau HALCONeko beste hainbat eskuliburutarako erreferentzia-gida gisa ere erabil daiteke, honako gai hauetan elkarrekin lotzen baititu:
- HALCON instalatzen (7. orrialdea)
Kapitulu honetan MVTec Software Manager (SOM) aurkezten da. - HALCON Arkitektura (9. orrialdea)
Aurrekari teoriko batzuk, HALCON zer den eta nola funtzionatzen duen ulertzeko beharrezkoak. - Nola garatu aplikazioak (15. orrialdea)
Kapitulu honek HALCONekin garatzeko oinarrizko hiru ikuspegi azaltzen ditu eta lehen programazio baten bidez gidatzen zaituample. - Nola jarraitu (19. orrialdea)
Kapitulu honek informazio-iturri osagarriei egiten die erreferentzia.
HALCON instalatzen
Linux eta Windows erabiltzaileentzat, HALCON deskargatu eta instalatzea gomendatzen dugu MVTec Software Manager (SOM) bidez. SOM software paketeen instalazio kudeatzailea da. Produktuen katalogo urruneko sarbidea eskaintzen du, eta, besteak beste, paketeak deskargatu eta instalatzea onartzen du. HALCON SOM bidez instalatzeko urratsez urratseko sarrera bat Instalazio Gidan aurki daiteke.
HALCON Arkitektura
HALCONen oinarrizko arkitektura 2.1 irudian azaltzen da. Zati nagusia irudiak prozesatzeko liburutegia da, 2000 operadore baino gehiagoz osatua. Era berean, zure operadoreak gara ditzakezu ex-tension deritzon paketeen moduan (11. orrialdea). Zure aplikazioko operadoreak hizkuntza-interfazeen bidez erabiltzen dituzu (11. orrialdea) HALCON/C++ edo HALCON/Python bezalakoak. Operadoreak programazio-lengoaia ezberdinetako programazio-estilo tipikoan zuzenean erabiltzeko aukera ematen duten liburutegiak dira.

2.1. irudia: HALCONen oinarrizko arkitektura.
Irudiak eskuratzeko gailuetarako sarbidea izateko, HALCONek irudiak eskuratzeko interfazeak eskaintzen ditu (13. orrialdea), eskuratze-gailu nahiko desberdinak modu komun batean erabiltzeko aukera ematen dutenak. Gailuaren inplementazio espezifikoak dituzten liburutegiak dinamikoki kargatzen dira beharrezkoa denean. Modu berean, I/O gailuak gailuen berariazko I/O interfazeen bidez sartzen dira (13. orrialdea).
Eragileak
HALCON liburutegitik edozein funtzionalitate erabiltzen den bakoitzean, operadore baten bidez egiten da. Gehienek hainbat metodo dituzte, parametroen bidez hautatzen direnak. Operadore guztien zerrenda osoa HDevelop, .NET, Python, C++ eta C sintaxian eskuragarri dagoen HALCON Operator Reference-n aurki daiteke. Operadoreen ezaugarri garrantzitsuak hauek dira:
- Ez dago hierarkiarik operadoreen artean. Softwarearen arkitekturaren puntutik view, operadore guztiak maila berean daude.
- Jakina, badaude operadore talde logikoak. Adibidezample, hau C++ eta .NET-erako eskaintzen diren klaseek ikus dezakete, non datu-mota bera prozesatzen duten operadoreak dagozkien klaseetako kide funtzioak diren.
- Operadoreen diseinuak arkitektura irekiaren arauak jarraitzen ditu. Beraz, zure eragileak sor ditzakezu eta horrela HALCON heda dezakezu (ikus 2.2 atala). Extension Package Programatzailearen eskuliburuak operadorearen liburutegia zabaltzeari buruzko informazio zehatza dauka.
- Operadore askok paralelizazio automatikoa gardentasunez erabil dezakete, eta horrek programa bizkortzeko modu erraz bat ahalbidetzen du multiprozesadore edo nukleo anitzeko ordenagailu batean irudi handiak erabiltzean. Programazio paraleloari buruzko informazio zehatza Programazio Paraleloko ohar teknikoan aurki daiteke, baita Programatzaileen Gidan ere.
- Operadoreek sarrera- eta irteera-parametroak ordenatzeko arau estandarizatuak dituzte: sarrera-ikonikoa, irteera-ikonikoa, sarrera-kontrola eta irteera-kontrola (ikus 2.1.1 atala). Baliteke talde guztiak ez izatea operadore jakin baterako. Oro har, operadoreen sarrera-parametroak ez dira aldatzen, eta horrek semantika argia eta sinplea dakar. Diseinu honetan salbuespen batzuk baino ez daude, adibidez, set_grayval, overpaint_gray eta overpaint_region.
Parametroak eta Datuen Egiturak
HALCONek oinarrizko bi parametro mota ditu: datu ikonikoak eta kontrol datuak. Irudiak, eskualdeak eta XLDak (eXtented Line Description) datu ikonikoetakoak dira.
Irudiak kanalez osatuta dago batez ere, hau da, pixel-balioak dituzten matrizeak. Irudi baten kanal guztiek tamaina bera dute. Pixelei eta kanalei buruzko informazio zehatza lortzeko, irakurri HALCON Operator Erreferentziako "Irudia" kapitulua.
Irudi bakoitzerako, eskualde interesgarriak (ROI) izenekoak irudiaren zein zati prozesatzen den zehazten du. ROI-a oso malgutasunez defini daiteke (laukizuzen soil batetik konektatu gabeko pixel multzo batera). ROI-aren kudeaketari buruzko xehetasunak lortzeko, ikusi I. Soluzio Gida, Intereseko Eskualdea 27. orrialdean.
Eskualdeak pixel multzo bat dira. Eskualde bateko pixelak ez dira konektatu behar. Nahiz eta pixel bilduma arbitrarioa eskualde bakar gisa kudeatu daiteke. Operadorearen konexioarekin eskualde bat bere eskualde konektatuetan zatitu daiteke, hau da, konektatutako pixelez osatutako osagaiak.
XLDak sestra eta poligonoetan oinarritutako datu guztiak biltzen ditu. Edges_sub_pix bezalako azpipixel-zehatzak diren operadoreek sestrak XLD datu gisa itzultzen dituzte. Ingerada 2D kontrol-puntuen sekuentzia bat da, lerroen bidez lotzen direnak. Normalean, kontrol puntuen arteko distantzia pixel batekoa da. XLD objektuek, kontrol-puntuez gain, atributu lokal eta global deiturikoak dituzte. Adibamphauentzat, adibidez, ertza dira ampKontrol-puntu baten litudea edo sestra-segmentu baten erregresio-parametroak. XLD objektuak erauzteaz gain, HALCONek prozesamendu gehiago onartzen du. AdibampHonetarako fitxategiak sestra bat lerro, arku, poligono edo paralelotan segmentatzeko emandako ezaugarri-barrutietan oinarritutako ingerada hautatzea dira.
Kontrol-datuek heldulekuak eta oinarrizko datu-motak barne hartzen dituzte, hala nola osokoa, erreala, katea.
Heldulekuak datu-egitura konplexuen erreferentziak dira, adibidez, irudiak eskuratzeko interfaze baterako konexioa edo forman oinarritutako bat etortzeko eredu bat. Eraginkortasuna eta datuen segurtasuna dela eta, operadoreen artean ez da egitura osoa, heldulekua bakarrik pasatzen da. Heldulekuak aldatu behar ez diren balio magikoak dira eta exekuzio batetik bestera eta bertsiotik bertsio desberdinak izan daitezke. Erreferentzia guztiak gainidazten direnean automatikoki garbitzen dira. Adibampheldulekuak erabiltzen diren leiho grafikoak dira, files, entxufeak, irudiak eskuratzeko interfazeak, OCR, OCV, neurketa eta parekatzea.
Luzapen paketeak
HALCON operadore berriek hedatu dezakete. HALCONek dagoeneko hainbat atazatarako operadore multzo ugari baditu ere, baliteke operadore berriak inplementatzea nahi izatea, adibidez, hardware berezi batera sartzeko edo algoritmo alternatibo bat ezartzeko. Horretarako, HALCONek Extension Package Interfazea eskaintzen du, eta horrek operadore berriak (C-n inplementatuak) integratzeko aukera ematen du hedapen-pakete deritzon moduan. Extension Package Interfazeak aurredefinitutako hainbat errutina eta makro ditu C-ko irudi-datuak eta memoria-objektuak erraz maneiatzeko. Operadore berri bat ongi integratuta dagoenean, beste edozein HALCON operadore bezala erabil daiteke. Extension Package Programatzailearen eskuliburuak operadorearen liburutegia zabaltzeari buruzko informazio zehatza dauka.
Hizkuntza Interfazeak
2.1. orrialdeko 9 irudian ikusten den bezala, HALCONek hizkuntza-interfazeak deiturikoak eskaintzen ditu. Hauek jatorrizko hizkuntzako loturak dira, operadoreei deitzeko eta HALCON datu motak zuzenean zure aplikaziotik erabiltzeko aukera ematen dizutenak, Python, C, C++ edo .NET izan.
Garapena hasteko, lehenik eta behin exekutatzeko prest dauden adibideetako bat egiaztatzea gomendatzen duguample programak. Hemen, proiektua nola ezarri behar den eta operadoreak eta motak nola erabiltzen diren ikus dezakezu.
Hizkuntza-interfaze bakoitzeko, mota, klaseen, operadoreen izendapen-konbentzioen eta abarren izenak desberdinak izan daitezke hautatutako hizkuntzari aplikatzen zaizkion ohiko arauak betetzeko. Onartutako programazio-lengoaietarako operadoreen sinadurak HALCON Operator Reference-n dokumentatuta daude.
HALCON/Python
Python interfazea bere sinpletasunagatik eta prototipo azkarra egiteko gaitasunagatik nabarmentzen da. HALCON operadoreak funtzio autonomo gisa deitzen dira zuzenean, HALCON/Python modulua inportatu ondoren. Kontuan izan, halaber, HALCON/Python-en operadore-parametroak funtzio-parametroetan (sarrerak) eta itzulera-balioetan (irteera) banatzen direla.
Example
Hurrengo kodeak irudi bat irakurtzen du eta bertan konektatuta dauden eskualdeen kopurua kalkulatzen du (10. orrialdea).
img = ha.read_image('pcb')
eskualdea = ha.atalasea(img, 0, 122)
num_regions = ha.count_obj (ha.connection (eskualdea))
inprimatu(f'Eskualde kopurua: {num_regions}')
Aurrebaldintzak eta ibilbide zehatza lortzeko, ikusi Programatzailearen Gida, 4. zatia, Lehen Ex A.ample.
HALCON/C
C interfazea HALCONek onartzen duen interfaze sinpleena da. Eragile bakoitza funtzio global batek edo bik adierazten dute, non operadorearen izena eta parametro-sekuentzia HDevelop hizkuntzaren berdinak diren.
Example
Hurrengo kodeak irudi bat irakurtzen du eta bertan konektatuta dauden eskualdeen kopurua kalkulatzen du (10. orrialdea).
Hobject img;
irakurri_irudia(&img, “pcb”);
Hobject eskualdea;
atalasea(img, ®ion, 0, 122);
Hobject konektatutako_eskualdeak;
konexioa(eskualdea, &konektatutako_eskualdeak);
Hlong num_regions = 0;
count_obj(konektatutako_eskualdeak, &num_eskualdeak);
printf(“Eskualde kopurua: %” PRIdPTR “\n”, num_regions);
Aurrebaldintzak eta ibilbide zehatza lortzeko, ikusi Programatzailearen Gida, 5. zatia, Lehen Ex A.ample.
HALCON/C++
C++ interfazea C interfazea baino askoz sofistikatuagoa da. Hemen, abantailatagC++ eta objektuetara bideratutako programazioa erabiltzen dira, hau da, mota automatikoki bihurtzea, eraikitzea eta suntsitzea, edo funtzioak euren datuekin batera klaseetan multzokatzea. C interfazean bezala, HALCON operadore bakoitzaren funtzio globalak programazio-estilo prozedurazko baterako eskaintzen dira.
Example
Hurrengo kodeak irudi bat irakurtzen du eta bertan konektatuta dauden eskualdeen kopurua kalkulatzen du (10. orrialdea).
HIrudiaren irudia{“pcb”};
HRegion eskualdea = img.Threshold(0, 122);
Hlong numRegions = eskualdea.Konexioa().CountObj();
std::cout << “Eskualde kopurua: ” << numRegions << '\n';
Aurrebaldintzak eta ibilbide zehatza lortzeko, ikusi Programatzailearen Gida, 2. zatia, Lehen Ex A.ample.
HALCON/.NET
C# eta Visual Basic .NET-ek HALCON erabiltzen dute .NET interfazearen bidez.
C++-ren antzera, bi programazio estilo eskaintzen dira: prozedurazkoa eta objektuetara zuzendua. Prozedura estilorako, HOperatorSet klaseak HALCON operadore guztiak eskaintzen ditu, non HObject datu ikonikoak kudeatzeko erabiltzen den eta HTuple kontrol datuetarako. Objektuetara zuzendutako estilorako, HDataCode2d, HMeasure edo HShapeModel bezalako klaseak eskaintzen dira funtzio zentralerako. Horrez gain, datu ikonikoetarako klaseak daude eskuragarri, adibidez, HImage edo HRegion.
Example
Hurrengo kodeak irudi bat irakurtzen du eta bertan konektatuta dauden eskualdeen kopurua kalkulatzen du (10. orrialdea).
HImage img = HImage berria ("pcb");
HRegion eskualdea = img.Threshold(0d, 122d);
int numRegions = eskualdea.Konexioa().CountObj();
Console.WriteLine(“Eskualde kopurua: ” + numRegions);
Aurrebaldintzak eta ibilbide zehatza lortzeko, ikusi Programatzailearen Gida, 3. zatia, Lehen Ex A.ample.
Irudiak eskuratzeko interfazeak
HALCONen irudiak eskuratzeko interfazeek irudiak eskuratzeko gailuaren fabrikatzaileak emandako softwarearen eta HALCONen arteko zubia osatzen dute. Interfaze komun eta generiko bat osatzen dute, operadore multzo txiki bat bakarrik behar duena. Mesedez, kontsultatu II-A Soluzio Gida gai honi buruzko informazio zehatza lortzeko.
Gaur egun, HALCONek 50 fotograma-grabber baino gehiago eta ehunka kamera industrialentzako interfazeak eskaintzen ditu dinamikoki karga daitezkeen liburutegien moduan (Windows: DLLak; Unix antzeko sistemak: liburutegi partekatuak). Liburutegien izenak hAcq aurrizkiarekin hasten dira; xl atzizkiarekin amaitzen diren liburutegiak HALCON XL-k erabiltzen ditu.
Industria estandarretan oinarritutako interfazerik erabilienak dagoeneko instalatuta daude HALCON liburutegiekin batera. Interfaze gehigarriak, baita dagoeneko sartutako interfazeen azken bertsioak ere azpian deskargatu daitezke https://www.mvtec.com/products/interfaces. HALCON irudiak eskuratzeko interfazeak HALCON liburutegia bera baino maizago alda daitezke. Horren arrazoi bat da MVTec-ek etengabe garatzen dituela interfaze berriak; gainera, irudiak hartzeko gailuen fabrikatzaileek eskaintzen duten softwarea aldatzen bada, adibidez, ezaugarri berriak integratzen badira, dagozkion HALCON interfazeak egokituko dira. Mesedez, ikusi Irudiak eskuratzeko Interfazearen Erreferentziara ere onartzen diren irudiak eskuratzeko interfazeen zerrenda osoa ikusteko.
Irudiak eskuratzeko gailua behar bezala instalatu ondoren, HALCONetik atzitzeko egin behar duzun guztia open_framegrabber operadoreari deitzea da, irudiak eskuratzeko interfazearen izena eta informazio gehigarriren bat zehaztuz, adibidez, konektatutako kamerari buruzkoa. Ondoren, irudiak har daitezke grab_image (edo grab_image_async) operadoreari deituz.
I/O Interfazeak
HALCONek hainbat I/O gailurentzako interfazeak eskaintzen ditu datuak eskuratzea ahalbidetzeko. Interfaze hauek dinamikoki karga daitezkeen liburutegi gisa daude eskuragarri (Windows: DLLak; Unix antzeko sistemak: liburutegi partekatuak). Liburutegien izenak hio aurrizkiarekin hasten dira; xl atzizkiarekin amaitzen diren liburutegiak HALCON XL-k erabiltzen ditu.
HALCON I/O gailuen interfazeek sarbide bateratua eskaintzen dute I/O gailu desberdinetarako, operadore multzo txiki bat erabiliz. Zure I/O gailua instalatu ondoren, konexio bat ezartzen da open_io_device operadorea erabiliz, I/O gailuaren interfazearen izena eta, aukeran, gailuaren berariazko parametro batzuk zehaztuz. Konexioa ezarrita, transmisio kanal bat ireki daiteke open_io_channel deituz. Kanal honetan balioak irakurtzeko eta idazteko, erabili read_io_channel eta write_io_channel operadoreak, hurrenez hurren.
Kontuan izan HALCON I/O gailuen interfazeak HALCON liburutegia bera baino maizago alda daitezkeela. Azken informazioa aurki dezakezu deskarga daitezkeen interfazeekin batera (dokumentazioa barne) azpian https://www.mvtec.com/products/interfaces. Mesedez, ikusi I/O gailuen interfazearen erreferentziara onartzen diren I/O gailuen interfazeen zerrenda osoa lortzeko.
Aplikazioak nola garatu
Prototipatu azkarrarekin hastea gomendatzen dugu HDevelop-en, HALCON ikusmen automatikoaren liburutegirako garapen ingurune interaktiboan. HDevelop erabil dezakezu zure irudiak aztertzeko zeregina konpontzeko operadore eta parametro optimoak aurkitzeko. HDevelop programa bat emandako eskakizunen arabera garatu ondoren, bere azken ingurunera itzuli behar da. Horretarako, hiru ikuspegi hauen artean aukeratu dezakezu, zure lehentasunen arabera:
- Scratch-etik hasi: Zure programa hutsetik idazteak zure HDevelop kodea helburuko programazio hizkuntzara (C++, Python...) eskuz itzultzea esan nahi du. Lehen esan bezala, operadoreen izendapen-konbentzioak, klaseen izenak, etab., programazio-lengoaien artean desberdinak izan daitezke. Begiratu HALCON operadorearen erreferentziari HALCON operadorearen sinadurak lortzeko, onartzen den programazio-lengoaia bakoitzerako. Nahi duzun xede-hizkuntzan aplikazioak sortzeko informazioa lortzeko, irakurri Programatzailearen Gida.
- Esportatu HDevelop kodea: Itzuli zure HDevelop kodea helburuko programazio hizkuntzara automatikoki HDevelop-en kodea esportatzea erabiliz.
- Liburutegiaren proiektua esportatu: HDevelop-en liburutegien esportazioak proiektuaren karpeta erabiltzeko prest sortzen du, xede-hizkuntzako wrap-per kodea eta CMake barne. file proiektua eraikitzeko. HDevelop-en liburutegien esportazioak HDevEngine erabiltzen du, interprete gisa jarduten duen liburutegia. HDevEngine-k HDevelop programak edo prozedurak zuzenean exekutatzeko aukera ematen dizu C++-n edo .NET objektuak integra ditzakeen edozein hizkuntzatan idatzitako aplikazio batetik. Horrela, ez duzu aplikazio osoa berriro konpilatu behar HDevelop kodean aldaketak egiterakoan.
Jakina, HDevEngine erabil dezakezu HDevelop-en liburutegien esportazio funtzioa erabili gabe. HDevEngine nola erabili zehatz-mehatz deskribatzen da Programatzailearen Gidan, 6. zatian (HDevEngine erabiltzea).
HGaratu
Eman dezagun lehen begirada HDevelop-i. 3.1 irudiak HDevelop-en erabiltzailearen interfazea erakusten du, programa bat kargatu eta zati batean exekutatu ondoren.
Lehenespenez, leiho hauek ikusgai daude, ezinbestekoak ere HDevelop-ekin garatzeko:
- Grafikoen leihoa emaitzak (tarteko) bistaratzen ditu, hots, datu ikonikoak (10. orrialdea) irudiak, eskualdeak eta XLDak bezalakoak.
- Programaren leihoa Hau da zure programaren kodea idazten duzuna, operadoreak erabiliz (10. orrialdea) HALCONen irudiak prozesatzeko metodoetara sartzeko.
- Aldagaiaren leihoa Aldagai guztiak erakusten ditu, hots, aldagai ikonikoak eta kontrol-aldagaiak. Aldagai ikonikoek datu ikonikoak dituzte (10. orrialdea) eta kontrol-aldagaiek kontrol-datuak (10. orrialdea).
HDevelop-i buruzko informazio zehatza HDevelop erabiltzailearen gidan aurki daiteke. Gure tutorial bideoek HDevelop-en sarrera ona eskaintzen dute:
- HGaratu 01. tutoriala: GUI eta nabigazioa
- HGaratu Tutoriala 02: Aldagaiak
- HGartu 03. tutoriala: bistaratzea

3.1. irudia: HDevelop-en Erabiltzaile Interfazea.
Example Programa
HDevelop-en Erabiltzaile Interfazea eta HALCON-en oinarrizko kontzeptuak (9. orrialdea) ezagutu dituzunez, garatu dezagun C++ aplikazio bat Library Export Approach erabiliz.
Urratsez urratseko jarraibideez gain, gure tutorial bideoak ikustea gomendatzen dizugu: Integratu HDevelop kodea C++ aplikazio batean Library Project Export erabiliz.
Integratu HDevelop kodea C# aplikazio batean Library Project Export erabiliz
Bideoek liburutegiaren esportazioa erakusten dute eta gaiari buruzko informazio gehiago ematen dute.
Sortu prototipoa HDevelop-en
Hurrengo adibaren zereginaample da irudi bat irakurri eta harekin lotutako eskualde kopurua zenbatzea.
- Ireki HDevelop eta sartu kode hau Programaren leihoan:
irakurri_irudia (Irudia, 'pcb')
atalasea (Irudia, Eskualdea, 0, 122)
konexioa (Region, ConnectedRegions)
count_obj (ConnectedRegions, Zenbakia) - Probatu zure programa tresna-barran Exekutatu sakatuz edo F5 sakatuz.
HDevelop kode hau benetako aplikazio batean erraz integratzeko, ikusmen automatikoaren zatia prozedura lokal batean biltzen dugu.
- Nabarmendu kode-lerro hauek: atalasea (Irudia, Eskualdea, 0, 122) konexioa (Eskualdea, Eskualdeak konektatuak) count_obj (Eskubideak, Zenbakia)
- Egin klik eskuineko botoiarekin laster-menua irekitzeko.
- Aukeratu Sortu prozedura berria.
- Izena eman count_regions.
- Hautatu Parametroak eta hautatu Hautaketa-eskema Lehena, Azkena.
- Berretsi Ados batekin.
- Gorde zure HDevelop programa hdev_count_regions.hdev gisa
Prestatu Visual Studio proiektua
Adib honetanample, Visual Studio 2019 erabiliko dugu. 1
- Sortu C++ Windows Console proiektu huts bat eta izendatu vs_count_regions. Mesedez, aktibatu Ipini irtenbidea eta proiektua direktorio berean aukera. 2
- Gehitu C++ iturburu bat file (Menu Proiektua Gehitu elementu berria... C++ File) eta izendatu vs_count_regions.cpp.
- Aukeratu irtenbide plataforma x64 tresna-barrako goitibeherako menuan.
- Ireki zure proiektuaren propietateak (Menu Project vs_count_regions Properties...) eta egin ezarpen hauek:
- Hautatu C/C++ Orokorra eta gehitu Sartu direktorio gehigarri hauek:$(HALCONROOT)\include;$(HALCONROOT)\include\halconcpp;
- Hautatu Linker General eta gehitu Liburutegien Direktorio Gehigarri hau:$(HALCONROOT)\lib\$(HALCONARCH);
- Hautatu Linker Input eta gehitu menpekotasun gehigarri hauek: halconcpp.lib;hdevenginecpp.lib;
Esportatu Liburutegi Proiektua
Ondoren, gure HDevelop programa hdev_count_regions.hdev gure Visual Studio proiektuaren karpetara esportatzen dugu.
- Ireki aurretik sortutako HDevelop programa hdev_count_regions.hdev.
- Ireki File Liburutegiaren proiektua esportatu...
- Egin ezarpen hauek:
- Sarrera file: Egungo Programa
- Helburu-hizkuntza: C++
- Proiektuaren izena: hdev_count_regions
- Proiektuaren kokapena: aukeratu gure Visual Studio proiektuaren kokapena vs_count_regions.
- Izen-gunea: hdev_count_regions
- Berretsi esportazioarekin.
Orain, zure Visual Studio proiektuaren karpeta vs_count_regions datu hauek izan beharko lituzke gutxienez:
- vs_count_regions.cpp (Iturria File)
- vs_count_regions.sln (Irtenbidea)
- hdev_count_regions (HDevelop Export-eko karpeta)
- cmake
- res_ hdev_ count_ eskualdeak
- hdev _ zenbatu_ eskualdeak. hdev
- iturria
- hdev_count_regions.cpp
- hdev_count_regions.h
- CMakeLists.txt
Integratu Library Project Visual Studio-n
Azkenik, HDevelop programa gure Visual Studio Proiektuan integratu behar dugu.
- Ireki Visual Studio proiektua.
- Ireki Proiektua Gehitu lehendik dagoen elementua... eta aukeratu C++ file hdev_count_regions.cpp eta goiburua file hdev_count_regions.h, HDevelop-en Library Export-ek sortua. (The filehdev_count_regions iturburuan daude.)
- Sartu kode hau vs_count_regions.cpp-n:
#sartu
#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(Irudia, &Zenbakia);
std::cout << “Eskualde kopurua: ” << Zenbakia.L() << '\n';
} - Exekutatu programa. → Kontsola bat irekitzen da, 'Eskualde kopurua: 43' emaitza erakutsiz.
Nola Jarraitu
HALCONen sakontzeko, dokumentazio eta laguntza gehiago eskaintzen dugu.
- HGaratu Adibample Programak
HALCONek adibide multzo zabala eskaintzen duample programak, ez bakarrik HDevelop-erako, baita programazio-lengoaia ezberdinetarako ere. Hauek adibidezampfitxategiak % HALCONEX ingurune-aldagaiak adierazten duen direktorioan aurki daitezkeAMPLES% edo, aldagaia ezarrita ez badago, azpidirektorioan adibidezampHALCON instalatu duzun karpetako fitxategiak.
HDevelop example programa, hautatu menua File Arakatu HDevelop Example Programak…. Hasiberrientzat, ex bat hautatzea gomendatzen duguampAplikazio eremuko le. - Zerbitzuak eta laguntza
Gurea webgunea https://www.mvtec.com/services-support-ek hainbat laguntza eskaintzen ditu, adibidezample tutorial bideoak, tailer eta formazioei buruzko informazioa, garatzaileen txokoa aholku eta trikimailuak eskaintzen dituena, eta askoz gehiago. - HALCON Dokumentazioa
Dokumentazioak informazio ugari eskaintzen du, hasiberrien gaietatik hasi eta adituen ezagutzaraino. AdibidezampGure Soluzio Gidak ikusmen automatikoaren metodoak eta HDevelop-en nola aplikatu deskribatzen ditu. Abiapuntu ona Solution Guide I da, eta horrek ikusmen automatikoaren metodo nagusiak aurkezten dizkizu.
Bat baino gehiagoview deskribapen laburra duten eskuliburu guztien artean dokumentazioaren sarrera-orrian aurki daitezke.
Dokumentuak / Baliabideak
![]() |
HALCON 21.11 Aurrerapena [pdfErabiltzailearen gida 21.11 Aurrerapena, 21.11, Aurrerapena |





