halcon-loqosu

HALCON 21.11 Tərəqqi

HALCON-21-11-Tərəqqi-məhsul şəkli

HALCON funksionallığına sürətli çıxış, Versiya 21.11.0.0
Bütün hüquqlar qorunur. Bu nəşrin heç bir hissəsi naşirin əvvəlcədən yazılı icazəsi olmadan çoxaldıla, axtarış sistemində saxlanıla və ya hər hansı formada və ya hər hansı vasitələrlə, elektron, mexaniki, surətçıxarma, səsyazma və ya başqa yolla ötürülə bilməz.

Copyright © 2003-2021 MVTec Software GmbH, Münhen, Almaniya
Aşağıdakı patentlərlə qorunur: ABŞ 7,239,929, ABŞ 7,751,625, ABŞ 7,953,290, ABŞ 7,953,291, ABŞ 8,260,059, ABŞ 8,379,014, ABŞ 8,830,229. Əlavə patentlər gözlənilir.
Microsoft, Windows, Windows Server 2008/2012/2012 R2/2016, Windows 7/8/8.1/10, Microsoft .NET, Visual C++ və Visual Basic Microsoft Korporasiyasının ticarət nişanları və ya qeydiyyatdan keçmiş ticarət nişanlarıdır.
Linux Linus Torvalds şirkətinin ticarət nişanıdır.
macOS və OpenCL Apple Inc-in ticarət nişanlarıdır.
NVIDIA, CUDA, cuBLAS və cuDNN NVIDIA Korporasiyasının ya ticarət nişanları, ya da qeydiyyatdan keçmiş ticarət nişanlarıdır.
OpenGL Silicon Graphics, Inc-in ticarət nişanıdır.
Bütün digər milli və beynəlxalq səviyyədə tanınmış ticarət nişanları və ticarət adları bununla tanınır.
HALCON haqqında daha ətraflı məlumatı aşağıdakı ünvanda tapa bilərsiniz: http://www.halcon.com/

Bu Təlimat haqqında

Bu təlimat sizi HALCON ilə tanış edir. HALCON haqqında əvvəlcədən biliyi olmayan yeni başlayanlar üçün nəzərdə tutulub.
Bu təlimat bir neçə digər HALCON təlimatlarına istinad bələdçisi kimi də istifadə edilə bilər, çünki o, onları aşağıdakı mövzular boyunca birləşdirir:

  1. HALCON quraşdırılması (səhifə 7)
    Bu fəsil MVTec Proqram Meneceri (SOM) təqdim edir.
  2. HALCON Architecture (səhifə 9)
    HALCON-un nə olduğunu və necə işlədiyini başa düşmək üçün bəzi nəzəri məlumat lazımdır.
  3. Tətbiqləri necə inkişaf etdirmək olar (səhifə 15)
    Bu fəsil HALCON ilə inkişaf üçün üç əsas yanaşmanı izah edir və sizə ilk proqramlaşdırma təcrübəsini təqdim edirample.
  4. Necə Davam Etməli (səhifə 19)
    Bu fəsil əlavə məlumat mənbələrinə istinad edir.

HALCON quraşdırılması

Linux və Windows istifadəçiləri üçün MVTec Software Manager (SOM) vasitəsilə HALCON-u endirməyi və quraşdırmağı tövsiyə edirik. SOM proqram paketləri üçün quraşdırma meneceridir. O, məhsulların uzaq kataloquna girişi təmin edir və digər funksiyalar arasında paketlərin endirilməsini və quraşdırılmasını dəstəkləyir. HALCON-un SOM vasitəsilə necə quraşdırılmasına dair addım-addım təqdimatı Quraşdırma Təlimatında tapa bilərsiniz.

HALCON Arxitektura

HALCON-un əsas arxitekturası Şəkil 2.1-də təsvir edilmişdir. Əsas hissə 2000-dən çox operatordan ibarət olan təsvirin işlənməsi kitabxanasıdır. Siz həmçinin öz operatorlarınızı köhnə gərginlik paketləri şəklində inkişaf etdirə bilərsiniz (səhifə 11). Siz tətbiqinizdəki operatorlardan HALCON/C++ və ya HALCON/Python kimi dil interfeysləri (səhifə 11) vasitəsilə istifadə edirsiniz. Bunlar müxtəlif proqramlaşdırma dillərinin tipik proqramlaşdırma üslubunda operatorların birbaşa istifadəsinə imkan verən kitabxanalardır.

HALCON-21-11-Tərəqqi-01

Şəkil 2.1: HALCON-un əsas memarlığı.

Şəkil əldə etmək üçün cihazlara daxil olmaq üçün HALCON təsvirin əldə edilməsi interfeyslərini (səhifə 13) təmin edir ki, bu da sizə ümumi şəkildə tamamilə fərqli əldəetmə cihazlarından istifadə etməyə imkan verir. Cihaza məxsus tətbiqləri ehtiva edən kitabxanalar lazım olduqda dinamik şəkildə yüklənir. Eyni şəkildə, I/O cihazlarına cihaz üçün xüsusi I/O interfeysləri vasitəsilə daxil olur (səhifə 13).

Operatorlar

HALCON kitabxanasından hər hansı bir funksiya istifadə edildikdə, o, operator vasitəsilə həyata keçirilir. Onların əksəriyyəti parametrlər vasitəsilə seçilən çoxsaylı metodlardan ibarətdir. Bütün operatorların tam siyahısını HDevelop, .NET, Python, C++ və C sintaksislərində mövcud olan HALCON Operator Referansında tapa bilərsiniz. Operatorların mühüm xüsusiyyətləri bunlardır:

  • Operatorlar arasında iyerarxiya yoxdur. Proqram arxitekturası baxımından view, bütün operatorlar eyni səviyyədədir.
  • Təbii ki, operatorların məntiqi qrupları var. məsələnample, bunu C++ və .NET üçün təklif olunan siniflərdə görmək olar, burada eyni məlumat tipini emal edən operatorlar müvafiq siniflərin üzv funksiyalarıdır.
  • Operatorların dizaynı açıq arxitektura qaydalarına uyğundur. Beləliklə, siz öz operatorlarınızı yarada və beləliklə, HALCON-u genişləndirə bilərsiniz (bax. bölmə 2.2). Genişləndirmə Paketi Proqramçı Təlimatında operator kitabxanasının genişləndirilməsi haqqında ətraflı məlumat var.
  • Bir çox operatorlar çox prosessorlu və ya çoxnüvəli kompüterdə böyük şəkillərdən istifadə edərkən proqramı sürətləndirməyin asan yoluna imkan verən avtomatik paralelləşdirmədən şəffaf istifadə edə bilərlər. Paralel proqramlaşdırma haqqında ətraflı məlumatı Paralel Proqramlaşdırma texniki qeydində, həmçinin Proqramçının Təlimatında tapa bilərsiniz.
  • Operatorlar giriş və çıxış parametrlərini sifariş etmək üçün standartlaşdırılmış qaydalara malikdirlər: giriş simvolu, çıxış simvolu, giriş nəzarəti və çıxış nəzarəti (bax. bölmə 2.1.1). Müəyyən bir operator üçün bütün qruplar lazım olmaya bilər. Ümumiyyətlə, operatorların giriş parametrləri dəyişdirilmir, bu da aydın və sadə semantika ilə nəticələnir. Bu dizayn üçün yalnız bir neçə istisna var, məsələn, set_grayval, overpaint_gray və overpaint_region.

Parametrlər və Məlumat Strukturları
HALCON iki əsas parametr növünə malikdir: simvolik məlumatlar və nəzarət məlumatları. Şəkillər, bölgələr və XLD-lər (Genişlənmiş Xətt Təsviri) simvolik məlumatlara aiddir.

Şəkillər əsasən kanallardan, yəni piksel dəyərlərini ehtiva edən matrislərdən ibarətdir. Şəklin bütün kanalları eyni ölçüyə malikdir. Piksellər və kanallar haqqında ətraflı məlumat üçün HALCON Operator Referansının "Şəkil" bölməsini oxuyun.
Hər bir şəkil üçün maraq dairəsi (ROI) təsvirin hansı hissəsinin işləndiyini müəyyənləşdirir. ROI çox çevik şəkildə müəyyən edilə bilər (sadə düzbucaqlıdan tutmuş əlaqəsiz piksellər dəstinə qədər). ROI-nin idarə edilməsi ilə bağlı təfərrüatlar üçün 27-ci səhifədəki Həll Bələdçisi I, Maraq bölgəsinə baxın.

Regionlar piksellər toplusudur. Bölgənin piksellərinin qoşulmasına ehtiyac yoxdur. Hətta ixtiyari bir piksel toplusu tək bir bölgə kimi idarə oluna bilər. Operator əlaqəsi ilə bölgəni onun əlaqəli bölgələrinə, yəni birləşdirilmiş piksellərdən ibarət komponentlərə bölmək olar.

XLD-lər bütün kontur və çoxbucaqlı əsaslı məlumatları ehtiva edir. edges_sub_pix kimi subpiksel-dəqiq operatorlar konturları XLD məlumatları kimi qaytarır. Kontur xətlərlə birləşdirilən 2D nəzarət nöqtələrinin ardıcıllığıdır. Tipik olaraq, nəzarət nöqtələri arasındakı məsafə təxminən bir pikseldir. XLD obyektləri idarəetmə nöqtələrindən başqa yerli və qlobal atributları ehtiva edir. Tipik məsampbunlar üçün les, məsələn, kənardır ampnəzarət nöqtəsinin həcmi və ya kontur seqmentinin reqressiya parametrləri. XLD obyektlərinin çıxarılması ilə yanaşı, HALCON sonrakı emalları dəstəkləyir. MəsampBunun üçün konturun xətlərə, qövslərə, çoxbucaqlılara və ya paralellərə seqmentasiyası üçün verilmiş xüsusiyyət diapazonlarına əsaslanan konturların seçilməsidir.

Nəzarət məlumatlarına tutacaqlar və tam, real, sətir kimi əsas məlumat növləri daxildir.

Tutacaqlar mürəkkəb məlumat strukturlarına istinadlardır, məsələn, şəkil əldə etmə interfeysi ilə əlaqə və ya forma əsaslı uyğunluq üçün model. Səmərəlilik və məlumat təhlükəsizliyi səbəbləri üçün operatorlar arasında bütün struktur deyil, yalnız tutacaq ötürülür. Tutacaqlar dəyişdirilməməli olan sehrli dəyərlərdir və icradan icraya və versiyaya görə fərqlənə bilər. Bütün istinadların üzərinə yazıldıqdan sonra onlar avtomatik olaraq silinir. Məsamptutacaqların istifadə edildiyi yerlərdə qrafik pəncərələr, files, yuvalar, təsvirin əldə edilməsi interfeysləri, OCR, OCV, ölçmə və uyğunlaşdırma.

Daxili paketlər

HALCON yeni operatorlar tərəfindən uzadıla bilər. HALCON artıq müxtəlif tapşırıqlar üçün çoxlu operatorlar dəstinə malik olsa da, siz yeni operatorlar tətbiq etmək, məsələn, xüsusi aparata daxil olmaq və ya alternativ alqoritm tətbiq etmək istəyə bilərsiniz. Bunun üçün HALCON genişləndirmə paketləri adlanan formada yeni operatorların (C-də həyata keçirilir) inteqrasiyasına imkan verən Genişləndirmə Paketi İnterfeysini təqdim edir. Genişləndirmə Paketi İnterfeysi C-də təsvir məlumatlarının və yaddaş obyektlərinin asan idarə edilməsi üçün bir neçə əvvəlcədən təyin edilmiş rutinləri və makroları ehtiva edir. Yeni operator uğurla inteqrasiya edildikdən sonra, hər hansı digər HALCON operatoru kimi istifadə oluna bilər. Genişləndirmə Paketi Proqramçı Təlimatında operator kitabxanasının genişləndirilməsi haqqında ətraflı məlumat var.

Dil İnterfeysləri

Səhifə 2.1-da Şəkil 9-də göstərildiyi kimi, HALCON sözdə dil interfeyslərini təmin edir. Bunlar Python, C, C++ və ya .NET olsun, operatorlara zəng etməyə və HALCON məlumat növlərindən birbaşa tətbiqinizdən istifadə etməyə imkan verən ana dil bağlarıdır.
İnkişafa başlamaq üçün əvvəlcə işə hazır keçmişlərdən birini yoxlamağı məsləhət görürükampproqramlar. Burada layihənin necə qurulmalı olduğunu və operatorların və növlərin necə istifadə edildiyini görə bilərsiniz.
Hər bir dil interfeysi üçün növlərin adları, siniflər, operatorların adlandırma konvensiyaları və s. seçilmiş dil üçün tətbiq olunan tipik qaydalara uyğun olmaq üçün fərqlənə bilər. Dəstəklənən proqramlaşdırma dilləri üçün operator imzaları HALCON Operator Referansında sənədləşdirilmişdir.

HALCON/Python
Python interfeysi sadəliyi və sürətli prototipləmə qabiliyyəti ilə seçilir. HALCON operatorları HALCON/Python modulunu idxal etdikdən sonra birbaşa müstəqil funksiyalar kimi çağırılır. Onu da qeyd edək ki, HALCON/Python-da operator parametrləri funksiya parametrlərinə (girişlər) və qaytarılan qiymətlərə (çıxış) bölünür.

Example
Aşağıdakı kod təsviri oxuyur və içindəki əlaqəli bölgələrin sayını hesablayır (səhifə 10).
img = ha.read_image('pcb')
region = ha.həddi (img, 0, 122)
bölgələrin_sayı = ha.count_obj(ha.bağlantı(region))
çap(f'Regionların Sayı: {num_regions}')

İlkin şərtlər və ətraflı məlumat üçün, lütfən, Proqramçı Bələdçisi, 4-cü Hissə, Birinci Keçmişə baxın.ample.

HALCON/C
C interfeysi HALCON tərəfindən dəstəklənən ən sadə interfeysdir. Hər bir operator operator adı və parametr ardıcıllığının HDevelop dili ilə eyni olduğu bir və ya iki qlobal funksiya ilə təmsil olunur.

Example
Aşağıdakı kod təsviri oxuyur və içindəki əlaqəli bölgələrin sayını hesablayır (səhifə 10).
Hobject img;
read_image(&img, “pcb”);
Hobject region;
eşik həddi (img, ®ion, 0, 122);
Hobject bağlı_regions;
əlaqə (region, &bağlı_regionlar);
Hlongsayı_regions = 0;
count_obj(əlaqəli_regionlar, &num_regions);
printf(“Regionların Sayı: %” PRIdPTR “\n”, regionların sayı);

İlkin şərtlər və ətraflı məlumat üçün, lütfən, Proqramçı Bələdçisi, 5-cü Hissə, Birinci Keçmişə baxın.ample.

HALCON/C++
C++ interfeysi C interfeysindən qat-qat mürəkkəbdir. Budur, advantages C++ və obyekt yönümlü proqramlaşdırmadan istifadə olunur, yəni avtomatik tip çevrilməsi, qurulması və məhv edilməsi və ya verilənlərlə birlikdə siniflərə qruplaşdırılması funksiyaları. C interfeysində olduğu kimi, proqramlaşdırmanın prosedur üslubu üçün hər bir HALCON operatoru üçün qlobal funksiyalar təmin edilmişdir.

Example
Aşağıdakı kod təsviri oxuyur və içindəki əlaqəli bölgələrin sayını hesablayır (səhifə 10).
HImage img{“pcb”};
HRegion regionu = img.Threshold(0, 122);
Hlong numRegions = region.Connection().CountObj();
std::cout << “Regionların Sayı: ” << numRegions << '\n';

İlkin şərtlər və ətraflı məlumat üçün, lütfən, Proqramçı Bələdçisi, 2-cü Hissə, Birinci Keçmişə baxın.ample.

HALCON/.NET
C# və Visual Basic .NET .NET interfeysi vasitəsilə HALCON-dan istifadə edir.
C++ ilə analoji olaraq, proqramlaşdırmanın iki üslubu təklif olunur: prosedur və obyekt yönümlü. Prosedur üslubu üçün HOperatorSet sinfi bütün HALCON operatorlarını təmin edir, burada HObject simvolik məlumatları idarə etmək üçün, HTuple isə idarəetmə məlumatları üçün istifadə olunur. Obyekt yönümlü üslub üçün HDataCode2d, HMeasure və ya HShapeModel kimi siniflər mərkəzi funksionallıq üçün təmin edilir. Bundan əlavə, ikonik məlumatlar, məsələn, HImage və ya HRegion üçün siniflər mövcuddur.

Example
Aşağıdakı kod təsviri oxuyur və içindəki əlaqəli bölgələrin sayını hesablayır (səhifə 10).
HImage img = yeni HImage (“pcb”);
HRegion regionu = img.Threshold(0d, 122d);
int numRegions = region.Connection().CountObj();
Console.WriteLine(“Regionların Sayı: ” + NumRegions);

İlkin şərtlər və ətraflı məlumat üçün, lütfən, Proqramçı Bələdçisi, 3-cü Hissə, Birinci Keçmişə baxın.ample.

Şəkil Alma İnterfeysləri

HALCON-un təsvirin əldə edilməsi interfeysləri təsvirin əldə edilməsi cihazının istehsalçısı tərəfindən təmin edilən proqram təminatı ilə HALCON arasında körpü təşkil edir. Onlar yalnız kiçik operatorlar dəstini tələb edən ümumi, ümumi interfeys təşkil edirlər. Lütfən, bu mövzu haqqında ətraflı məlumat üçün Həll Təlimatına II-A baxın.
Hal-hazırda, HALCON 50-dən çox çərçivə tutucusu və yüzlərlə sənaye kamerası üçün dinamik yüklənə bilən kitabxanalar (Windows: DLL-lər; Unix-ə bənzər sistemlər: paylaşılan kitabxanalar) şəklində interfeyslər təqdim edir. Kitabxana adları hAcq prefiksi ilə başlayır; xl şəkilçisi ilə bitən kitabxanalar HALCON XL tərəfindən istifadə olunur.
Sənaye standartlarına əsaslanan ən çox istifadə edilən interfeyslər artıq HALCON kitabxanaları ilə birlikdə quraşdırılmışdır. Əlavə interfeyslər, eləcə də artıq daxil edilmiş interfeyslərin ən son versiyaları altında endirilə bilər https://www.mvtec.com/products/interfaces. HALCON təsvirin əldə edilməsi interfeysləri HALCON kitabxanasının özündən daha tez-tez dəyişə bilər. Bunun bir səbəbi MVTec-in davamlı olaraq yeni interfeyslər inkişaf etdirməsidir; Bundan əlavə, əgər təsvirin əldə edilməsi cihazlarının istehsalçıları tərəfindən təmin edilən proqram təminatı dəyişirsə, məsələn, yeni funksiyalar inteqrasiya olunarsa, müvafiq HALCON interfeysləri uyğunlaşdırılacaq. Zəhmət olmasa, dəstəklənən şəkil əldə etmə interfeyslərinin tam siyahısı üçün Şəkil Alma İnterfeysi Referansına da baxın.
Şəkil toplama cihazınızı uğurla quraşdırdıqdan sonra, HALCON-dan ona daxil olmaq üçün sizə lazım olan yeganə şey, təsvirin əldə edilməsi interfeysinin adını və bəzi əlavə məlumatları, məsələn, qoşulmuş kamera ilə bağlı məlumat verməklə open_framegrabber operatoruna zəng etməkdir. Sonra, grab_image (və ya grab_image_async) operatoruna zəng etməklə şəkilləri götürmək olar.

I / O İnterfeyslər

HALCON məlumatların əldə edilməsini təmin etmək üçün bir neçə I/O cihazları üçün interfeyslər təqdim edir. Bu interfeyslər dinamik yüklənə bilən kitabxanalar kimi mövcuddur (Windows: DLL-lər; Unix-ə bənzər sistemlər: paylaşılan kitabxanalar). Kitabxana adları hio prefiksi ilə başlayır; xl şəkilçisi ilə bitən kitabxanalar HALCON XL tərəfindən istifadə olunur.
HALCON I/O cihaz interfeysləri kiçik operatorlar dəstindən istifadə etməklə müxtəlif I/O cihazlarına vahid girişi təmin edir. Siz I/O cihazınızı quraşdırdıqdan sonra open_io_device operatorundan istifadə edərək giriş/çıxış cihazı interfeysinin adını və istəyə görə bəzi cihaza xas parametrləri təyin etməklə əlaqə qurulur. Bağlantı qurulduqdan sonra open_io_channel-ə zəng etməklə ötürmə kanalı açıla bilər. Bu kanalda dəyərləri oxumaq və yazmaq üçün müvafiq olaraq read_io_channel və write_io_channel operatorlarından istifadə edin.
Nəzərə alın ki, HALCON I/O cihazı interfeysləri HALCON kitabxanasının özündən daha tez-tez dəyişə bilər. Siz ən son məlumatları yüklənə bilən interfeyslərlə (sənədlər daxil olmaqla) aşağıda tapa bilərsiniz https://www.mvtec.com/products/interfaces. Dəstəklənən I/O cihazı interfeyslərinin tam siyahısı üçün I/O Cihazı İnterfeysi Referansına da müraciət edin.

Tətbiqləri necə inkişaf etdirmək olar

HALCON maşın görmə kitabxanası üçün interaktiv inkişaf mühiti olan HDevelop-da sürətli prototipləşdirmə ilə başlamağınızı tövsiyə edirik. Şəkil təhlili tapşırığınızı həll etmək üçün optimal operatorları və parametrləri tapmaq üçün HDevelop-dan istifadə edə bilərsiniz. Verilmiş tələblərə uyğun olaraq HDevelop proqramını inkişaf etdirdikdən sonra onu son mühitə çevirmək lazımdır. Bunun üçün üstünlüklərinizdən asılı olaraq aşağıdakı üç yanaşma arasında seçim edə bilərsiniz:

  • Sıfırdan başlamaq: Proqramınızı sıfırdan yazmaq HDevelop kodunuzu əl ilə hədəf proqramlaşdırma dilinə (C++, Python…) tərcümə etmək deməkdir. Daha əvvəl qeyd edildiyi kimi, operatorların adlandırma konvensiyaları, siniflərin adları və s. proqramlaşdırma dilləri arasında fərqli ola bilər. Hər dəstəklənən proqramlaşdırma dili üçün HALCON operator imzalarını əldə etmək üçün HALCON Operator Referansına nəzər salın. İstədiyiniz hədəf dildə proqramların necə yaradılacağına dair məlumat üçün Proqramçı Təlimatını oxuyun.
  • HDDevelop Kodunu ixrac edin: HDevelop kodu ixracından istifadə edərək avtomatik olaraq HDevelop kodunuzu hədəf proqramlaşdırma dilinə tərcümə edin.
  • İxrac Kitabxanası Layihəsi: HDevelop-un kitabxana ixracı, hədəf dildə paket kodu və CMake daxil olmaqla, istifadəyə hazır layihə qovluğu yaradır. file layihəni qurmaq. HDevelop-un kitabxana ixracı HDevEngine-dən, tərcüməçi kimi fəaliyyət göstərən kitabxanadan istifadə edir. HDevEngine sizə HDevelop proqramlarını və ya prosedurlarını C++ və ya .NET obyektlərini inteqrasiya edə bilən hər hansı dildə yazılmış proqramdan birbaşa icra etməyə imkan verir. Beləliklə, HDevelop koduna dəyişiklik edərkən bütün tətbiqi yenidən tərtib etmək lazım deyil.
    Əlbəttə ki, HDevEngine-dən HDevelop-un kitabxana ixracı funksiyasından istifadə etmədən istifadə edə bilərsiniz. HDevEngine-dən necə istifadə ediləcəyi Proqramçı Təlimatının 6-cı Hissəsində (HDevEngine-in istifadəsi) ətraflı təsvir edilmişdir.
HDinkişaf

Gəlin ilk olaraq HDevelop-a nəzər salaq. Şəkil 3.1 proqram yükləndikdən və qismən icra edildikdən sonra HDevelop-un istifadəçi interfeysini göstərir.
Varsayılan olaraq, HDevelop ilə inkişaf üçün vacib olan bu pəncərələr görünür:

  1. Qrafik Pəncərə (aralıq) nəticələri, yəni şəkillər, bölgələr və XLD kimi simvolik məlumatları (səhifə 10) göstərir.
  2. Proqram Pəncərəsi HALCON-un təsviri emal üsullarına daxil olmaq üçün operatorlardan (səhifə 10) istifadə edərək proqram kodunuzu yazdığınız yerdir.
  3. Dəyişən pəncərəsi bütün dəyişənləri, yəni simvolik dəyişənləri və nəzarət dəyişənlərini göstərir. İkonik dəyişənlər simvolik məlumatları (səhifə 10) və nəzarət dəyişənləri nəzarət məlumatlarını ehtiva edir (səhifə 10).

HDevelop haqqında ətraflı məlumatı HDevelop İstifadəçi Təlimatında tapa bilərsiniz. Dərslik videolarımız həmçinin HDevelop-a yaxşı giriş təklif edir:

  • HDevelop Tutorial 01: GUI və Naviqasiya
  • HDevelop Təlimatı 02: Dəyişənlər
  • HDDevelop Dərsliyi 03: Vizuallaşdırma

HALCON-21-11-Tərəqqi-02

Şəkil 3.1: HDevelop istifadəçi interfeysi.

ExampProqramı

İndi siz HDevelop-un İstifadəçi İnterfeysi və HALCON-un əsas anlayışları ilə tanış olduğunuza görə (səhifə 9), gəlin Kitabxana İxrac yanaşmasından istifadə edərək C++ proqramını inkişaf etdirək.
Aşağıdakı addım-addım təlimatlara əlavə olaraq, dərslik videolarımızı izləməyi tövsiyə edirik: Kitabxana Layihəsinin İxracından istifadə edərək HDevelop kodunu C++ proqramına inteqrasiya edin
Kitabxana Layihəsinin İxracından istifadə edərək HDevelop kodunu C# tətbiqinə inteqrasiya edin
Videolar kitabxananın ixracını nümayiş etdirir və mövzu haqqında daha çox məlumat verir.

HDevelop-da prototip yaradın
Aşağıdakı eksample təsviri oxumaq və ona bağlı bölgələrin sayını hesablamaqdır.

  1. HDevelop proqramını açın və Proqram Pəncərəsinə aşağıdakı kodu daxil edin:
    read_image (Şəkil, 'pcb')
    hədd (Şəkil, Region, 0, 122)
    əlaqə (Region, ConnectedRegions)
    count_obj (Əlaqəli Bölgələr, Nömrə)
  2. Alətlər panelində Run düyməsini klikləməklə və ya F5 düyməsini sıxmaqla proqramınızı yoxlayın.

Bu HDevelop kodunu faktiki tətbiqə asanlıqla inteqrasiya etmək üçün biz maşın görmə hissəsini yerli prosedura daxil edirik.

  1. Aşağıdakı kod sətirlərini vurğulayın: hədd (Şəkil, Region, 0, 122) əlaqə (Region, ConnectedRegions) count_obj (ConnectedRegions, Number)
  2. Kontekst menyusunu açmaq üçün sağ klikləyin.
  3. Yeni Prosedur Yarat seçin.
  4. Bunu count_regions adlandırın.
  5. Parametrləri seçin və Seçim Sxemini First In, Last Out olaraq dəyişdirin.
  6. OK ilə təsdiqləyin.
  7. HDevelop proqramınızı hdev_count_regions.hdev kimi yadda saxlayın

Visual Studio layihəsini hazırlayın
Bu keçmişdəample, biz Visual Studio 2019-dan istifadə edəcəyik. 1

  1. Boş bir C++ Windows Konsolu layihəsi yaradın və onu vs_count_regions adlandırın. Zəhmət olmasa, həlli və layihəni eyni kataloqda yerləşdirin seçimini aktivləşdirin. 2
  2. C++ mənbəyi əlavə edin file (Menyu Layihəsi Yeni Element əlavə et... C++ File) və onu vs_count_regions.cpp adlandırın.
  3. Alətlər panelində açılan menyudan həll platforması x64 seçin.
  4. Layihə xassələrinizi açın (Menyu Layihəsi vs_count_regions Xüsusiyyətləri…) və aşağıdakı parametrləri edin:
    • C/C++ General seçin və aşağıdakı Əlavə Daxil Kataloqlarını əlavə edin:$(HALCONROOT)\include;$(HALCONROOT)\include\halconcpp;
    • Linker General seçin və aşağıdakı Əlavə Kitabxana Kataloqunu əlavə edin:$(HALCONROOT)\lib\$(HALCONARCH);
    • Bağlayıcı Girişini seçin və aşağıdakı Əlavə Asılılıqları əlavə edin: halconcpp.lib;hdevenginecpp.lib;

İxrac Kitabxanası Layihəsi
Sonra, HDevelop proqramı hdev_count_regions.hdev-i Visual Studio layihə qovluğumuza ixrac edirik.

  1. Əvvəllər yaradılmış HDevelop proqramını açın hdev_count_regions.hdev.
  2. Açıq File  İxrac Kitabxana Layihəsi...
  3. Aşağıdakı parametrləri edin:
    • Giriş file: Cari Proqram
    • Hədəf Dili: C++
    • Layihənin adı: hdev_count_regions
    • Layihə Yeri: Visual Studio layihəmizin vs_count_regions yerini seçin.
    • Ad sahəsi: hdev_count_regions
  4. İxrac ilə təsdiqləyin.

İndi Visual Studio layihə qovluğunuz vs_count_regions ən azı aşağıdakı məlumatları ehtiva etməlidir:

  • vs_count_regions.cpp (Mənbə File)
  • vs_count_regions.sln (Həll)
  • hdev_count_regions (HDevelop Export-dan qovluq)
    • cmake
    • res_ hdev_ count_ bölgələri
    • hdev _ count_ region. hdev
  •  mənbə
    • hdev_count_regions.cpp
    • hdev_count_regions.h
    • CMakeLists.txt

Kitabxana layihəsini Visual Studio-ya inteqrasiya edin
Nəhayət, HDevelop proqramını Visual Studio Layihəmizə inteqrasiya etməliyik.

  1. Visual Studio Layihəsini açın.
  2. Layihəni açın Mövcud elementi əlavə edin... və C++ seçin file hdev_count_regions.cpp və başlıq file hdev_count_regions.h, HDevelop-un Kitabxana İxracı tərəfindən yaradılmışdır. (The files hdev_count_regions mənbəyi qovluğunda yerləşir.)
  3. vs_count_regions.cpp-ə aşağıdakı kodu daxil edin:
    #daxildir
    # "HalconCpp.h" daxil edin
    # "hdev_count_regions/source/hdev_count_regions.h" daxil edin
    int main()
    {
    HalconCpp::HImage Image("pcb");
    hdev_count_regions::SetResourcePath(“hdev_count_regions/res_hdev_count_regions”);
    HalconCpp::HTÇift Nömrə{};
    hdev_count_regions::count_regions(Şəkil, &Nömrə);
    std::cout << “Regionların Sayı: ” << Number.L() << '\n';
    }
  4. Proqramı icra edin. → "Regionların sayı: 43" nəticəsini göstərən konsol açılır.

Davam etmək üçün necə

HALCON-u daha dərindən öyrənmək üçün biz əlavə sənədlər və dəstək təklif edirik.

  • HDevelop ExampProqramlar
    HALCON geniş eksklüziv dəst təqdim edirample proqramları, yalnız HDevelop üçün deyil, həm də müxtəlif proqramlaşdırma dilləri üçün. Bunlar keçmişamples mühit dəyişəni % HALCONEX ilə işarələnən kataloqda tapıla bilərAMPLES% və ya dəyişən təyin edilməyibsə, ör. alt kataloqdaampHALCON quraşdırdığınız qovluğun les.
    HDevelop ex açmaq üçünampproqramı ilə menyunu seçin File  HDevelop Ex-ə baxınampProqramlar... Yeni başlayanlar üçün köhnəni seçməyi məsləhət görürükample kateqoriyadan Tətbiq sahəsindən.
  • Xidmətlər və dəstək
    Bizim websayt https://www.mvtec.com/services-support, məsələn, müxtəlif dəstək təklif edirample tutorial videolar, seminarlar və təlimlər haqqında məlumat, məsləhətlər və tövsiyələr verən tərtibatçılar guşəsi və daha çox.
  • HALCON Sənədləri
    Sənədlər başlanğıc mövzulardan ekspert biliklərinə qədər çoxlu məlumat təqdim edir. məsələnample, Həll Təlimatlarımız maşın görmə üsullarını və onların HDevelop-da necə tətbiq olunacağını təsvir edir. Yaxşı bir başlanğıc nöqtəsi sizi əsas maşın görmə üsulları ilə tanış edən Həll Bələdçisi I-dir.
    Bir bitdiview qısa təsviri olan bütün təlimatları sənədlərin giriş səhifəsində tapa bilərsiniz.

Sənədlər / Resurslar

HALCON 21.11 Tərəqqi [pdf] İstifadəçi təlimatı
21.11 Tərəqqi, 21.11, Tərəqqi

İstinadlar

Şərh buraxın

E-poçt ünvanınız dərc olunmayacaq. Tələb olunan sahələr qeyd olunub *