HALCON 21.11 Явц

HALCON-ийн 21.11.0.0 хувилбарын функцэд хурдан нэвтрэх
Бүх эрх хуулиар хамгаалагдсан. Энэхүү нийтлэлийн аль ч хэсгийг хэвлэгчээс урьдчилан бичгээр зөвшөөрөл авалгүйгээр хуулбарлах, хайлтын системд хадгалах, цахим, механик, хуулбарлах, бичлэг хийх болон бусад хэлбэрээр ямар ч хэлбэрээр дамжуулахыг хориглоно.
Зохиогчийн эрх © 2003-2021 MVTec Software GmbH, Мюнхен, Герман
Дараах патентаар хамгаалагдсан: 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. Цаашдын патентууд хүлээгдэж байна.
Microsoft, Windows, Windows Server 2008/2012/2012 R2/2016, Windows 7/8/8.1/10, Microsoft .NET, Visual C++ болон Visual Basic нь Microsoft корпорацийн худалдааны тэмдэг эсвэл бүртгэгдсэн худалдааны тэмдэг юм.
Линукс бол Linus Torvalds-ын худалдааны тэмдэг юм.
macOS болон OpenCL нь Apple Inc-ийн худалдааны тэмдэг юм.
NVIDIA, CUDA, cuBLAS болон cuDNN нь NVIDIA корпорацийн худалдааны тэмдэг эсвэл бүртгэгдсэн худалдааны тэмдэг юм.
OpenGL нь Silicon Graphics, Inc-ийн худалдааны тэмдэг юм.
Үндэсний болон олон улсад хүлээн зөвшөөрөгдсөн бусад бүх барааны тэмдэг, худалдааны нэрийг үүгээр хүлээн зөвшөөрнө.
HALCON-ийн талаарх дэлгэрэнгүй мэдээллийг дараах хаягаас авах боломжтой. http://www.halcon.com/
Энэхүү гарын авлагын тухай
Энэхүү гарын авлага нь танд HALCON-ийг танилцуулж байна. Энэ нь HALCON-ийн талаар урьдчилан мэдлэггүй эхлэгчдэд зориулагдсан.
Энэхүү гарын авлагыг дараах сэдвүүдийн дагуу холбосон тул бусад хэд хэдэн HALCON гарын авлагуудын лавлах гарын авлага болгон ашиглаж болно.
- HALCON суулгаж байна (хуудас 7)
Энэ бүлэгт MVTec програм хангамжийн менежерийг (SOM) танилцуулна. - HALCON Architecture (хуудас 9)
HALCON гэж юу болох, хэрхэн ажилладагийг ойлгохын тулд зарим онолын мэдээлэл хэрэгтэй. - Хэрэглээг хэрхэн хөгжүүлэх вэ (хуудас 15)
Энэ бүлэгт HALCON программыг хөгжүүлэх гурван үндсэн аргыг тайлбарлаж, програмчлалын анхны хувилбараар дамжуулан таныг удирдан чиглүүлэх болноample. - Хэрхэн үргэлжлүүлэх вэ (хуудас 19)
Энэ бүлэгт нэмэлт мэдээллийн эх сурвалжийг хэлнэ.
HALCON суулгаж байна
Линукс болон Windows хэрэглэгчдийн хувьд бид MVTec Програм хангамжийн Менежер (SOM) -аар дамжуулан HALCON-ийг татаж суулгахыг зөвлөж байна. SOM нь програм хангамжийн багцуудын суулгацын менежер юм. Энэ нь бүтээгдэхүүний алсын каталогт хандах боломжийг олгодог бөгөөд бусад функцүүдийн дунд багцуудыг татаж авах, суулгахад дэмжлэг үзүүлдэг. SOM-ээр дамжуулан HALCON-ийг хэрхэн суулгах талаар алхам алхмаар танилцуулгыг Суулгах гарын авлагаас олж болно.
HALCON Архитектур
HALCON-ийн үндсэн архитектурыг 2.1-р зурагт үзүүлэв. Гол хэсэг нь 2000 гаруй операторуудаас бүрдсэн зураг боловсруулах номын сан юм. Та мөн өөрийн операторуудыг ex-tension багц гэж нэрлэгдэх хэлбэрээр хөгжүүлж болно (хуудас 11). Та өөрийн программ дахь операторуудыг HALCON/C++ эсвэл HALCON/Python зэрэг хэлний интерфейсээр (хуудас 11) ашигладаг. Эдгээр нь янз бүрийн програмчлалын хэлний ердийн програмчлалын хэв маягаар операторуудыг шууд ашиглах боломжийг олгодог сангууд юм.

Зураг 2.1: HALCON-ийн үндсэн архитектур.
Зураг авах төхөөрөмжүүдэд хандахын тулд HALCON нь зураг авах интерфэйсүүдийг (хуудас 13) өгдөг бөгөөд энэ нь танд огт өөр зураг авах төхөөрөмжийг нийтлэг байдлаар ашиглах боломжийг олгодог. Төхөөрөмжийн тусгай программуудыг агуулсан номын сангууд шаардлагатай үед динамикаар ачаалагддаг. Үүнтэй адилаар I/O төхөөрөмжүүдэд тухайн төхөөрөмжид зориулсан I/O интерфэйсээр дамжуулан ханддаг (хуудас 13).
Операторууд
HALCON номын сангаас ямар ч төрлийн функцийг ашиглах үед үүнийг оператороор дамжуулан хийдэг. Тэдгээрийн ихэнх нь параметрээр сонгогдсон олон аргуудаас бүрддэг. Бүх операторуудын бүрэн жагсаалтыг HDevelop, .NET, Python, C++, C синтакс дээр ашиглах боломжтой HALCON Operator Reference-ээс олж болно. Операторуудын чухал шинж чанарууд нь:
- Операторуудын дунд шатлал байхгүй. Програм хангамжийн архитектурын цэгээс view, бүх операторууд ижил түвшинд байна.
- Мэдээжийн хэрэг, операторуудын логик бүлгүүд байдаг. Жишээ ньample, үүнийг C++ болон .NET-д санал болгож буй ангиудаас харж болно, үүнд ижил төрлийн өгөгдлийн төрлийг боловсруулдаг операторууд нь харгалзах ангийн гишүүн функцууд байдаг.
- Операторуудын дизайн нь нээлттэй архитектурын дүрмийг дагаж мөрддөг. Тиймээс та өөрийн операторуудыг үүсгэж, улмаар HALCON-ийг өргөтгөх боломжтой (2.2-р хэсгийг үзнэ үү). Өргөтгөлийн багцын програмистын гарын авлага нь операторын номын сангийн өргөтгөлийн талаарх дэлгэрэнгүй мэдээллийг агуулдаг.
- Олон операторууд автомат параллелчлалыг ил тод ашиглах боломжтой бөгөөд энэ нь олон процессор эсвэл олон цөмт компьютер дээр том зураг ашиглах үед програмыг хурдасгах хялбар арга юм. Зэрэгцээ програмчлалын талаарх дэлгэрэнгүй мэдээллийг Зэрэгцээ програмчлалын техникийн тэмдэглэл, мөн Программистын гарын авлагаас авах боломжтой.
- Операторууд оролт, гаралтын параметрүүдийг захиалах стандарт дүрмүүдтэй байдаг: оролтын дүрс, гаралтын дүрс, оролтын удирдлага, гаралтын хяналт (2.1.1 хэсгийг үзнэ үү). Тухайн операторын хувьд бүх бүлгүүд шаардлагагүй байж болно. Ерөнхийдөө операторуудын оролтын параметрүүд өөрчлөгдөөгүй бөгөөд энэ нь ойлгомжтой бөгөөд энгийн семантикийг бий болгодог. Энэ загварт цөөн хэдэн үл хамаарах зүйл бий, жишээ нь set_grayval, overpaint_gray, overpaint_region.
Параметр ба өгөгдлийн бүтэц
HALCON нь үндсэн өгөгдөл болон хяналтын өгөгдөл гэсэн хоёр төрлийн параметртэй. Зураг, бүс нутаг, XLD (eExtented Line Description) нь бэлгэдлийн өгөгдөлд хамаарна.
Зураг голчлон сувгуудаас бүрддэг, өөрөөр хэлбэл, пикселийн утгыг агуулсан матрицууд. Зургийн бүх суваг ижил хэмжээтэй байна. Пиксел болон сувгийн талаарх дэлгэрэнгүй мэдээллийг HALCON операторын лавлагааны "Зураг" бүлгээс уншина уу.
Зураг бүрийн хувьд сонирхлын бүс (ROI) нь зургийн аль хэсгийг боловсруулж байгааг зааж өгдөг. ROI-ийг маш уян хатан байдлаар тодорхойлж болно (энгийн тэгш өнцөгтөөс эхлээд холболтгүй пикселийн багц хүртэл). ROI зохицуулалтын талаарх дэлгэрэнгүй мэдээллийг 27-р хуудасны Шийдлийн гарын авлага, Сонирхлын бүсээс үзнэ үү.
Бүс нутаг пикселийн багц юм. Бүс нутгийн пикселүүдийг холбох шаардлагагүй. Бүр дурын пикселийн цуглуулгыг нэг бүс болгон авч үзэж болно. Операторын холболттой бол тухайн бүс нутгийг холбогдсон мужуудад, өөрөөр хэлбэл холбогдсон пикселүүдээс бүрдэх бүрэлдэхүүн хэсгүүдэд хувааж болно.
XLD контур болон олон өнцөгт дээр суурилсан бүх өгөгдлийг агуулна. edges_sub_pix зэрэг дэд пикселийн нарийвчлалтай операторууд контурыг XLD өгөгдөл болгон буцаадаг. Контур гэдэг нь шугамаар холбогдсон 2 хэмжээст хяналтын цэгүүдийн дараалал юм. Ерөнхийдөө хяналтын цэгүүдийн хоорондох зай нь ойролцоогоор нэг пиксел юм. XLD объектууд нь хяналтын цэгүүдээс гадна орон нутгийн болон глобал шинж чанаруудыг агуулдаг. Ердийн жишээampЭдгээрийн хувьд les нь, жишээлбэл, ирмэг юм ampхяналтын цэгийн хэмжээ эсвэл контурын сегментийн регрессийн параметрүүд. XLD объектуудыг задлахаас гадна HALCON нь цаашдын боловсруулалтыг дэмждэг. Жишээ ньampҮүнд контурыг шугам, нум, олон өнцөгт эсвэл параллель болгон хуваах өгөгдсөн функцийн мужид тулгуурлан контурыг сонгох явдал юм.
Хяналтын өгөгдөлд бариулууд болон бүхэл тоо, бодит, мөр зэрэг үндсэн өгөгдлийн төрлүүд орно.
Бариул Эдгээр нь өгөгдлийн нарийн төвөгтэй бүтцүүдийн лавлагаа, тухайлбал, зураг авах интерфейсийн холболт эсвэл хэлбэрт суурилсан тааруулах загвар юм. Үр ашиг, өгөгдлийн аюулгүй байдлын үүднээс бүх бүтэц биш харин зөвхөн бариулыг операторуудын хооронд дамжуулдаг. Бариулууд нь өөрчлөх ёсгүй шидэт утгууд бөгөөд гүйцэтгэлээс гүйцэтгэл, хувилбараас өөр өөр байж болно. Бүх лавлагааг дарж бичсэний дараа тэдгээр нь автоматаар арилдаг. Жишээ ньampБариулыг ашигладаг газрууд нь график цонхнууд, files, залгуурууд, зураг авах интерфейс, OCR, OCV, хэмжих, тааруулах.
Өргөтгөлийн багцууд
HALCON-ийг шинэ операторууд сунгаж болно. Хэдийгээр HALCON нь янз бүрийн даалгаварт зориулсан олон тооны операторуудыг агуулж байгаа ч та тусгай техник хангамжид хандах эсвэл өөр алгоритм хэрэгжүүлэх гэх мэт шинэ операторуудыг хэрэгжүүлэхийг хүсч болно. Үүнийг хийхийн тулд HALCON нь өргөтгөлийн багц гэж нэрлэгддэг шинэ операторуудыг (С-д хэрэгжсэн) нэгтгэх боломжийг олгодог Өргөтгөлийн багц интерфейсээр хангадаг. Өргөтгөлийн багц интерфэйс нь C хэл дээрх зургийн өгөгдөл болон санах ойн объектуудтай ажиллахад хялбар хэд хэдэн урьдчилан тодорхойлсон горимууд болон макронуудыг агуулдаг. Шинэ операторыг амжилттай нэгтгэсний дараа үүнийг бусад HALCON операторын нэгэн адил ашиглаж болно. Өргөтгөлийн багцын програмистын гарын авлага нь операторын номын сангийн өргөтгөлийн талаарх дэлгэрэнгүй мэдээллийг агуулдаг.
Хэлний интерфейс
2.1-р хуудасны 9-р зурагт үзүүлснээр HALCON хэлний интерфейс гэж нэрлэгддэг. Эдгээр нь Python, C, C++, эсвэл .NET гэх мэт программ дотроос оператор руу залгаж, HALCON өгөгдлийн төрлүүдийг шууд ашиглах боломжийг олгодог төрөлх хэлний холболтууд юм.
Хөгжүүлэлтийг эхлүүлэхийн тулд бид эхлээд ажиллуулахад бэлэн байгаа аль нэгийг нь шалгахыг зөвлөж байнаampпрограмууд. Эндээс та төслийг хэрхэн тохируулах, операторууд болон төрлүүдийг хэрхэн ашиглахыг харж болно.
Хэлний интерфейс бүрийн хувьд төрлүүдийн нэрс, анги, операторуудын нэрлэх дүрэм гэх мэт нь сонгосон хэлэнд хамаарах ердийн дүрэмд нийцэхийн тулд ялгаатай байж болно. Дэмжигдсэн програмчлалын хэлнүүдийн операторын гарын үсгийг HALCON Операторын лавлагаанд баримтжуулсан болно.
HALCON/Python
Python интерфэйс нь энгийн бөгөөд хурдан загвар гаргах чадвараараа бусдаас ялгардаг. HALCON/Python модулийг импортлон оруулсны дараа HALCON операторуудыг шууд бие даасан функц гэж нэрлэдэг. HALCON/Python дээрх операторын параметрүүд нь функцийн параметр (оролт) болон буцах утгууд (гаралт) гэж хуваагддаг болохыг анхаарна уу.
Example
Дараах код нь зургийг уншиж, түүнд холбогдсон бүсүүдийн тоог (хуудас 10) тооцоолно.
img = ha.read_image('pcb')
бүс = га.босго(img, 0, 122)
бүсүүдийн_тоо = ha.count_obj(га.холболт(бүс))
хэвлэх(f'Бүс нутгийн тоо: {num_regions}')
Урьдчилсан нөхцөл болон дэлгэрэнгүй танилцуулгыг Програмистын гарын авлага, 4-р хэсэг, эхний өмнөх хэсгээс үзнэ үү.ample.
HALCON/C
C интерфейс нь HALCON-ийн дэмждэг хамгийн энгийн интерфейс юм. Оператор бүрийг операторын нэр болон параметрийн дараалал нь HDevelop хэлтэй ижил байдаг нэг эсвэл хоёр глобал функцээр төлөөлдөг.
Example
Дараах код нь зургийг уншиж, түүнд холбогдсон бүсүүдийн тоог (хуудас 10) тооцоолно.
Hobject img;
уншсан_зураг(&img, “pcb”);
Хобьтын бүс нутаг;
босго (img, ®ion, 0, 122);
Hobject холбогдсон_бүсүүд;
холболт(бүс нутаг, &холбогдсон_бүс);
Бүсийн_тоо = 0;
count_obj(холбогдсон_бүс, &бүс_тоо);
printf("Бүс нутгийн тоо: %" PRIdPTR "\n", бүс_тоо);
Урьдчилсан нөхцөл болон дэлгэрэнгүй танилцуулгыг Програмистын гарын авлага, 5-р хэсэг, эхний өмнөх хэсгээс үзнэ үү.ample.
HALCON/C++
C++ интерфэйс нь Си интерфейсээс хамаагүй илүү боловсронгуй. Энд, адванtagC++ болон объект хандалтат програмчлалыг ашигладаг, өөрөөр хэлбэл, төрөл автоматаар хувиргах, бүтээх, устгах, эсвэл функцийг өгөгдөлтэй нь анги болгон бүлэглэх зэрэгт ашигладаг. C интерфэйсийн нэгэн адил HALCON оператор бүрийн глобал функцуудыг програмчлалын процедурын хэв маягаар хангадаг.
Example
Дараах код нь зургийг уншиж, түүнд холбогдсон бүсүүдийн тоог (хуудас 10) тооцоолно.
HImage img{“pcb”};
HRegion region = img. Threshold(0, 122);
Hlong numRegions = region.Connection().CountObj();
std::cout << “Бүс нутгийн тоо: ” << numRegions << '\n';
Урьдчилсан нөхцөл болон дэлгэрэнгүй танилцуулгыг Програмистын гарын авлага, 2-р хэсэг, эхний өмнөх хэсгээс үзнэ үү.ample.
HALCON/.NET
C# болон Visual Basic .NET нь .NET интерфейсээр дамжуулан HALCON ашигладаг.
C++-ийн нэгэн адил програмчлалын хоёр хэв маягийг санал болгодог: процедур ба объект хандалтат. Процедурын хэв маягийн хувьд HOperatorSet анги нь бүх HALCON операторуудыг хангадаг бөгөөд энд HObject нь дүрслэгдсэн өгөгдлийг боловсруулахад, HTuple нь хяналтын өгөгдөлд ашиглагддаг. Объект хандалтат хэв маягийн хувьд HDataCode2d, HMeasure эсвэл HShapeModel зэрэг ангиудыг төв функцээр хангадаг. Нэмж дурдахад HImage эсвэл HRegion гэх мэт гайхалтай өгөгдөлд зориулсан ангиуд байдаг.
Example
Дараах код нь зургийг уншиж, түүнд холбогдсон бүсүүдийн тоог (хуудас 10) тооцоолно.
HImage img = шинэ HImage("pcb");
HRegion бүс = img. Threshold(0d, 122d);
int numRegions = region.Connection().CountObj();
Console.WriteLine(“Бүс нутгийн тоо: ” + numRegions);
Урьдчилсан нөхцөл болон дэлгэрэнгүй танилцуулгыг Програмистын гарын авлага, 3-р хэсэг, эхний өмнөх хэсгээс үзнэ үү.ample.
Зураг авах интерфейс
HALCON-ийн зураг авах интерфэйсүүд нь зураг авах төхөөрөмж үйлдвэрлэгчээс гаргасан программ хангамж болон HALCON-ийн хоорондох гүүрийг бүрдүүлдэг. Эдгээр нь зөвхөн цөөн тооны операторуудыг шаарддаг нийтлэг, ерөнхий интерфейсийг бүрдүүлдэг. Энэ сэдвийн талаарх дэлгэрэнгүй мэдээллийг Шийдэл II-A гарын авлагаас авна уу.
Одоогийн байдлаар HALCON нь динамикаар ачаалагдах боломжтой номын сан (Windows: DLL; Unix-тэй төстэй систем: хуваалцсан номын сан) хэлбэрээр 50 гаруй фрейм баригч, олон зуун үйлдвэрлэлийн камеруудад зориулсан интерфейсээр хангадаг. Номын сангийн нэр нь 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: DLL; Unix-тэй төстэй системүүд: хуваалцсан номын сан). Номын сангийн нэр нь hio угтвараас эхэлдэг; xl дагавараар төгссөн сангуудыг HALCON XL ашигладаг.
HALCON I/O төхөөрөмжийн интерфэйсүүд нь цөөн тооны операторуудыг ашиглан өөр өөр I/O төхөөрөмжүүдэд нэгдсэн хандалтыг хангадаг. Оролт/гаралтын төхөөрөмжөө суулгасны дараа холболтыг open_io_device оператор ашиглан үүсгэн оролт/гаралтын төхөөрөмжийн интерфэйсийн нэр, сонголтоор төхөөрөмжид хамаарах зарим параметрүүдийг зааж өгнө. Холболт хийгдсэний дараа open_io_channel руу залгаснаар дамжуулах сувгийг нээж болно. Энэ суваг дээрх утгыг унших, бичихийн тулд read_io_channel болон write_io_channel операторуудыг тус тус ашиглана.
HALCON I/O төхөөрөмжийн интерфэйсүүд нь HALCON номын сангаас илүү олон удаа өөрчлөгдөж болохыг анхаарна уу. Та хамгийн сүүлийн үеийн мэдээллийг татаж авах боломжтой интерфейсийн хамт (баримт бичгийг оруулаад) доороос олж болно https://www.mvtec.com/products/interfaces. Дэмжигдсэн оролт гаралтын төхөөрөмжийн интерфэйсийн бүрэн жагсаалтыг мөн I/O төхөөрөмжийн интерфэйсийн лавлагааг үзнэ үү.
Хэрэглээг хэрхэн хөгжүүлэх вэ
HALCON машины харааны номын сангийн интерактив хөгжүүлэлтийн орчин болох HDevelop-д хурдан загварчлал хийж эхлэхийг бид зөвлөж байна. Та HDevelop-ийг ашиглан зургийн дүн шинжилгээ хийх даалгавраа шийдвэрлэх оновчтой операторууд болон параметрүүдийг олох боломжтой. Өгөгдсөн шаардлагын дагуу HDevelop програмыг боловсруулсны дараа түүнийг эцсийн орчинд орчуулах шаардлагатай. Үүний тулд та өөрийн сонголтоос хамааран дараах гурван аргыг сонгож болно.
- Эхнээс нь эхлэх: Програмаа эхнээс нь бичих нь таны HDevelop кодыг зорилтот програмчлалын хэл рүү (C++, Python...) гараар хөрвүүлнэ гэсэн үг. Өмнө дурьдсанчлан, операторуудын нэрлэх дүрэм, ангиудын нэрс гэх мэт програмчлалын хэлнүүдийн хооронд өөр өөр байж болно. Дэмжигдсэн програмчлалын хэл бүрийн HALCON операторын гарын үсгийг авахын тулд HALCON операторын лавлагааг харна уу. Өөрийн хүссэн хэл дээр программ үүсгэх талаар мэдээлэл авахыг хүсвэл Програмистын гарын авлагаас уншина уу.
- HDDevelop кодыг экспортлох: HDevelop-ын код экспортыг ашиглан өөрийн HDevelop кодыг зорилтот програмчлалын хэл рүү автоматаар орчуулаарай.
- Экспортын номын сангийн төсөл: HDevelop-ийн номын сангийн экспорт нь зорилтот хэл болон CMake дээрх багц кодыг багтаасан ашиглахад бэлэн төслийн хавтас үүсгэдэг. file төслийг барих. HDevelop номын сангийн экспорт нь орчуулагчийн үүрэг гүйцэтгэдэг HDevEngine номын санг ашигладаг. HDevEngine нь C++ дээр бичигдсэн програм эсвэл .NET объектуудыг нэгтгэж чадах дурын хэлээр HDevelop программ эсвэл процедурыг шууд гүйцэтгэх боломжийг танд олгоно. Тиймээс HDevelop кодонд өөрчлөлт оруулахдаа програмыг бүхэлд нь дахин хөрвүүлэх шаардлагагүй болно.
Мэдээжийн хэрэг, та HDevEngine-г HDevelop-ийн номын сангийн экспортын функцийг ашиглахгүйгээр ашиглаж болно. HDevEngine-г хэрхэн ашиглах талаар Програмистын гарын авлагын 6-р хэсэгт (HDevEngine ашиглах) дэлгэрэнгүй тайлбарласан болно.
HD хөгжүүлэх
Эхлээд HDevelop-ийг харцгаая. Зураг 3.1-д програмыг ачаалж, хэсэгчлэн ажиллуулсны дараа HDevelop-ийн хэрэглэгчийн интерфэйсийг харуулав.
Анхдагч байдлаар, эдгээр цонхнууд харагдах бөгөөд энэ нь HDevelop програмыг хөгжүүлэхэд зайлшгүй шаардлагатай:
- График цонх (завсрын) үр дүнгүүд, тухайлбал зураг, бүс нутаг, XLD зэрэг дүрслэгдсэн өгөгдөл (хуудас 10) харуулдаг.
- Хөтөлбөрийн цонх Энэ нь та HALCON-ийн зураг боловсруулах аргууд руу хандахын тулд операторууд (хуудас 10) ашиглан програмынхаа кодыг бичнэ.
- Хувьсагчийн цонх нь бүх хувьсагчдыг, тухайлбал, тэмдэглэгдсэн хувьсагч ба хяналтын хувьсагчдыг харуулдаг. Iconic хувьсагч нь дүрслэгдсэн өгөгдлийг (хуудас 10), хяналтын хувьсагч нь хяналтын өгөгдлийг (хуудас 10) агуулна.
HDevelop-ийн талаарх дэлгэрэнгүй мэдээллийг HDevelop хэрэглэгчийн гарын авлагаас авах боломжтой. Манай сургалтын видеонууд нь HDevelop-ийн сайн танилцуулгыг санал болгодог:
- HDevelop заавар 01: GUI болон навигаци
- HDDevelop заавар 02: Хувьсагч
- HDDevelop заавар 03: Дүрслэл

Зураг 3.1: HDevelop-ийн хэрэглэгчийн интерфэйс.
Example Хөтөлбөр
Одоо та HDevelop-ийн хэрэглэгчийн интерфэйс болон HALCON-ийн үндсэн ойлголтуудтай танилцсан тул (хуудас 9) Номын сангийн экспортын хандлагыг ашиглан C++ програмыг хөгжүүлцгээе.
Дараах алхам алхмаар зааварчилгаанаас гадна бид танд манай сургалтын видео бичлэгүүдийг үзэхийг зөвлөж байна: Library Project Export ашиглан HDevelop кодыг C++ програмд нэгтгэх.
Library Project Export ашиглан HDevelop кодыг C# програмд нэгтгэнэ үү
Видеонууд нь номын сангийн экспортыг харуулж, сэдвийн талаархи нэмэлт мэдээллийг өгдөг.
HDevelop дээр прототип үүсгэх
Дараах экс-ийн даалгаварample гэдэг нь зургийг уншиж, түүнд холбогдсон бүс нутгийн тоог тоолох явдал юм.
- HDevelop програмыг нээгээд програмын цонхонд дараах кодыг оруулна уу.
уншсан_зураг (Зураг, 'pcb')
босго (Зураг, бүс, 0, 122)
холболт (Бүс нутаг, Холбогдсон бүсүүд)
count_obj (Холбогдсон бүс, тоо) - Хэрэгслийн самбар дээрх Run товчийг дарж эсвэл F5 товчийг дарж програмаа шалгана уу.
Энэхүү HDevelop кодыг бодит хэрэглээнд хялбархан нэгтгэхийн тулд бид машины харааны хэсгийг орон нутгийн процедурт багтаасан болно.
- Дараах кодын мөрүүдийг тодруулна уу: босго (Зураг, Бүс нутаг, 0, 122) холболт (Бүс нутаг, Холбогдсон Бүс нутаг) count_obj (Холбогдсон Бүс нутаг, Дугаар)
- Контекст цэсийг нээхийн тулд хулганы баруун товчийг дарна уу.
- Шинэ журам үүсгэхийг сонгоно уу.
- count_regions гэж нэрлэнэ үү.
- Параметрүүдийг сонгоод Сонгох схемийг эхлээд орж, эцсийн гаралт болгож өөрчил.
- OK-ээр баталгаажуулна уу.
- HDevelop програмаа hdev_count_regions.hdev нэрээр хадгал
Visual Studio төслийг бэлтгэх
Энэ жишээндample, бид Visual Studio 2019-ийг ашиглах болно. 1
- Хоосон C++ Windows Console төсөл үүсгээд үүнийг vs_count_regions гэж нэрлэнэ үү. Шийдэл болон төслийг нэг лавлахад байрлуулах сонголтыг идэвхжүүлнэ үү. 2
- C++ эх сурвалж нэмнэ үү file (Цэс төсөл Шинэ зүйл нэмэх... C++ File) ба үүнийг vs_count_regions.cpp гэж нэрлэнэ үү.
- Хэрэгслийн самбар дээрх унадаг цэснээс шийдлийн платформ x64-ийг сонгоно уу.
- Төслийн шинж чанараа нээгээд (Project 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 төслийн хавтсанд экспортолно.
- Өмнө нь үүсгэсэн HDevelop програмыг hdev_count_regions.hdev нээнэ үү.
- Нээлттэй File Экспортын номын сангийн төсөл...
- Дараах тохиргоог хийнэ үү.
- Оруулах file: Одоогийн хөтөлбөр
- Зорилтот хэл: C++
- Төслийн нэр: hdev_count_regions
- Төслийн байршил: Манай Visual Studio төслийн vs_count_regions-ийн байршлыг сонгоно уу.
- Нэрийн орон зай: hdev_count_regions
- Экспортоор баталгаажуулна уу.
Одоо таны Visual Studio төслийн хавтас vs_count_regions дор хаяж дараах өгөгдлийг агуулсан байх ёстой:
- vs_count_regions.cpp (Эх сурвалж File)
- vs_count_regions.sln (Шийдвэр)
- hdev_count_regions (HDevelop экспортын хавтас)
- cmake
- res_ hdev_ count_ regions
- hdev _ бүс нутгийг тоолох. hdev
- эх сурвалж
- hdev_count_regions.cpp
- hdev_count_regions.h
- CMakeLists.txt
Номын сангийн төслийг Visual Studio-д нэгтгэх
Эцэст нь бид HDevelop програмыг Visual Studio төсөл дээрээ нэгтгэх ёстой.
- Visual Studio төслийг нээнэ үү.
- Project Add Existing Item... нээж C++-г сонгоно уу file hdev_count_regions.cpp болон толгой хэсэг file hdev_count_regions.h, HDevelop-ийн Номын сангийн экспортоор үүсгэсэн. (The files нь hdev_count_regions source хавтсанд байрладаг.)
- Дараах кодыг vs_count_regions.cpp руу оруулна уу:
#оруулна
#"HalconCpp.h"-г оруулах
#"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';
} - Програмыг ажиллуул. → "Бүс нутгийн тоо: 43" гэсэн үр дүнг харуулсан консол нээгдэнэ.
Хэрхэн үргэлжлүүлэх вэ
HALCON-д илүү гүнзгий орохын тулд бид нэмэлт баримт бичиг, дэмжлэгийг санал болгож байна.
- HDevelop ExampХөтөлбөрүүд
HALCON нь ex-ийн өргөн хүрээг хамардагample програмууд нь зөвхөн HDevelop-д төдийгүй өөр өөр програмчлалын хэлүүдэд зориулагдсан. Эдгээр өмнөхamples-ийг % HALCONEX орчны хувьсагчаар тэмдэглэсэн лавлахаас олж болноAMPLES% эсвэл хэрэв хувьсагчийг тохируулаагүй бол дэд директорт exampHALCON суулгасан хавтасны les.
HDevelop экс програмыг нээхampпрограмын цэсийг сонгоно уу File HDevelop Ex-ыг үзэхampХөтөлбөрүүд…. Эхлэгчдэд бид хуучин хүнийг сонгохыг зөвлөж байнаample ангиллын Хэрэглээний талбараас. - Үйлчилгээ ба дэмжлэг
Манай webсайт https://www.mvtec.com/services-support нь төрөл бүрийн дэмжлэгийг санал болгодог, жишээ ньample зааварчилгааны видео, семинар, сургалтын талаарх мэдээлэл, зөвлөмж, аргачлалыг агуулсан хөгжүүлэгчдийн булан гэх мэт. - HALCON баримтжуулалт
Баримт бичиг нь анхан шатны сэдвээс эхлээд мэргэжлийн мэдлэг хүртэл маш их мэдээллийг агуулдаг. Жишээ ньample, манай Шийдлийн гарын авлага нь машины харааны аргууд болон тэдгээрийг HDevelop дээр хэрхэн ашиглахыг тайлбарладаг. Маш сайн эхлэлийн цэг бол машины харааны үндсэн аргуудыг танилцуулах Шийдлийн гарын авлага I юм.
Нэг гаруйview Товч тайлбар бүхий бүх гарын авлагыг баримт бичгийн оруулгын хуудаснаас олж болно.
Баримт бичиг / нөөц
![]() |
HALCON 21.11 Явц [pdf] Хэрэглэгчийн гарын авлага 21.11 Хөгжил дэвшил, 21.11, Ахиц дэвшил |





