HALCON 21.11 Përparimi

Një qasje e shpejtë në funksionalitetin e HALCON, Versioni 21.11.0.0
Të gjitha të drejtat e rezervuara. Asnjë pjesë e këtij botimi nuk mund të riprodhohet, ruhet në një sistem rikthimi, ose të transmetohet në çfarëdo forme ose me çfarëdo mënyre, elektronike, mekanike, fotokopjuese, regjistrimi ose ndryshe, pa lejen paraprake me shkrim të botuesit.
E drejta e autorit © 2003-2021 nga MVTec Software GmbH, München, Gjermani
Mbrojtur nga patentat e mëposhtme: 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. Patenta të tjera në pritje.
Microsoft, Windows, Windows Server 2008/2012/2012 R2/2016, Windows 7/8/8.1/10, Microsoft .NET, Visual C++ dhe Visual Basic janë ose marka tregtare ose marka të regjistruara të Microsoft Corporation.
Linux është një markë tregtare e Linus Torvalds.
macOS dhe OpenCL janë marka tregtare të Apple Inc.
NVIDIA, CUDA, cuBLAS dhe cuDNN janë ose marka tregtare ose marka të regjistruara të NVIDIA Corporation.
OpenGL është një markë tregtare e Silicon Graphics, Inc.
Të gjitha markat dhe emrat tregtare të njohura kombëtare dhe ndërkombëtare njihen me këtë.
Më shumë informacion rreth HALCON mund të gjeni në: http://www.halcon.com/
Rreth këtij manuali
Ky manual ju prezanton me HALCON. Është menduar për fillestarët pa njohuri paraprake për HALCON.
Ky manual mund të përdoret gjithashtu si një udhëzues referimi për disa manuale të tjerë HALCON, pasi i ndërlidh ato përgjatë temave të mëposhtme:
- Instalimi i HALCON (faqe 7)
Ky kapitull prezanton Menaxherin e Softuerit MVTec (SOM). - Arkitektura HALCON (faqe 9)
Një sfond teorik, i nevojshëm për të kuptuar se çfarë është HALCON dhe si funksionon. - Si të zhvilloni aplikacione (faqe 15)
Ky kapitull shpjegon tre qasjet bazë për zhvillimin me HALCON dhe ju udhëzon në një shembull të parë të programimitample. - Si të vazhdohet (faqe 19)
Ky kapitull i referohet burimeve shtesë të informacionit.
Instalimi i HALCON
Për përdoruesit e Linux dhe Windows, ne rekomandojmë shkarkimin dhe instalimin e HALCON nëpërmjet Menaxherit të Softuerit MVTec (SOM). SOM është një menaxher instalimi për paketat softuerike. Ai siguron akses në një katalog të largët të produkteve dhe mbështet, mes veçorive të tjera, shkarkimin dhe instalimin e paketave. Një hyrje hap pas hapi se si të instaloni HALCON nëpërmjet SOM mund të gjendet në Udhëzuesin e Instalimit.
Arkitektura HALCON
Arkitektura bazë e HALCON është paraqitur në figurën 2.1. Pjesa kryesore është biblioteka e përpunimit të imazhit, e cila përbëhet nga më shumë se 2000 operatorë. Ju gjithashtu mund të zhvilloni operatorët tuaj në formën e të ashtuquajturave paketa ex-tension (faqe 11). Ju përdorni operatorët në aplikacionin tuaj nëpërmjet ndërfaqeve gjuhësore (faqe 11) si HALCON/C++ ose HALCON/Python. Këto janë biblioteka që lejojnë një përdorim të drejtpërdrejtë të operatorëve në stilin tipik të programimit të gjuhëve të ndryshme të programimit.

Figura 2.1: Arkitektura bazë e HALCON.
Për aksesin e pajisjeve për marrjen e imazheve, HALCON ofron ndërfaqe për marrjen e imazheve (faqe 13) të cilat ju lejojnë të përdorni pajisje mjaft të ndryshme për marrjen në një mënyrë të zakonshme. Bibliotekat që përmbajnë implementime specifike për pajisjen ngarkohen në mënyrë dinamike kur nevojitet. Në të njëjtën mënyrë, pajisjet I/O aksesohen përmes ndërfaqeve I/O specifike për pajisjen (faqe 13).
Operatorët
Sa herë që përdoret çdo lloj funksionaliteti nga biblioteka HALCON, ai bëhet nëpërmjet një operatori. Shumica e tyre përfshijnë metoda të shumta, të cilat zgjidhen nëpërmjet parametrave. Një listë e plotë e të gjithë operatorëve mund të gjendet në Referencën e Operatorit HALCON e disponueshme në sintaksën HDevelop, .NET, Python, C++ dhe C. Karakteristikat e rëndësishme të operatorëve janë:
- Nuk ka hierarki midis operatorëve. Nga pika e arkitekturës së softuerit të view, të gjithë operatorët janë në të njëjtin nivel.
- Sigurisht, ka grupe logjike operatorësh. Për shembullampLe, kjo mund të shihet nga klasat e ofruara për C++ dhe .NET, ku operatorët që përpunojnë të njëjtin lloj të dhënash janë funksione anëtare të klasave përkatëse.
- Dizajni i operatorëve ndjek rregullat e arkitekturës së hapur. Prandaj, ju mund të krijoni operatorët tuaj dhe kështu të zgjeroni HALCON (shih seksionin 2.2). Manuali i Programuesit të Paketës së Zgjerimit përmban informacion të detajuar rreth zgjerimit të bibliotekës së operatorit.
- Shumë operatorë mund të përdorin transparente paralelizimin automatik, i cili lejon një mënyrë të thjeshtë për të shpejtuar programin kur përdorni imazhe të mëdha në një kompjuter me shumë procesor ose me shumë bërthama. Informacione të detajuara mbi programimin paralel mund të gjenden në shënimin teknik Programimi paralel, si dhe në Udhëzuesin e programuesit.
- Operatorët kanë rregulla të standardizuara për renditjen e parametrave të hyrjes dhe daljes: ikonën e hyrjes, ikonën e daljes, kontrollin e hyrjes dhe kontrollin e daljes (shih seksionin 2.1.1). Jo të gjitha grupet mund të nevojiten për një operator të caktuar. Në përgjithësi, parametrat hyrës të operatorëve nuk modifikohen, gjë që rezulton në një semantikë të qartë dhe të thjeshtë. Ka vetëm disa përjashtime nga ky dizajn, p.sh. set_grayval, overpaint_gray dhe overpaint_region.
Parametrat dhe strukturat e të dhënave
HALCON ka dy lloje themelore të parametrave: të dhënat ikonike dhe të dhënat e kontrollit. Imazhet, rajonet dhe XLD-të (Përshkrimi i linjës së zgjeruar) i përkasin të dhënave ikonike.
Imazhet përbëhen kryesisht nga kanale, p.sh., matrica që përmbajnë vlera pixel. Të gjitha kanalet e një imazhi kanë të njëjtën madhësi. Për informacion të detajuar rreth pikselëve dhe kanaleve, ju lutemi lexoni kapitullin "Imazhi" të referencës së operatorit HALCON.
Për çdo imazh, i ashtuquajturi rajon i interesit (ROI) specifikon se cila pjesë e imazhit përpunohet. ROI mund të përcaktohet në mënyrë shumë fleksibël (nga një drejtkëndësh i thjeshtë në një grup pikselësh të palidhur). Për detaje rreth trajtimit të ROI, shihni Udhëzuesin e Zgjidhjeve I, Rajoni i Interesit në faqen 27.
Rajonet janë një grup pikselësh. Piksele të një rajoni nuk kanë nevojë të lidhen. Edhe një koleksion arbitrar pikselësh mund të trajtohet si një rajon i vetëm. Me lidhjen e operatorit, një rajon mund të ndahet në rajonet e tij të lidhura, p.sh., në komponentë të përbërë nga pikselë të lidhur.
XLD-të përfshijnë të gjitha të dhënat e bazuara në kontur dhe poligon. Operatorët e saktë me nënpiksel si edges_sub_pix i kthejnë konturet si të dhëna XLD. Një kontur është një sekuencë pikash kontrolli 2D, të cilat lidhen me linja. Në mënyrë tipike, distanca midis pikave të kontrollit është rreth një piksel. Objektet XLD përmbajnë, përveç pikave të kontrollit, të ashtuquajturat atribute lokale dhe globale. Tipike ishamples për këto janë, p.sh., buzë amplituda e një pike kontrolli ose parametrat e regresionit të një segmenti kontur. Përveç nxjerrjes së objekteve XLD, HALCON mbështet përpunimin e mëtejshëm. p.shampLejet për këtë janë përzgjedhja e kontureve bazuar në diapazonin e veçorive të dhëna për segmentimin e një konture në vija, harqe, poligone ose paralele.
Të dhënat e kontrollit përfshijnë doreza dhe lloje bazë të të dhënave si numër i plotë, real, varg.
Dorezat janë referenca për strukturat komplekse të të dhënave, p.sh., një lidhje me një ndërfaqe të marrjes së imazhit ose një model për përputhjen e bazuar në formë. Për arsye efikasiteti dhe sigurie të të dhënave, jo e gjithë struktura, por vetëm doreza kalon ndërmjet operatorëve. Dorezat janë vlera magjike që nuk duhen ndryshuar dhe mund të ndryshojnë nga ekzekutimi në ekzekutim dhe nga versioni në version. Ato pastrohen automatikisht pasi të gjitha referencat të mbishkruhen. p.shampato ku përdoren dorezat janë dritaret grafike, files, bazat, ndërfaqet e marrjes së imazhit, OCR, OCV, matja dhe përputhja.
Paketat e Zgjerimit
HALCON mund të zgjerohet nga operatorë të rinj. Megjithëse HALCON tashmë përmban një grup të bollshëm operatorësh për detyra të ndryshme, ju mund të dëshironi të implementoni operatorë të rinj, p.sh., për të hyrë në një pajisje të veçantë ose për të zbatuar një algoritëm alternativ. Për ta bërë këtë, HALCON ofron ndërfaqen e paketës së zgjerimit, e cila lejon integrimin e operatorëve të rinj (të implementuar në C) në formën e të ashtuquajturave paketa shtesë. Ndërfaqja e paketës së zgjerimit përmban disa rutina dhe makro të paracaktuara për trajtimin e lehtë të të dhënave të imazhit dhe objekteve të memories në C. Pasi një operator i ri të jetë integruar me sukses, ai mund të përdoret si çdo operator tjetër HALCON. Manuali i Programuesit të Paketës së Zgjerimit përmban informacion të detajuar rreth zgjerimit të bibliotekës së operatorit.
Ndërfaqet gjuhësore
Siç tregohet në figurën 2.1 në faqen 9, HALCON ofron të ashtuquajturat ndërfaqe gjuhësore. Këto janë lidhje të gjuhës amtare, që ju mundësojnë të telefononi operatorë dhe të përdorni llojet e të dhënave HALCON direkt nga brenda aplikacionit tuaj, qoftë Python, C, C++ ose .NET.
Për të filluar zhvillimin, ne rekomandojmë që së pari të kontrolloni një nga ish-të e gatshëm për ekzekutimample programet. Këtu mund të shihni se si duhet të konfigurohet projekti dhe si përdoren operatorët dhe llojet.
Për çdo ndërfaqe gjuhësore, emrat e llojeve, klasave, konventat e emërtimit të operatorëve, etj. mund të ndryshojnë për të qenë në përputhje me rregullat tipike që zbatohen për gjuhën e zgjedhur. Nënshkrimet e operatorit për gjuhët e programimit të mbështetura dokumentohen në referencën e operatorit HALCON.
HALCON/Python
Ndërfaqja Python shquhet për thjeshtësinë dhe aftësinë e saj për prototipime të shpejta. Operatorët HALCON thirren drejtpërdrejt si funksione të pavarura, pas importimit të modulit HALCON/Python. Vini re gjithashtu se parametrat e operatorit në HALCON/Python ndahen në parametra funksioni (hyrje) dhe vlera të kthyera (dalje).
Example
Kodi i mëposhtëm lexon një imazh dhe llogarit numrin e rajoneve të lidhura (faqe 10) në të.
img = ha.read_image('pcb')
rajon = ha.prag(img, 0, 122)
num_rajonet = ha.count_obj(ha.lidhje(rajon))
print(f'Numri i rajoneve: {num_regions}')
Për parakushtet dhe një përshkrim të detajuar, ju lutemi shihni Udhëzuesin e Programuesit, Pjesa 4, Një shembull i parëample.
HALCON/C
Ndërfaqja C është ndërfaqja më e thjeshtë e mbështetur nga HALCON. Çdo operator përfaqësohet nga një ose dy funksione globale ku emri i operatorit dhe sekuenca e parametrave janë identike me gjuhën HDevelop.
Example
Kodi i mëposhtëm lexon një imazh dhe llogarit numrin e rajoneve të lidhura (faqe 10) në të.
Hobject img;
read_image(&img, "pcb");
Rajoni Hobject;
pragu (img, ®jon, 0, 122);
Hobject lidhur_rajonet;
lidhje (rajoni, &rajonet_të lidhura);
Hlong num_rajoneve = 0;
count_obj(rajonet_të lidhura, &numri_rajoneve);
printf(“Numri i Rajoneve: %” PRIdPTR “\n”, num_rajoneve);
Për parakushtet dhe një përshkrim të detajuar, ju lutemi shihni Udhëzuesin e Programuesit, Pjesa 5, Një shembull i parëample.
HALCON/C++
Ndërfaqja C++ është shumë më e sofistikuar se ndërfaqja C. Këtu, advantagPërdoren es të C++ dhe programimit të orientuar nga objekti, p.sh., konvertimi automatik i tipit, ndërtimi dhe shkatërrimi, ose grupimi i funksioneve së bashku me të dhënat e tyre në klasa. Ashtu si në ndërfaqen C, funksionet globale për çdo operator HALCON ofrohen për një stil procedurial programimi.
Example
Kodi i mëposhtëm lexon një imazh dhe llogarit numrin e rajoneve të lidhura (faqe 10) në të.
HImage img{“pcb”};
Rajoni HRegion = img.Threshold(0, 122);
Hlong numRegions = rajoni.Lidhja().CountObj();
std::cout << “Numri i Rajoneve: ” << numRajonet << '\n';
Për parakushtet dhe një përshkrim të detajuar, ju lutemi shihni Udhëzuesin e Programuesit, Pjesa 2, Një shembull i parëample.
HALCON/.NET
C# dhe Visual Basic .NET përdorin HALCON nëpërmjet ndërfaqes .NET.
Në mënyrë analoge me C++, ofrohen dy stile programimi: procedural dhe i orientuar nga objekti. Për stilin procedural, klasa HOperatorSet ofron të gjithë operatorët HALCON, ku HObject përdoret për të trajtuar të dhënat ikonike dhe HTuple përdoret për të dhënat e kontrollit. Për stilin e orientuar nga objekti, klasa si HDataCode2d, HMeasure ose HShapeModel ofrohen për funksionalitetin qendror. Përveç kësaj, klasat për të dhënat ikonike, p.sh., HImage ose HRegion, janë të disponueshme.
Example
Kodi i mëposhtëm lexon një imazh dhe llogarit numrin e rajoneve të lidhura (faqe 10) në të.
HImage img = i ri HImage (“pcb”);
Rajoni HRegion = img.Threshold(0d, 122d);
int numRegions = rajoni.Connection().CountObj();
Console.WriteLine (“Numri i Rajoneve: ” + numRajonet);
Për parakushtet dhe një përshkrim të detajuar, ju lutemi shihni Udhëzuesin e Programuesit, Pjesa 3, Një shembull i parëample.
Ndërfaqet e marrjes së imazhit
Ndërfaqet për marrjen e imazhit të HALCON formojnë urën ndërmjet softuerit të ofruar nga prodhuesi i pajisjes për marrjen e imazhit dhe HALCON. Ato formojnë një ndërfaqe të përbashkët, gjenerike që kërkon vetëm një grup të vogël operatorësh. Ju lutemi referojuni Udhëzuesit të Zgjidhjeve II-A për informacion të detajuar rreth kësaj teme.
Aktualisht, HALCON ofron ndërfaqe për më shumë se 50 grabbers kornizë dhe qindra kamera industriale në formën e bibliotekave të ngarkueshme dinamikisht (Windows: DLL; Sisteme të ngjashme me Unix: biblioteka të përbashkëta). Emrat e bibliotekave fillojnë me parashtesën hAcq; bibliotekat që mbarojnë me prapashtesën xl përdoren nga HALCON XL.
Ndërfaqet më të përdorura të bazuara në standardet e industrisë janë instaluar tashmë së bashku me bibliotekat HALCON. Ndërfaqet shtesë, si dhe versionet më të fundit të ndërfaqeve tashmë të përfshira mund të shkarkohen nën https://www.mvtec.com/products/interfaces. Ndërfaqet e marrjes së imazhit HALCON mund të ndryshojnë më shpesh sesa vetë biblioteka HALCON. Një arsye për këtë është se MVTec zhvillon vazhdimisht ndërfaqe të reja; për më tepër, nëse softueri i ofruar nga prodhuesit e pajisjeve për marrjen e imazhit ndryshon, p.sh., nëse integrohen veçori të reja, ndërfaqet përkatëse HALCON do të përshtaten. Ju lutemi referojuni gjithashtu Referencës së Ndërfaqes së Përvetësimit të Imazhit për një listë të plotë të ndërfaqeve të mbështetura për marrjen e imazhit.
Pasi të keni instaluar me sukses pajisjen tuaj për marrjen e imazhit, gjithçka që duhet të bëni për të hyrë në të nga HALCON është të telefononi operatorin open_framegrabber, duke specifikuar emrin e ndërfaqes për marrjen e imazhit dhe disa informacione shtesë, p.sh., në lidhje me kamerën e lidhur. Më pas, imazhet mund të merren duke telefonuar operatorin grab_image (ose grab_image_async).
Ndërfaqet I / O
HALCON ofron ndërfaqe për disa pajisje I/O për të mundësuar marrjen e të dhënave. Këto ndërfaqe janë të disponueshme si biblioteka të ngarkueshme dinamikisht (Windows: DLL; Sisteme të ngjashme me Unix: biblioteka të përbashkëta). Emrat e bibliotekave fillojnë me prefiksin hio; bibliotekat që mbarojnë me prapashtesën xl përdoren nga HALCON XL.
Ndërfaqet e pajisjes HALCON I/O ofrojnë akses të unifikuar në pajisje të ndryshme I/O duke përdorur një grup të vogël operatorësh. Pasi të keni instaluar pajisjen tuaj I/O, krijohet një lidhje duke përdorur operatorin open_io_device, duke specifikuar emrin e ndërfaqes së pajisjes I/O dhe, sipas dëshirës, disa parametra specifikë të pajisjes. Pasi të vendoset lidhja, një kanal transmetimi mund të hapet duke thirrur open_io_channel. Për të lexuar dhe shkruar vlerat në këtë kanal, përdorni përkatësisht operatorët read_io_channel dhe write_io_channel.
Ju lutemi vini re se ndërfaqet e pajisjes HALCON I/O mund të ndryshojnë më shpesh sesa vetë biblioteka HALCON. Ju mund të gjeni informacionin më të fundit së bashku me ndërfaqet e shkarkueshme (përfshirë dokumentacionin) poshtë https://www.mvtec.com/products/interfaces. Ju lutemi referojuni gjithashtu referencës së ndërfaqes së pajisjes I/O për një listë të plotë të ndërfaqeve të mbështetura të pajisjes I/O.
Si të zhvilloni aplikacione
Ne ju rekomandojmë që të filloni me prototipimin e shpejtë në HDevelop, mjedisi ndërveprues i zhvillimit për bibliotekën e vizionit të makinës HALCON. Mund të përdorni HDevelop për të gjetur operatorët dhe parametrat optimalë për të zgjidhur detyrën tuaj të analizës së imazhit. Pas zhvillimit të një programi HDevelop sipas kërkesave të dhëna, ai duhet të përkthehet në mjedisin e tij përfundimtar. Për këtë, ju mund të zgjidhni midis tre qasjeve të mëposhtme, në varësi të preferencave tuaja:
- Filloni nga e para: Të shkruash programin tuaj nga e para do të thotë të përktheni kodin tuaj HDevelop në gjuhën e programimit të synuar (C++, Python…) me dorë. Siç u përmend më parë, konventat e emërtimit të operatorëve, emrat e klasave, etj., mund të ndryshojnë midis gjuhëve të programimit. Hidhini një sy referencës së operatorit HALCON për të marrë nënshkrimet e operatorit HALCON për secilën gjuhë programimi të mbështetur. Për informacion se si të krijoni aplikacione në gjuhën tuaj të synuar, ju lutemi lexoni Udhëzuesin e Programuesit.
- Eksporto kodin HDevelop: Përkthejeni kodin tuaj HDevelop në gjuhën e programimit të synuar automatikisht duke përdorur eksportin e kodit të HDevelop.
- Eksporto Projekti i Bibliotekës: Eksportimi i bibliotekës së HDevelop gjeneron një dosje projekti të gatshme për t'u përdorur, duke përfshirë kodin wrap-per në gjuhën e synuar dhe CMake file për të ndërtuar projektin. Eksportimi i bibliotekës së HDevelop përdor HDevEngine, një bibliotekë që vepron si përkthyes. HDevEngine ju lejon të ekzekutoni drejtpërdrejt programet ose procedurat HDevelop nga një aplikacion i shkruar në C++ ose çdo gjuhë që mund të integrojë objekte .NET. Kështu, nuk keni nevojë të ripërpiloni të gjithë aplikacionin kur bëni ndryshime në kodin HDevelop.
Sigurisht, mund të përdorni HDevEngine pa përdorur funksionin e eksportit të bibliotekës HDevelop. Mënyra e përdorimit të HDevEngine përshkruhet në detaje në Udhëzuesin e Programuesit, Pjesa 6 (Përdorimi i HDevEngine).
HDzhvillimi
Le të hedhim një vështrim të parë në HDevelop. Figura 3.1 tregon ndërfaqen e përdoruesit të HDevelop, pasi një program është ngarkuar dhe është ekzekutuar pjesërisht.
Si parazgjedhje, këto dritare janë të dukshme, të cilat janë gjithashtu thelbësore për zhvillimin me HDevelop:
- Dritarja grafike Shfaq rezultatet (të ndërmjetme), përkatësisht të dhënat ikonike (faqe 10) si imazhe, rajone dhe XLD.
- Dritarja e programit Këtu shkruani kodin e programit, duke përdorur operatorët (faqe 10) për të hyrë në metodat e përpunimit të imazhit të HALCON.
- Dritarja e ndryshueshme Shfaq të gjitha variablat, përkatësisht variablat ikonë dhe variablat e kontrollit. Variablat ikonë përmbajnë të dhëna ikonike (faqe 10) dhe variablat e kontrollit përmbajnë të dhëna kontrolli (faqe 10).
Informacione të hollësishme rreth HDevelop mund të gjenden në Udhëzuesin e Përdoruesit HDevelop. Videot tona tutoriale ofrojnë gjithashtu një hyrje të mirë në HDevelop:
- HDevelop Tutorial 01: GUI dhe navigimi
- HDevelop Tutorial 02: Variablat
- HDevelop Tutorial 03: Vizualizimi

Figura 3.1: Ndërfaqja e përdoruesit të HDevelop.
Example Programi
Tani që jeni njohur me Ndërfaqen e Përdoruesit të HDevelop dhe konceptet bazë të HALCON (faqe 9), le të zhvillojmë një aplikacion C++ duke përdorur Qasjen e Eksportimit të Bibliotekës.
Përveç udhëzimeve të mëposhtme hap pas hapi, ju rekomandojmë që të shikoni videot tona mësimore: Integroni kodin HDevelop në një aplikacion C++ duke përdorur Eksportin e Projektit të Bibliotekës
Integroni kodin HDevelop në një aplikacion C# duke përdorur Eksportin e Projektit të Bibliotekës
Videot demonstrojnë eksportimin e bibliotekës dhe ofrojnë më shumë informacion sfondi rreth temës.
Krijo Prototip në HDevelop
Detyra e shembullit të mëposhtëmampështë të lexoni një imazh dhe të numëroni numrin e rajoneve të lidhura me të.
- Hapni HDevelop dhe futni kodin e mëposhtëm në dritaren e programit:
read_image (Imazhi, 'pcb')
pragu (Imazhi, Rajoni, 0, 122)
lidhje (rajon, rajone të lidhura)
count_obj (Rajonet e Lidhura, Numri) - Testoni programin tuaj duke klikuar Run në shiritin e veglave ose duke shtypur F5.
Për ta integruar me lehtësi këtë kod HDevelop në një aplikacion aktual, ne e kapsulojmë pjesën e vizionit të makinës në një procedurë lokale.
- Theksoni linjat e mëposhtme të kodit: pragu (Imazhi, Rajoni, 0, 122) lidhja (Rajoni, Rajonet e Lidhura) count_obj (Rajonet e Lidhura, Numri)
- Klikoni me të djathtën për të hapur menunë e kontekstit.
- Zgjidhni Krijo procedurë të re.
- Emërtoni atë count_regions.
- Zgjidhni Parametrat dhe ndryshoni skemën e përzgjedhjes në First In, Last Out.
- Konfirmo me OK.
- Ruani programin tuaj HDevelop si hdev_count_regions.hdev
Përgatitni Projektin Visual Studio
Në këtë ishample, do të përdorim Visual Studio 2019. 1
- Krijo një projekt bosh C++ Windows Console dhe emërtoje atë vs_count_regions. Ju lutemi aktivizoni opsionin Vendos zgjidhjen dhe projektin në të njëjtën direktori. 2
- Shto një burim C++ file (Meny Project Shto artikull të ri… C++ File) dhe emërtojeni vs_count_regions.cpp.
- Zgjidhni platformën e zgjidhjes x64 nga menyja rënëse në shiritin e veglave.
- Hapni vetitë e projektit tuaj (Menu Project vs_count_regions Properties…) dhe bëni cilësimet e mëposhtme:
- Zgjidhni C/C++ General dhe shtoni drejtoritë e mëposhtme shtesë:$(HALCONROOT)\include;$(HALCONROOT)\include\halconcpp;
- Zgjidhni Linker General dhe shtoni Drejtorinë e Bibliotekës Shtesë në vijim:$(HALCONROOT)\lib\$(HALCONARCH);
- Zgjidhni hyrjen e lidhjes dhe shtoni Varësitë shtesë të mëposhtme: halconcpp.lib;hdevenginecpp.lib;
Eksporti i Projektit të Bibliotekës
Më pas, ne eksportojmë programin tonë HDevelop hdev_count_regions.hdev në dosjen tonë të projektit Visual Studio.
- Hapni programin HDevelop të krijuar më parë hdev_count_regions.hdev.
- Hapur File Eksporto projektin e bibliotekës…
- Bëni cilësimet e mëposhtme:
- Input file: Programi aktual
- Gjuha e synuar: C++
- Emri i projektit: hdev_count_regions
- Vendndodhja e projektit: Zgjidhni vendndodhjen e projektit tonë Visual Studio vs_count_regions.
- Hapësira e emrave: hdev_count_regions
- Konfirmo me Export.
Tani, dosja juaj e projektit Visual Studio vs_count_regions duhet të përmbajë të paktën të dhënat e mëposhtme:
- vs_count_regions.cpp (Burimi File)
- vs_count_regions.sln (Zgjidhja)
- hdev_count_regions (Dosje nga HDevelop Export)
- cmake
- res_ hdev_ count_ rajone
- hdev _ count_ rajone. hdev
- burimi
- hdev_count_regions.cpp
- hdev_count_regions.h
- CMakeLists.txt
Integroni Projektin e Bibliotekës në Visual Studio
Së fundi, ne duhet të integrojmë programin HDevelop në Projektin tonë Visual Studio.
- Hapni Projektin Visual Studio.
- Hapni Projektin Shto artikullin ekzistues… dhe zgjidhni C++ file hdev_count_regions.cpp dhe kokën file hdev_count_regions.h, krijuar nga Eksporti i Bibliotekës së HDevelop. (Të files janë të vendosura në dosjen hdev_count_regions burim.)
- Futni kodin e mëposhtëm në vs_count_regions.cpp:
#përfshi
#include "HalconCpp.h"
#include "hdev_count_regions/source/hdev_count_regions.h"
int main()
{
HalconCpp::Image HImage(“pcb”);
hdev_count_regions::SetResourcePath("hdev_count_regions/res_hdev_count_regions");
HalconCpp::HTuple Number{};
hdev_count_rajonet::count_regions(Image, &Number);
std::cout << “Numri i Rajoneve: ” << Numri.L() << '\n';
} - Ekzekutoni programin. → Hapet një tastierë që tregon rezultatin 'Numri i rajoneve: 43'.
Si të vazhdohet
Për t'u zhytur më thellë në HALCON, ne ofrojmë dokumentacion dhe mbështetje të mëtejshme.
- HDevelop Shemample Programet
HALCON ofron një grup të gjerë të ishample programe, jo vetëm për HDevelop por edhe për gjuhë të ndryshme programimi. Këto ishamples mund të gjenden në drejtorinë e shënuar me variablin mjedisor % HALCONEXAMPLES% ose, nëse ndryshorja nuk është vendosur, në nëndrejtorinë examples të dosjes në të cilën keni instaluar HALCON.
Për të hapur një HDevelop ishample program, zgjidhni menunë File Shfletoni HDevelop Exampprogramet…. Për fillestarët, ju rekomandojmë të zgjidhni një ishample nga kategoria Zona e aplikimit. - Shërbimet dhe Mbështetja
Jonë webfaqe https://www.mvtec.com/services-support ofron një shumëllojshmëri mbështetjeje, p.shample video mësimore, informacione rreth seminareve dhe trajnimeve, këndi i zhvilluesve që ofron këshilla dhe truket, dhe shumë të tjera. - Dokumentacioni HALCON
Dokumentacioni ofron një mori informacionesh, nga temat fillestare deri te njohuritë e ekspertëve. Për shembullampLe, Udhëzuesit tanë të Zgjidhjeve përshkruajnë metodat e vizionit të makinës dhe si t'i zbatoni ato në HDevelop. Një pikënisje e mirë është Solution Guide I, i cili ju prezanton me metodat kryesore të vizionit të makinës.
Një mbiview të gjithë manualet me një përshkrim të shkurtër mund të gjenden në faqen hyrëse të dokumentacionit.
Dokumentet / Burimet
![]() |
HALCON 21.11 Përparimi [pdfUdhëzuesi i përdoruesit 21.11 Përparim, 21.11, Përparim |





