halcon-логотип

HALCON 21.11 Пешравӣ

ХАЛКОН-21-11-Пешрафти махсулот

Дастрасии зуд ба функсияҳои HALCON, Версияи 21.11.0.0
Ҳамаи ҳуқуқ маҳфуз аст. Ҳеҷ як қисми ин нашрияро бе иҷозати хаттии пешакии ношир дубора тавлид кардан, дар системаи ҷустуҷӯӣ нигоҳ доштан ё дар ҳама гуна шакл ё васила, электронӣ, механикӣ, нусхабардорӣ, сабт ё ба тариқи дигар интиқол додан мумкин нест.

Copyright © 2003-2021 аз ҷониби MVTec Software GmbH, Мюнхен, Олмон
Бо патентҳои зерин ҳифз шудаанд: ИМА 7,239,929, ИМА 7,751,625, ИМА 7,953,290, ИМА 7,953,291, ИМА 8,260,059, ИМА 8,379,014, ИМА 8,830,229. Патентҳои минбаъда интизоранд.
Microsoft, Windows, Windows Server 2008/2012/2012 R2/2016, Windows 7/8/8.1/10, Microsoft .NET, Visual C++ ва Visual Basic тамғаҳои молӣ ё тамғаҳои молии ба қайд гирифташудаи Microsoft Corporation мебошанд.
Linux тамғаи тиҷоратии Linus Torvalds аст.
macOS ва OpenCL тамғаҳои тиҷоратии Apple Inc мебошанд.
NVIDIA, CUDA, cuBLAS ва cuDNN ё тамғаҳои молӣ ё тамғаҳои молии ба қайд гирифташудаи NVIDIA Corporation мебошанд.
OpenGL тамғаи молии Silicon Graphics, Inc аст.
Ҳама тамғаҳои тиҷоратии дар сатҳи миллӣ ва байналмилалӣ эътирофшуда ва номҳои тиҷорӣ дар ин ҷо эътироф карда мешаванд.
Маълумоти бештарро дар бораи HALCON метавонед дар инҷо пайдо кунед: http://www.halcon.com/

Дар бораи ин дастур

Ин дастур шуморо бо HALCON шинос мекунад. Он барои шурӯъкунандагон бе маълумоти пешакии HALCON пешбинӣ шудааст.
Ин дастур инчунин метавонад ҳамчун дастури истинод ба якчанд дастурҳои дигари HALCON истифода шавад, зеро он онҳоро дар доираи мавзӯъҳои зерин ба ҳам мепайвандад:

  1. Насб кардани HALCON (саҳифаи 7)
    Ин боб Менеҷери нармафзори MVTec (SOM) -ро муаррифӣ мекунад.
  2. Architecture HALCON (саҳифаи 9)
    Баъзе заминаҳои назариявӣ барои фаҳмидани он ки HALCON чист ва чӣ гуна кор мекунад.
  3. Чӣ тавр таҳияи барномаҳо (саҳифаи 15)
    Ин боб се равиши асосиро барои таҳия бо HALCON мефаҳмонад ва шуморо тавассути барномаи аввалини барномасозӣ роҳнамоӣ мекунадampле.
  4. Чӣ тавр давом додан (саҳифаи 19)
    Ин боб ба манбаъҳои иловагии иттилоот ишора мекунад.

Насб кардани HALCON

Барои корбарони Linux ва Windows, мо тавсия медиҳем, ки HALCON тавассути менеҷери нармафзори MVTec (SOM) зеркашӣ ва насб кунед. SOM менеҷери насби бастаҳои нармафзор аст. Он дастрасӣ ба каталоги дурдасти маҳсулотро таъмин мекунад ва дар қатори дигар хусусиятҳо зеркашӣ ва насби бастаҳоро дастгирӣ мекунад. Муқаддимаи қадам ба қадам дар бораи чӣ гуна насб кардани HALCON тавассути SOM метавонад дар Дастури насбкунӣ пайдо шавад.

Архитектураи HALCON

Меъмории асосии HALCON дар расми 2.1 тасвир шудааст. Қисми асосӣ китобхонаи коркарди тасвирҳо мебошад, ки аз зиёда аз 2000 оператор иборат аст. Шумо инчунин метавонед операторҳои шахсии худро дар шакли бастаҳои ба истилоҳ экс-танишӣ таҳия кунед (саҳифаи 11). Шумо операторҳоро дар барномаи худ тавассути интерфейсҳои забонӣ (саҳифаи 11) истифода мекунед, ба монанди HALCON/C++ ё HALCON/Python. Инҳо китобхонаҳое мебошанд, ки ба истифодаи мустақими операторҳо дар услуби маъмулии барномасозии забонҳои гуногуни барномасозӣ имкон медиҳанд.

ХАЛКОН-21-11-Пешравй-01

Расми 2.1: Архитектураи асосии HALCON.

Барои дастрасӣ ба дастгоҳҳои ба даст овардани тасвир, HALCON интерфейсҳои ба даст овардани тасвирҳоро таъмин мекунад (саҳифаи 13), ки ба шумо имкон медиҳанд, ки дастгоҳҳои ба даст овардани тасвирҳои гуногунро ба таври умумӣ истифода баред. Китобхонаҳое, ки татбиқи дастгоҳҳои мушаххас доранд, ҳангоми зарурат ба таври динамикӣ бор карда мешаванд. Ба ҳамин тариқ, ба дастгоҳҳои воридотӣ / баромад тавассути интерфейсҳои махсуси I/O дастгоҳ дастрас карда мешаванд (саҳифаи 13).

Операторон

Ҳар вақте ки ягон намуди функсия аз китобхонаи HALCON истифода мешавад, он тавассути оператор анҷом дода мешавад. Аксарияти онҳо якчанд усулҳоро дар бар мегиранд, ки тавассути параметрҳо интихоб карда мешаванд. Рӯйхати пурраи ҳамаи операторҳоро дар Reference Operator HALCON пайдо кардан мумкин аст, ки дар HDevelop, .NET, Python, C++ ва синтаксиси C дастрасанд. Хусусиятҳои муҳими операторҳо инҳоянд:

  • Дар байни операторҳо иерархия вуҷуд надорад. Аз нуқтаи меъмории нармафзор аз view, ҳамаи операторҳо дар як сатҳ мебошанд.
  • Албатта, гурӯҳҳои мантиқии операторҳо вуҷуд доранд. Барои мисолample, инро дар синфҳои пешниҳодшуда барои C++ ва .NET дидан мумкин аст, ки дар он оператороне, ки як навъи маълумотро коркард мекунанд, функсияҳои аъзои синфҳои мувофиқ мебошанд.
  • Тарҳрезии операторҳо қоидаҳои меъмории кушодро риоя мекунад. Аз ин рӯ, шумо метавонед операторони худро эҷод кунед ва ба ин васила HALCON-ро васеъ кунед (ниг. фасли 2.2). Дастури Барномасозони бастаи васеъ маълумоти муфассалро дар бораи васеъ кардани китобхонаи оператор дар бар мегирад.
  • Бисёр операторҳо метавонанд шаффофияти параллелизатсияи автоматиро истифода баранд, ки ин имкон медиҳад, ки роҳи осони суръатбахшии барнома ҳангоми истифодаи тасвирҳои калон дар компютери бисёрпротсессор ё бисёраслӣ. Маълумоти муфассалро дар бораи барномасозии параллелӣ дар ёддошти техникии Барномасозии параллелӣ, инчунин дар дастури барномасоз дастрас кардан мумкин аст.
  • Операторҳо қоидаҳои стандартишудаи фармоиши параметрҳои вуруд ва баромад доранд: рамзи вуруд, нишонаи баромад, назорати вуруд ва назорати баромад (ниг. фасли 2.1.1). На ҳама гурӯҳҳо метавонанд барои оператори додашуда лозим бошанд. Умуман, параметрҳои вуруди операторҳо тағир дода намешаванд, ки дар натиҷа семантикаи равшан ва содда пайдо мешавад. Барои ин тарҳ танҳо чанд истисно вуҷуд дорад, масалан, set_grayval, overpaint_gray ва overpaint_region.

Параметрҳо ва сохторҳои додаҳо
HALCON ду намуди асосии параметрҳо дорад: маълумоти барҷаста ва маълумоти назорат. Тасвирҳо, минтақаҳо ва XLDҳо (Тасвири хатти васеъ) ба маълумоти барҷаста тааллуқ доранд.

Тасвирҳо асосан аз каналҳо иборатанд, яъне матритсаҳое, ки арзишҳои пиксел доранд. Ҳама каналҳои тасвир андозаи якхела доранд. Барои маълумоти муфассал дар бораи пикселҳо ва каналҳо, лутфан боби "Тасвир" -и истинод ба оператори HALCON -ро хонед.
Барои ҳар як тасвир минтақаи ба истилоҳ таваҷҷӯҳ (ROI) муайян мекунад, ки кадом қисми тасвир коркард мешавад. ROI-ро хеле чандир муайян кардан мумкин аст (аз росткунҷаи оддӣ то маҷмӯи пикселҳои пайвастнашуда). Барои тафсилот дар бораи коркарди ROI нигаред ба Дастури ҳалли I, Минтақаи таваҷҷӯҳ дар саҳифаи 27.

Минтақаҳо маҷмӯи пикселҳо мебошанд. Ба пикселҳои минтақа пайваст шудан лозим нест. Ҳатто маҷмӯи худсаронаи пикселҳоро метавон ҳамчун як минтақаи ягона коркард кард. Бо пайвасти оператор минтақаро метавон ба минтақаҳои пайвасти он тақсим кард, яъне ҷузъҳои иборат аз пикселҳои пайваст.

XLDs Ҳама маълумоти контурӣ ва бисёркунҷаро дар бар мегирад. Операторҳои дақиқи субпиксел ба монанди edges_sub_pix контурҳоро ҳамчун маълумоти XLD бармегардонанд. Контур ин пайдарпаии нуқтаҳои идоракунии 2D мебошад, ки бо хатҳо пайваст мешаванд. Одатан, масофаи байни нуқтаҳои назорат тақрибан як пиксел аст. Объектҳои XLD, ба ғайр аз нуқтаҳои идоракунӣ, атрибутҳои ба истилоҳ маҳаллӣ ва глобалиро дар бар мегиранд. Мисли маъмулӣamples барои инҳо, масалан, канори ampлитудаи нуқтаи назорат ё параметрҳои регрессионии сегменти контурӣ. Ба ғайр аз истихроҷи объектҳои XLD, HALCON коркарди минбаъдаро дастгирӣ мекунад. МисолampБарои ин интихоби контурҳо дар асоси диапазони хусусиятҳои додашуда барои сегментатсияи контур ба хатҳо, камонҳо, бисёркунҷаҳо ё параллелҳо мебошанд.

Маълумоти идоракунӣ дастаҳо ва намудҳои асосии додаҳоро ба монанди бутун, воқеӣ, сатр дар бар мегирад.

Дастакҳо истинод ба сохторҳои мураккаби додаҳо мебошанд, масалан, пайвастшавӣ ба интерфейси ба даст овардани тасвир ё модели мувофиқати ба шакл асосёфта. Бо сабабҳои самаранокӣ ва амнияти додаҳо, на тамоми сохтор, балки танҳо даста байни операторҳо мегузарад. Дастҳо арзишҳои ҷодугарӣ мебошанд, ки набояд тағир дода шаванд ва метавонанд аз иҷро то иҷро ва версия ба версия фарқ кунанд. Онҳо ба таври худкор тоза карда мешаванд, вақте ки ҳамаи истинодҳо аз нав навишта мешаванд. Мисолampон ҷое, ки дастаҳо истифода мешаванд, равзанаҳои графикӣ мебошанд, fileс, розеткаҳо, интерфейсҳои ба даст овардани тасвир, OCR, OCV, андозагирӣ ва мувофиқат.

Бастаҳои васеъ

HALCON метавонад аз ҷониби операторони нав дароз карда шавад. Гарчанде ки HALCON аллакай маҷмӯи фаровони операторҳоро барои вазифаҳои гуногун дар бар мегирад, шумо метавонед операторҳои навро татбиқ кунед, масалан, барои дастрасӣ ба сахтафзори махсус ё амалӣ кардани алгоритми алтернативӣ. Барои ин, HALCON интерфейси бастаи васеъро пешниҳод мекунад, ки имкон медиҳад ҳамгироии операторҳои нав (дар C амалӣ карда шудааст) дар шакли бастаҳои васеъшавӣ ном дорад. Интерфейси бастаи васеъшавӣ дорои якчанд реҷаҳои пешакӣ муайяншуда ва макросҳо барои коркарди осони додаҳои тасвирӣ ва объектҳои хотира дар C. Вақте ки оператори нав бомуваффақият ворид карда шуд, он метавонад мисли ҳама гуна оператори дигари HALCON истифода шавад. Дастури Барномасозони бастаи васеъ маълумоти муфассалро дар бораи васеъ кардани китобхонаи оператор дар бар мегирад.

Интерфейсҳои забон

Тавре ки дар расми 2.1 дар саҳифаи 9 нишон дода шудааст, HALCON интерфейсҳои ба истилоҳ забонро таъмин мекунад. Инҳо пайвандҳои забони модарӣ мебошанд, ки ба шумо имкон медиҳанд, ки ба операторҳо занг занед ва намудҳои додаҳои HALCON-ро мустақиман аз дохили барномаи худ, хоҳ Python, C, C++ ё .NET истифода баред.
Барои оғоз кардани рушд, мо тавсия медиҳем, ки аввал яке аз пештараҳои ба иҷро омодашударо санҷедampбарномаҳо. Дар ин ҷо шумо метавонед бубинед, ки лоиҳа чӣ гуна бояд таъсис дода шавад ва чӣ гуна операторҳо ва намудҳо истифода мешаванд.
Барои ҳар як интерфейси забон, номҳои намудҳо, синфҳо, конвенсияҳои номгузории операторҳо ва ғайра метавонанд бо қоидаҳои маъмулие, ки барои забони интихобшуда мувофиқанд, фарқ кунанд. Имзои оператор барои забонҳои барномасозии дастгирӣ дар Reference Operator HALCON ҳуҷҷатгузорӣ карда мешавад.

HALCON/Python
Интерфейси Python бо соддагии худ ва қобилияти прототипсозии зуд фарқ мекунад. Операторҳои HALCON пас аз ворид кардани модули HALCON/Python мустақиман ҳамчун функсияҳои мустақил даъват карда мешаванд. Инчунин дар хотир доред, ки параметрҳои оператор дар HALCON/Python ба параметрҳои функсия (воридҳо) ва арзишҳои баргардонидан (баромад) тақсим мешаванд.

Example
Рамзи зерин тасвирро мехонад ва шумораи минтақаҳои пайвастшударо (саҳифаи 10) дар он ҳисоб мекунад.
img = ha.read_image('pcb')
минтақа = ҳа.ҳадди (img, 0, 122)
num_regions = ha.count_obj (ha.connection(минтақа))
чоп кунед(f'Теъдоди минтақаҳо: {num_regions}')

Барои шартҳои пешакӣ ва гузариши муфассал, лутфан ба Дастури барномасоз, Қисми 4, A аввал нигаред.ampле.

HALCON/C
Интерфейси C соддатарин интерфейсест, ки аз ҷониби HALCON дастгирӣ мешавад. Ҳар як оператор бо як ё ду функсияи глобалӣ муаррифӣ мешавад, ки дар он номи оператор ва пайдарпаии параметрҳо бо забони HDevelop якхелаанд.

Example
Рамзи зерин тасвирро мехонад ва шумораи минтақаҳои пайвастшударо (саҳифаи 10) дар он ҳисоб мекунад.
Hobject img;
read_image(&img, "pcb");
Минтақаи хоб;
ҳадди (img, ®ion, 0, 122);
Минтақаҳои пайвастшуда;
пайвастшавӣ (минтақа, &минтақаҳои пайвастшуда);
Ҳлонг рақами_минтақаҳо = 0;
count_obj(минтақаҳои_пайвастшуда, &шумораи_минтақаҳо);
printf("Миқдори минтақаҳо: %" PRIdPTR "\n", рақами_минтақаҳо);

Барои шартҳои пешакӣ ва гузариши муфассал, лутфан ба Дастури барномасоз, Қисми 5, A аввал нигаред.ampле.

HALCON/C++
Интерфейси C++ нисбат ба интерфейси C хеле мураккабтар аст. Ана, адванtages аз C++ ва барномасозии ба объект нигаронидашуда истифода мешаванд, яъне табдили автоматии тип, сохтан ва нобудсозӣ ё гурӯҳбандии функсияҳо бо додаҳояшон ба синфҳо. Мисли интерфейси C, функсияҳои глобалӣ барои ҳар як оператори HALCON барои услуби мурофиавии барномасозӣ пешбинӣ шудаанд.

Example
Рамзи зерин тасвирро мехонад ва шумораи минтақаҳои пайвастшударо (саҳифаи 10) дар он ҳисоб мекунад.
HImage img{“pcb”};
Минтақаи HRegion = img.Hreshold(0, 122);
Hlong numRegions = region.Connection().CountObj();
std::cout << “Миқдори минтақаҳо: ” << numRegions << '\n';

Барои шартҳои пешакӣ ва гузариши муфассал, лутфан ба Дастури барномасоз, Қисми 2, A аввал нигаред.ampле.

HALCON/.NET
C# ва Visual Basic .NET HALCON-ро тавассути интерфейси .NET истифода мебаранд.
Ба монанди C++, ду услуби барномасозӣ пешниҳод карда мешаванд: мурофиавӣ ва ба объект нигаронидашуда. Барои услуби мурофиавӣ, синфи HOperatorSet ҳамаи операторҳои HALCON-ро таъмин мекунад, ки дар он HObject барои коркарди додаҳои тасвирӣ ва HTuple барои додаҳои идоракунӣ истифода мешавад. Барои услуби ба объект нигаронидашуда синфҳо ба монанди HDataCode2d, HMeasure ё HShapeModel барои функсияҳои марказӣ пешбинӣ шудаанд. Илова бар ин, дарсҳо барои маълумоти барҷаста, масалан, HImage ё HRegion дастрасанд.

Example
Рамзи зерин тасвирро мехонад ва шумораи минтақаҳои пайвастшударо (саҳифаи 10) дар он ҳисоб мекунад.
HImage img = HImage нав (“pcb”);
Минтақаи HRegion = img.Hreshold(0d, 122d);
int numRegions = region.Connection().CountObj();
Console.WriteLine(“Миқдори минтақаҳо: ” + numRegions);

Барои шартҳои пешакӣ ва гузариши муфассал, лутфан ба Дастури барномасоз, Қисми 3, A аввал нигаред.ampле.

Интерфейсҳои ба даст овардани тасвир

Интерфейсҳои ба даст овардани тасвири HALCON пули байни нармафзори аз ҷониби истеҳсолкунандаи дастгоҳи ба даст овардани тасвир ва HALCON мебошад. Онҳо интерфейси умумӣ ва умумиро ташкил медиҳанд, ки танҳо маҷмӯи хурди операторҳоро талаб мекунанд. Лутфан ба дастури ҳалли II-A муроҷиат кунед, то маълумоти муфассал дар бораи ин мавзӯъ.
Дар айни замон, HALCON интерфейсҳоро барои зиёда аз 50 грабберҳои чаҳорчӯба ва садҳо камераҳои саноатӣ дар шакли китобхонаҳои динамикӣ боркунанда таъмин мекунад (Windows: DLLs; Системаҳои ба Unix монанд: китобхонаҳои муштарак). Номҳои китобхона бо префикси hAcq оғоз мешаванд; китобхонаҳое, ки бо суффикси xl тамом мешаванд, аз ҷониби HALCON XL истифода мешаванд.
Интерфейсҳои аз ҳама васеъ истифодашаванда дар асоси стандартҳои саноатӣ аллакай дар якҷоягӣ бо китобхонаҳои HALCON насб карда шудаанд. Интерфейсҳои иловагӣ, инчунин версияҳои охирини интерфейсҳои аллакай дохилшударо дар зери зер зеркашӣ кардан мумкин аст https://www.mvtec.com/products/interfaces. Интерфейси ба даст овардани тасвири HALCON метавонад назар ба худи китобхонаи HALCON зуд-зуд тағйир ёбад. Яке аз сабабҳои ин дар он аст, ки MVTec пайваста интерфейсҳои навро таҳия мекунад; илова бар ин, агар нармафзоре, ки аз ҷониби истеҳсолкунандагони дастгоҳҳои ба даст овардани тасвир пешниҳод шудааст, тағир ёбад, масалан, агар хусусиятҳои нав ворид карда шаванд, интерфейсҳои мувофиқи HALCON мутобиқ карда мешаванд. Лутфан инчунин ба истинод ба интерфейси ба даст овардани тасвирҳо барои рӯйхати пурраи интерфейсҳои ба даст овардани тасвир муроҷиат кунед.
Пас аз бомуваффақият насб кардани дастгоҳи ба даст овардани тасвири худ, танҳо барои дастрасӣ ба он аз HALCON ба шумо лозим аст, ки занг задан ба оператори open_framegrabber бо нишон додани номи интерфейси ба даст овардани тасвир ва баъзе маълумоти иловагӣ, масалан, дар бораи камераи пайвастшуда. Сипас, тасвирҳоро тавассути занг задан ба оператори grab_image (ё grab_image_async) гирифтан мумкин аст.

Интерфейсҳои I/O

HALCON интерфейсҳоро барои якчанд дастгоҳҳои I/O таъмин мекунад, то ба даст овардани маълумот имкон диҳад. Ин интерфейсҳо ҳамчун китобхонаҳои динамикӣ боршаванда дастрасанд (Windows: DLLs; системаҳои ба Unix монанд: китобхонаҳои муштарак). Номҳои китобхона бо префикси hio оғоз мешаванд; китобхонаҳое, ки бо суффикси xl тамом мешаванд, аз ҷониби HALCON XL истифода мешаванд.
Интерфейсҳои дастгоҳи HALCON I/O бо истифода аз маҷмӯи хурди операторҳо дастрасии ягонаро ба дастгоҳҳои гуногуни вуруд/чор таъмин мекунанд. Пас аз насб кардани дастгоҳи I/O-и худ, пайвастшавӣ бо истифода аз оператори open_io_device муқаррар карда мешавад, ки номи интерфейси дастгоҳи I/O ва, ихтиёрӣ, баъзе параметрҳои мушаххаси дастгоҳро муайян мекунад. Пас аз барқарор кардани пайвастшавӣ, канали интиқолро тавассути занг задани open_io_channel кушодан мумкин аст. Барои хондан ва навиштани арзишҳо дар ин канал, мутаносибан операторҳои read_io_channel ва write_io_channel -ро истифода баред.
Лутфан таваҷҷӯҳ намоед, ки интерфейсҳои дастгоҳи HALCON I/O метавонанд назар ба худи китобхонаи HALCON зуд-зуд тағйир ёбанд. Шумо метавонед маълумоти охиринро дар якҷоягӣ бо интерфейсҳои зеркашишаванда (аз ҷумла ҳуҷҷатҳо) дар зер пайдо кунед https://www.mvtec.com/products/interfaces. Лутфан, инчунин ба истинод ба интерфейси дастгоҳи вуруд/чорӣ барои рӯйхати пурраи интерфейсҳои дастгоҳи вуруд/чор муроҷиат кунед.

Чӣ тавр таҳияи барномаҳо

Мо тавсия медиҳем, ки шумо бо прототипсозии босуръат дар HDevelop, муҳити интерактивии таҳияи китобхонаи рӯъёи мошини HALCON оғоз кунед. Шумо метавонед HDevelop-ро барои пайдо кардани операторҳо ва параметрҳои оптималӣ барои ҳалли вазифаи таҳлили тасвири худ истифода баред. Пас аз таҳияи барномаи HDevelop мувофиқи талаботи додашуда, он бояд ба муҳити ниҳоии худ тарҷума карда шавад. Барои ин, шумо метавонед аз се равиши зерин вобаста ба афзалиятҳои худ интихоб кунед:

  • Оғоз аз сифр: Навиштани барномаи шумо аз сифр маънои ба таври дастӣ тарҷума кардани рамзи HDevelop ба забони барномасозии ҳадаф (C++, Python…) мебошад. Тавре ки қаблан зикр гардид, конвенсияҳои номгузории операторҳо, номҳои синфҳо ва ғайра байни забонҳои барномасозӣ метавонанд фарқ кунанд. Барои гирифтани имзоҳои оператори HALCON барои ҳар як забони барномасозии дастгирӣ ба истиноди оператори HALCON нигаред. Барои маълумот дар бораи чӣ гуна сохтани барномаҳо бо забони мавриди ҳадафи худ, лутфан дастури барномасозро хонед.
  • Рамзи HDevelop содирот: Бо истифода аз содироти коди HDevelop рамзи HDevelop-и худро ба забони барномасозии мақсаднок ба таври худкор тарҷума кунед.
  • Лоиҳаи содироти китобхона: Содироти китобхонаи HDevelop папкаи лоиҳаи барои истифода омодаро тавлид мекунад, аз ҷумла рамзи печонидани ҳар як забони мавриди ҳадаф ва CMake file барои сохтани лоиха. Содироти китобхонаи HDevelop аз HDevEngine, китобхонае, ки ҳамчун тарҷумон амал мекунад, истифода мебарад. HDevEngine ба шумо имкон медиҳад, ки барномаҳо ё расмиёти HDevelopро аз замимае, ки дар C++ навишта шудааст ё ҳар забоне, ки объектҳои .NET-ро муттаҳид карда метавонад, мустақиман иҷро кунед. Ҳамин тариқ, ҳангоми ворид кардани тағирот ба коди HDevelop ба шумо лозим нест, ки тамоми барномаро дубора тартиб диҳед.
    Албатта, шумо метавонед HDevEngine-ро бидуни истифодаи функсияи содироти китобхонаи HDevelop истифода баред. Чӣ тавр истифода бурдани HDevEngine дар дастури барномасоз, Қисми 6 (Истифодаи HDevEngine) муфассал тавсиф шудааст.
HD инкишоф

Биёед аввал ба HDevelop назар андозем. Дар расми 3.1 интерфейси корбарии HDevelop пас аз бор карда шудани барнома ва қисман иҷрошуда нишон дода шудааст.
Бо нобаёнӣ, ин тирезаҳо намоёнанд, ки барои таҳияи HDevelop низ муҳиманд:

  1. Равзанаи графикӣ Натоиҷи (мобайнӣ)-ро нишон медиҳад, яъне маълумоти барҷаста (саҳифаи 10) ба монанди тасвирҳо, минтақаҳо ва XLD.
  2. Равзанаи барнома Дар ин ҷо шумо рамзи барномаи худро бо истифода аз операторҳо ворид мекунед (саҳифаи 10) барои дастрасӣ ба усулҳои коркарди тасвирҳои HALCON.
  3. Равзанаи тағирёбанда ҳама тағирёбандаҳоро нишон медиҳад, яъне тағирёбандаҳои тасвирӣ ва тағирёбандаҳои назорат. Тағйирёбандаҳои рамзӣ дорои маълумоти рамзӣ (саҳифаи 10) ва тағирёбандаҳои идоракунӣ дорои маълумоти идоракунӣ (саҳифаи 10).

Маълумоти муфассалро дар бораи HDevelop дар дастури корбари HDevelop пайдо кардан мумкин аст. Видеоҳои дарси мо инчунин муқаддимаи хубро бо HDevelop пешниҳод мекунанд:

  • HDevelop Tutorial 01: GUI ва Навигатсия
  • HDevelop дарсӣ 02: Тағирёбандаҳо
  • HDevelop дарсӣ 03: Визуалӣ

ХАЛКОН-21-11-Пешравй-02

Расми 3.1: Интерфейси корбари HDevelop.

Example Барнома

Акнун, ки шумо бо интерфейси корбарии HDevelop ва мафҳумҳои асосии HALCON (саҳифаи 9) шинос шудаед, биёед барномаи C++-ро бо истифода аз равиши содироти китобхона таҳия кунем.
Илова ба дастурҳои зина ба зина, мо тавсия медиҳем, ки видеоҳои дарсии моро тамошо кунед: Бо истифода аз Экспорти Лоиҳаи Китобхона коди HDevelop-ро ба барномаи C++ ворид кунед.
Рамзи HDevelop-ро ба барномаи C# бо истифода аз Экспорти Лоиҳаи Китобхона ворид кунед
Видеоҳо содироти китобхонаро нишон медиҳанд ва маълумоти бештарро дар бораи мавзӯъ пешниҳод мекунанд.

Дар HDevelop прототип эҷод кунед
Вазифаи собик зеринample ин аст, ки тасвирро хонед ва шумораи минтақаҳои ба он пайвастшударо ҳисоб кунед.

  1. HDevelop -ро кушоед ва рамзи зеринро ба равзанаи барнома ворид кунед:
    read_image (Тасвир, 'pcb')
    ҳадди (тасвир, минтақа, 0, 122)
    пайвастшавӣ (минтақа, минтақаҳои пайвастшуда)
    count_obj (Минтақаҳои пайвастшуда, рақам)
  2. Барномаи худро бо пахш кардани Иҷро дар панели асбобҳо ё пахшкунии F5 санҷед.

Барои ба осонӣ ворид кардани ин рамзи HDevelop ба як барномаи воқеӣ, мо қисми биниши мошинро дар тартиби маҳаллӣ фаро мегирем.

  1. Сатрҳои коди зеринро қайд кунед: ҳадди (тасвир, минтақа, 0, 122) пайвастшавӣ (минтақа, минтақаҳои пайвастшуда) count_obj (ConnectedRegions, рақам)
  2. Барои кушодани менюи контекстӣ тугмаи ростро клик кунед.
  3. Эҷоди тартиби навро интихоб кунед.
  4. Онро count_regions номгузорӣ кунед.
  5. Параметрҳоро интихоб кунед ва Нақшаи интихобро ба Аввал даромад, охирин берун иваз кунед.
  6. Бо OK тасдиқ кунед.
  7. Барномаи HDevelop-и худро ҳамчун hdev_count_regions.hdev захира кунед

Лоиҳаи Visual Studio омода кунед
Дар ин собикample, мо Visual Studio 2019-ро истифода хоҳем бурд. 1

  1. Лоиҳаи холии Windows Console C++ созед ва онро vs_count_regions номгузорӣ кунед. Лутфан опсияи Ҷойгир кардани ҳалли ва лоиҳаро дар як директория фаъол созед. 2
  2. Манбаи C++ илова кунед file (Лоиҳаи меню Илова кардани ашёи нав… C++ File) ва онро vs_count_regions.cpp номгузорӣ кунед.
  3. Аз менюи афтанда дар панели асбобҳо платформаи ҳалли x64 -ро интихоб кунед.
  4. Хусусиятҳои лоиҳаи худро кушоед (Менюи лоиҳа vs_count_regions Properties…) ва танзимоти зеринро иҷро кунед:
    • C/C++ General-ро интихоб кунед ва директорияҳои иловагии дохилшударо илова кунед:$(HALCONROOT)\include;$(HALCONROOT)\include\halconcpp;
    • Linker General-ро интихоб кунед ва Феҳристи иловагии китобхонаро илова кунед:$(HALCONROOT)\lib\$(HALCONARCH);
    • Вуруди пайвандакро интихоб кунед ва вобастагии иловагии зеринро илова кунед: halconcpp.lib;hdevenginecpp.lib;

Лоиҳаи содироти китобхона
Баъдан, мо барномаи HDevelop-и hdev_count_regions.hdev-ро ба ҷузвдони лоиҳаи Visual Studio-и худ содир мекунем.

  1. Барномаи HDevelop-и қаблан сохташуда hdev_count_regions.hdev -ро кушоед.
  2. Кушода File  Лоиҳаи содироти китобхона…
  3. Танзимоти зеринро иҷро кунед:
    • Вуруд file: Барномаи ҷорӣ
    • Забони мақсаднок: C++
    • Номи лоиҳа: hdev_count_regions
    • Ҷойгиршавии лоиҳа: Ҷойгиршавии лоиҳаи Visual Studio-и моро vs_count_regions интихоб кунед.
    • Фазои ном: hdev_count_regions
  4. Бо содирот тасдиқ кунед.

Ҳоло, ҷузвдони лоиҳаи Visual Studio-и шумо vs_count_regions бояд ҳадди аққал маълумоти зеринро дар бар гирад:

  • vs_count_regions.cpp (Манбаъ File)
  • vs_count_regions.sln (Ҳалли)
  • hdev_count_regions (Папка аз Export HDevelop)
    • cmake
    • res_ hdev_ ҳисоб_ минтақаҳо
    • hdev _ ҳисоб_ минтақаҳо. hdev
  •  сарчашма
    • hdev_count_regions.cpp
    • hdev_count_regions.h
    • CMakeLists.txt

Интегратсия кардани лоиҳаи китобхона ба Visual Studio
Ниҳоят, мо бояд барномаи HDevelop-ро ба лоиҳаи Visual Studio мо ворид кунем.

  1. Лоиҳаи Visual Studio -ро кушоед.
  2. Лоиҳаро кушоед Иловаи ашёи мавҷуда… ва C++ -ро интихоб кунед file hdev_count_regions.cpp ва сарлавҳа file hdev_count_regions.h, ки аз ҷониби Export Library HDevelop сохта шудааст. (Дар files дар ҷузвдони hdev_count_regions манбаи ҷойгир аст.)
  3. Рамзи зеринро ба vs_count_regions.cpp ворид кунед:
    #дарбар мегирад
    #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::HTРақами дугона{};
    hdev_count_regions::count_regions(Тасвир, & Рақам);
    std::cout << “Шумораи минтақаҳо: ” << Number.L() << '\n';
    }
  4. Барномаро иҷро кунед. → Консол кушода мешавад, ки натиҷаи "Шумораи минтақаҳо: 43" -ро нишон медиҳад.

Чӣ тавр идома додан

Барои амиқтар ворид шудан ба HALCON, мо ҳуҷҷатҳо ва дастгирии минбаъдаро пешниҳод мекунем.

  • HDevelop ExampБарномаҳо
    HALCON маҷмӯи васеи собиқро пешниҳод мекунадample programs, на танҳо барои HDevelop, балки барои забонҳои гуногуни барномасозӣ. Ин собикamples-ро дар феҳрист пайдо кардан мумкин аст, ки бо тағирёбандаи муҳити зист % HALCONEX ишора шудаастAMPLES% ё, агар тағирёбанда муқаррар карда нашуда бошад, дар зеркаталоги собиқampҷузвдонеро, ки шумо дар он HALCON насб кардаед.
    Барои кушодани HDevelop собиқample барнома, менюро интихоб кунед File  Мурури HDevelop ExampБарномаҳо…. Барои шурӯъкунандагон тавсия медиҳем, ки собиқро интихоб кунедample аз категорияи минтақаи Ариза.
  • Хидматҳо ва дастгирӣ
    мо webсайт https://www.mvtec.com/services-support дастгирии гуногунро пешниҳод мекунад, масаланampвидеоҳои дарсӣ, маълумот дар бораи семинарҳо ва тренингҳо, гӯшаи таҳиягарон барои маслиҳатҳо ва ҳилаҳо ва ғайра.
  • Ҳуҷҷатҳои HALCON
    Ҳуҷҷатҳо аз мавзӯъҳои ибтидоӣ то дониши коршиносон маълумоти фаровон пешкаш мекунанд. Барои мисолample, Дастурҳои ҳалли мо усулҳои биниши мошин ва чӣ гуна татбиқ кардани онҳоро дар HDevelop тавсиф мекунанд. Нуқтаи хуби ибтидоӣ дастури Solution I мебошад, ки шуморо бо усулҳои асосии биниши мошин шинос мекунад.
    Як барview Ҳамаи дастурҳоро бо тавсифи мухтасар дар саҳифаи вуруди ҳуҷҷатҳо пайдо кардан мумкин аст.

Ҳуҷҷатҳо / Сарчашмаҳо

HALCON 21.11 Пешравӣ [pdf] Дастури корбар
21.11 «Пешрафт», 21.11 — «Пешрафт».

Иқтибосҳо

Назари худро гузоред

Суроғаи почтаи электронии шумо нашр намешавад. Майдонҳои зарурӣ қайд карда шудаанд *