halcon logosu

HALCON 21.11 İlerleme

HALCON-21-11-İlerleme-ürün-resmi

HALCON'un işlevselliğine hızlı erişim, Sürüm 21.11.0.0
Her hakkı saklıdır. Bu yayının hiçbir bölümü, yayıncının önceden yazılı izni olmaksızın çoğaltılamaz, bir erişim sisteminde saklanamaz veya elektronik, mekanik, fotokopi, kayıt veya başka herhangi bir biçimde veya yöntemle iletilemez.

Telif Hakkı © 2003-2021, MVTec Software GmbH, München, Almanya
Aşağıdaki patentlerle korunmaktadır: 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. Bekleyen diğer patentler.
Microsoft, Windows, Windows Server 2008/2012/2012 R2/2016, Windows 7/8/8.1/10, Microsoft .NET, Visual C++ ve Visual Basic, Microsoft Corporation'ın ticari markaları veya tescilli ticari markalarıdır.
Linux, Linus Torvalds'ın ticari markasıdır.
macOS ve OpenCL, Apple Inc.'in ticari markalarıdır.
NVIDIA, CUDA, cuBLAS ve cuDNN, NVIDIA Corporation'ın ticari markaları veya tescilli ticari markalarıdır.
OpenGL, Silicon Graphics, Inc.'in ticari markasıdır.
Diğer tüm ulusal ve uluslararası kabul görmüş ticari markalar ve ticari isimler burada tanınır.
HALCON hakkında daha fazla bilgi şu adreste bulunabilir: http://www.halcon.com/

Bu Kılavuz Hakkında

Bu kılavuz size HALCON'u tanıtır. Önceden HALCON bilgisi olmayan yeni başlayanlar için tasarlanmıştır.
Bu kılavuz, aşağıdaki konular boyunca onları birbirine bağladığından, diğer bazı HALCON kılavuzları için bir başvuru kılavuzu olarak da kullanılabilir:

  1. HALCON'u Kurma (sayfa 7)
    Bu bölümde MVTec Yazılım Yöneticisi (SOM) tanıtılmaktadır.
  2. HALCON Mimarisi (sayfa 9)
    HALCON'un ne olduğunu ve nasıl çalıştığını anlamak için gereken bazı teorik bilgiler.
  3. Uygulamalar Nasıl Geliştirilir (sayfa 15)
    Bu bölüm, HALCON ile geliştirmeye yönelik üç temel yaklaşımı açıklar ve ilk programlamada size yol gösterir.ampley.
  4. Nasıl Devam Edilir (sayfa 19)
    Bu bölüm ek bilgi kaynaklarına atıfta bulunmaktadır.

HALCON'u yükleme

Linux ve Windows kullanıcıları için HALCON'u MVTec Yazılım Yöneticisi (SOM) aracılığıyla indirip kurmanızı öneririz. SOM, yazılım paketleri için bir kurulum yöneticisidir. Uzak bir ürün kataloğuna erişim sağlar ve diğer özelliklerin yanı sıra paketlerin indirilmesini ve kurulmasını destekler. HALCON'un SOM aracılığıyla nasıl kurulacağına ilişkin adım adım bir tanıtım, Kurulum Kılavuzunda bulunabilir.

HALCON Mimarlık

HALCON'un temel mimarisi şekil 2.1'de gösterilmektedir. Ana bölüm, 2000'den fazla operatörden oluşan görüntü işleme kitaplığıdır. Kendi operatörlerinizi uzatma paketleri şeklinde de geliştirebilirsiniz (sayfa 11). Uygulamanızdaki işleçleri, HALCON/C++ veya HALCON/Python gibi dil arabirimleri (sayfa 11) aracılığıyla kullanırsınız. Bunlar, operatörlerin farklı programlama dillerinin tipik programlama stilinde doğrudan kullanımına izin veren kitaplıklardır.

HALCON-21-11-İlerleme-01

Şekil 2.1: HALCON'un temel mimarisi.

Görüntü alma cihazlarına erişim için HALCON, oldukça farklı alma cihazlarını ortak bir şekilde kullanmanıza izin veren görüntü alma arayüzleri (sayfa 13) sağlar. Cihaza özgü uygulamaları içeren kitaplıklar, gerektiğinde dinamik olarak yüklenir. Aynı şekilde, G/Ç cihazlarına cihaza özel G/Ç arayüzleri aracılığıyla erişilir (sayfa 13).

Operatörler

HALCON kitaplığından herhangi bir işlevsellik kullanıldığında, bir operatör aracılığıyla yapılır. Çoğu, parametreler aracılığıyla seçilen birden çok yöntem içerir. Tüm operatörlerin tam listesi HDevelop, .NET, Python, C++ ve C sözdiziminde bulunan HALCON Operatör Referansında bulunabilir. Operatörlerin önemli özellikleri şunlardır:

  • Operatörler arasında hiyerarşi yoktur. Yazılım mimarisi açısından view, tüm operatörler aynı seviyededir.
  • Elbette mantıksal operatör grupları vardır. eski içinample'de bu, aynı veri tipini işleyen işleçlerin ilgili sınıfların üye işlevleri olduğu C++ ve .NET için sunulan sınıflarda görülebilir.
  • Operatörlerin tasarımı açık mimarinin kurallarına uygundur. Bu nedenle, kendi operatörlerinizi oluşturabilir ve böylece HALCON'u genişletebilirsiniz (bkz. bölüm 2.2). Uzantı Paketi Programcı El Kitabı, operatör kitaplığının genişletilmesi hakkında ayrıntılı bilgiler içerir.
  • Birçok operatör, çok işlemcili veya çok çekirdekli bir bilgisayarda büyük görüntüleri kullanırken programı hızlandırmanın kolay bir yolunu sağlayan otomatik paralelleştirmeyi şeffaf bir şekilde kullanabilir. Paralel programlama hakkında ayrıntılı bilgi Paralel Programlama teknik notunda ve ayrıca Programcı Kılavuzunda bulunabilir.
  • Operatörler, giriş ve çıkış parametrelerini sıralamak için standartlaştırılmış kurallara sahiptir: giriş simgesi, çıkış simgesi, giriş kontrolü ve çıkış kontrolü (bkz. bölüm 2.1.1). Belirli bir işleç için grupların tümü gerekli olmayabilir. Genel olarak, operatörlerin giriş parametreleri değiştirilmez, bu da açık ve basit bir semantik ile sonuçlanır. Bu tasarımın yalnızca birkaç istisnası vardır, örneğin set_grayval, overpaint_gray ve overpaint_region.

Parametreler ve Veri Yapıları
HALCON'un iki temel parametre türü vardır: ikonik veriler ve kontrol verileri. Görüntüler, bölgeler ve XLD'ler (Genişletilmiş Satır Açıklaması) ikonik verilere aittir.

Görüntüler esas olarak kanallardan, yani piksel değerleri içeren matrislerden oluşur. Bir görüntünün tüm kanalları aynı boyuta sahiptir. Pikseller ve kanallar hakkında ayrıntılı bilgi için lütfen HALCON Operatör Referansı'nın “Görüntü” bölümünü okuyun.
Her görüntü için, sözde ilgi bölgesi (ROI), görüntünün hangi bölümünün işlendiğini belirtir. ROI çok esnek bir şekilde tanımlanabilir (basit bir dikdörtgenden bir dizi bağlantısız piksele kadar). ROI işleme hakkında ayrıntılar için bkz. Çözüm Kılavuzu I, İlgi Alanı sayfa 27.

Bölgeler bir piksel kümesidir. Bir bölgenin piksellerinin bağlanmasına gerek yoktur. Rastgele bir piksel koleksiyonu bile tek bir bölge olarak ele alınabilir. Operatör bağlantısıyla bir bölge, bağlantılı bölgelerine, yani bağlı piksellerden oluşan bileşenlere bölünebilir.

XLD'ler tüm kontur ve poligon tabanlı verileri içerir. edge_sub_pix gibi alt piksel doğruluğuna sahip işleçler, konturları XLD verileri olarak döndürür. Kontur, çizgilerle birbirine bağlanan bir 2B kontrol noktaları dizisidir. Tipik olarak, kontrol noktaları arasındaki mesafe yaklaşık bir pikseldir. XLD nesneleri, kontrol noktalarının yanı sıra yerel ve genel olarak adlandırılan öznitelikleri içerir. Tipik eskiampBunlar için dosyalar, örneğin, kenar ampbir kontrol noktasının parlaklığı veya bir kontur segmentinin regresyon parametreleri. XLD nesnelerinin çıkarılmasının yanı sıra, HALCON daha fazla işlemeyi destekler. EskiampBunun için dosyalar, bir konturun çizgilere, yaylara, çokgenlere veya paralellere bölünmesi için verilen özellik aralıklarına dayalı olarak konturların seçilmesidir.

Kontrol verileri tanıtıcıları ve tamsayı, gerçek, dizi gibi temel veri türlerini içerir.

Kollar karmaşık veri yapılarına, örneğin bir görüntü elde etme arayüzüne bir bağlantıya veya şekle dayalı eşleştirme için bir modele yapılan referanslardır. Verimlilik ve veri güvenliği nedeniyle, tüm yapı değil, sadece tanıtıcı operatörler arasında aktarılır. Tutamaçlar, değiştirilmemesi gereken ve yürütmeden yürütmeye ve sürümden sürüme farklılık gösterebilen sihirli değerlerdir. Tüm referansların üzerine yazıldığında otomatik olarak temizlenirler. EskiampTutamaçların kullanıldığı dosyalar grafik pencereleridir, files, yuvalar, görüntü alma arabirimleri, OCR, OCV, ölçme ve eşleştirme.

Uzatma Paketleri

HALCON, yeni operatörler tarafından genişletilebilir. HALCON halihazırda çeşitli görevler için çok sayıda operatör içermesine rağmen, örneğin özel bir donanıma erişmek veya alternatif bir algoritma uygulamak için yeni operatörler uygulamak isteyebilirsiniz. Bunu yapmak için HALCON, yeni operatörlerin (C'de uygulanan) sözde uzantı paketleri biçiminde entegrasyonuna izin veren Uzantı Paketi Arayüzünü sağlar. Uzantı Paketi Arayüzü, C'de görüntü verilerinin ve bellek nesnelerinin kolayca işlenmesi için önceden tanımlanmış birkaç rutin ve makro içerir. Yeni bir operatör başarıyla entegre edildikten sonra, diğer herhangi bir HALCON operatörü gibi kullanılabilir. Uzantı Paketi Programcı El Kitabı, operatör kitaplığının genişletilmesi hakkında ayrıntılı bilgiler içerir.

Dil Arayüzleri

Sayfa 2.1'daki şekil 9'de gösterildiği gibi, HALCON sözde dil arayüzleri sağlar. Bunlar, ister Python, C, C++ veya .NET olsun, operatörleri aramanıza ve HALCON veri türlerini doğrudan uygulamanızın içinden kullanmanıza olanak tanıyan yerel dil bağlamalarıdır.
Geliştirmeye başlamak için, önce çalışmaya hazır eskilerden birini kontrol etmenizi öneririz.ampprogramları. Burada projenin nasıl kurulması gerektiğini ve operatörlerin ve tiplerin nasıl kullanıldığını görebilirsiniz.
Her dil arabirimi için, tür adları, sınıflar, işleçlerin adlandırma kuralları, vb., seçilen dil için geçerli olan tipik kurallara uyması açısından farklılık gösterebilir. Desteklenen programlama dilleri için operatör imzaları, HALCON Operatör Referansında belgelenmiştir.

HALCON/Piton
Python arabirimi, basitliği ve hızlı prototip oluşturma yeteneği ile öne çıkıyor. HALCON işleçleri, HALCON/Python modülünü içe aktardıktan sonra doğrudan bağımsız işlevler olarak çağrılır. Ayrıca HALCON/Python'daki operatör parametrelerinin fonksiyon parametreleri (girişler) ve dönüş değerleri (çıkış) olarak ayrıldığına dikkat edin.

Example
Aşağıdaki kod bir görüntüyü okur ve içindeki bağlı bölgelerin (sayfa 10) sayısını hesaplar.
img = ha.read_image('pcb')
bölge = ha.threshold(img, 0, 122)
num_regions = ha.count_obj(ha.connection(bölge))
print(f'Bölge Sayısı: {num_regions}')

Önkoşullar ve ayrıntılı bir gözden geçirme için lütfen Programcı Kılavuzu, Bölüm 4, A First Ex'e bakın.ampley.

HALKON/C
C arayüzü, HALCON tarafından desteklenen en basit arayüzdür. Her operatör, operatör adının ve parametre dizisinin HDevelop diliyle aynı olduğu bir veya iki genel işlevle temsil edilir.

Example
Aşağıdaki kod bir görüntüyü okur ve içindeki bağlı bölgelerin (sayfa 10) sayısını hesaplar.
Hedef görüntü;
read_image(&img, “pcb”);
Hedef bölge;
eşik(img, ®ion, 0, 122);
Hedef bağlı_bölgeler;
bağlantı(bölge, &connected_regions);
Hlong sayı_bölgeler = 0;
count_obj(connected_regions, &num_regions);
printf(“Bölge Sayısı: %” PRIdPTR “\n”, bölge_sayısı);

Önkoşullar ve ayrıntılı bir gözden geçirme için lütfen Programcı Kılavuzu, Bölüm 5, A First Ex'e bakın.ampley.

HALKON/C++
C++ arayüzü, C arayüzünden çok daha karmaşıktır. Burada, ilerlemetagC++ ve nesne yönelimli programlama, yani otomatik tür dönüştürme, oluşturma ve yok etme veya işlevleri verileriyle birlikte sınıflar halinde gruplama kullanılır. C arabiriminde olduğu gibi, prosedürel bir programlama stili için her HALCON operatörü için genel işlevler sağlanır.

Example
Aşağıdaki kod bir görüntüyü okur ve içindeki bağlı bölgelerin (sayfa 10) sayısını hesaplar.
HImage img{“pcb”};
HBölge bölgesi = img.Threshold(0, 122);
Hlong numRegions = bölge.Connection().CountObj();
std::cout << “Bölge Sayısı: ” << numRegions << '\n';

Önkoşullar ve ayrıntılı bir gözden geçirme için lütfen Programcı Kılavuzu, Bölüm 2, A First Ex'e bakın.ampley.

HALCON/.NET
C# ve Visual Basic .NET, .NET arabirimi aracılığıyla HALCON'u kullanır.
C++'a benzer şekilde, iki programlama stili sunulur: prosedürel ve nesne yönelimli. Prosedür stili için, HOperatorSet sınıfı tüm HALCON operatörlerini sağlar; burada HObject ikonik verileri işlemek için kullanılır ve HTuple kontrol verileri için kullanılır. Nesne yönelimli stil için, merkezi işlevsellik için HDataCode2d, HMeasure veya HShapeModel gibi sınıflar sağlanır. Ek olarak, ikonik veriler için sınıflar, örneğin HImage veya HRegion mevcuttur.

Example
Aşağıdaki kod bir görüntüyü okur ve içindeki bağlı bölgelerin (sayfa 10) sayısını hesaplar.
HImage img = yeni HImage(“pcb”);
HBölge bölgesi = img.Threshold(0d, 122d);
int numRegions = bölge.Connection().CountObj();
Console.WriteLine(“Bölge Sayısı: ” + bölge sayısı);

Önkoşullar ve ayrıntılı bir gözden geçirme için lütfen Programcı Kılavuzu, Bölüm 3, A First Ex'e bakın.ampley.

Görüntü Edinme Arayüzleri

HALCON'un görüntü alma arayüzleri, görüntü alma cihazının üreticisi tarafından sağlanan yazılım ile HALCON arasında bir köprü oluşturur. Yalnızca küçük bir operatör kümesi gerektiren ortak, genel bir arabirim oluştururlar. Bu konu hakkında ayrıntılı bilgi için lütfen Çözüm Kılavuzu II-A'ya bakın.
Şu anda HALCON, 50'den fazla çerçeve yakalayıcı ve yüzlerce endüstriyel kamera için dinamik olarak yüklenebilen kitaplıklar (Windows: DLL'ler; Unix benzeri sistemler: paylaşılan kitaplıklar) biçiminde arabirimler sağlar. Kitaplık adları hAcq önekiyle başlar; xl son eki ile biten kitaplıklar HALCON XL tarafından kullanılır.
Endüstri standartlarına dayalı en yaygın kullanılan arabirimler, HALCON kitaplıklarıyla birlikte zaten kuruludur. Halihazırda dahil olan arayüzlerin en son sürümlerinin yanı sıra ek arayüzler şu adresten indirilebilir: https://www.mvtec.com/products/interfaces. HALCON görüntü alma arabirimleri, HALCON kitaplığının kendisinden daha sık değişebilir. Bunun bir nedeni, MVTec'in sürekli olarak yeni arayüzler geliştirmesidir; ayrıca, görüntü alma cihazlarının üreticileri tarafından sağlanan yazılım değişirse, örneğin yeni özellikler entegre edilirse, karşılık gelen HALCON arayüzleri uyarlanacaktır. Lütfen desteklenen görüntü alma arabirimlerinin tam listesi için Görüntü Alma Arayüzü Referansına bakın.
Görüntü alma cihazınızı başarıyla kurduktan sonra, HALCON'dan ona erişmek için yapmanız gereken tek şey, görüntü alma arayüzünün adını ve örneğin bağlı kamerayla ilgili bazı ek bilgileri belirterek open_framegrabber operatörünü aramaktır. Ardından, grab_image (veya grab_image_async) operatörü çağrılarak görüntüler yakalanabilir.

I / O arabirimleri

HALCON, veri toplamayı etkinleştirmek için birkaç G/Ç cihazı için arayüzler sağlar. Bu arabirimler, dinamik olarak yüklenebilen kitaplıklar olarak mevcuttur (Windows: DLL'ler; Unix benzeri sistemler: paylaşılan kitaplıklar). Kitaplık adları hio önekiyle başlar; xl son eki ile biten kitaplıklar HALCON XL tarafından kullanılır.
HALCON I/O cihaz arayüzleri, küçük bir operatör seti kullanarak farklı I/O cihazlarına birleşik erişim sağlar. G/Ç cihazınızı kurduktan sonra, open_io_device operatörü kullanılarak, G/Ç cihazı arayüzünün adını ve isteğe bağlı olarak bazı cihaza özgü parametreleri belirterek bir bağlantı kurulur. Bağlantı kurulduktan sonra open_io_channel çağrılarak bir iletim kanalı açılabilir. Bu kanalda değerleri okumak ve yazmak için sırasıyla read_io_channel ve write_io_channel operatörlerini kullanın.
Lütfen HALCON G/Ç cihaz arabirimlerinin HALCON kitaplığının kendisinden daha sık değişebileceğini unutmayın. İndirilebilir arayüzlerle (belgeler dahil) birlikte en son bilgileri aşağıdaki adreste bulabilirsiniz. https://www.mvtec.com/products/interfaces. Lütfen desteklenen G/Ç aygıt arabirimlerinin tam listesi için G/Ç Aygıt Arabirimi Referansına bakın.

Uygulamalar Nasıl Geliştirilir?

HALCON yapay görme kitaplığı için etkileşimli geliştirme ortamı olan HDevelop'ta hızlı prototip oluşturmaya başlamanızı öneririz. Görüntü analizi görevinizi çözmek için en uygun operatörleri ve parametreleri bulmak üzere HDevelop'u kullanabilirsiniz. Verilen gereksinimlere göre bir HDevelop programı geliştirdikten sonra nihai ortamına çevrilmesi gerekir. Bunun için tercihlerinize bağlı olarak aşağıdaki üç yaklaşımdan birini seçebilirsiniz:

  • Sıfırdan başlamak: Programınızı sıfırdan yazmak, HDevelop kodunuzu manuel olarak hedef programlama diline (C++, Python…) çevirmek anlamına gelir. Daha önce bahsedildiği gibi, işleçlerin adlandırma kuralları, sınıfların adları vb. programlama dilleri arasında farklılık gösterebilir. Desteklenen her programlama dili için HALCON operatör imzalarını almak için HALCON Operatör Referansına bir göz atın. Uygulamaları istediğiniz hedef dilde nasıl oluşturacağınız hakkında bilgi için lütfen Programcı Kılavuzu'nu okuyun.
  • HDevelop Kodunu Dışa Aktar: HDevelop'un kod dışa aktarma özelliğini kullanarak HDevelop kodunuzu otomatik olarak hedef programlama diline çevirin.
  • Kitaplığı Dışa Aktarma Projesi: HDevelop'un kitaplık dışa aktarımı, hedef dildeki sarmal kod ve CMake dahil olmak üzere kullanıma hazır bir proje klasörü oluşturur. file projeyi oluşturmak için. HDevelop'un kitaplık dışa aktarımı, yorumlayıcı görevi gören bir kitaplık olan HDevEngine'i kullanır. HDevEngine, C++ ile yazılmış bir uygulamadan veya .NET nesnelerini entegre edebilen herhangi bir dilden HDevelop programlarını veya prosedürlerini doğrudan yürütmenizi sağlar. Böylece, HDevelop kodunda değişiklik yaparken tüm uygulamayı yeniden derlemeniz gerekmez.
    Elbette, HDevEngine'i HDevelop'un kitaplık dışa aktarma işlevini kullanmadan da kullanabilirsiniz. HDevEngine'in nasıl kullanılacağı, Programcı Kılavuzu, Bölüm 6'da (HDevEngine Kullanımı) ayrıntılı olarak açıklanmaktadır.
HDgeliştir

Önce HDevelop'a bir göz atalım. Şekil 3.1, bir program yüklendikten ve kısmen çalıştırıldıktan sonra HDevelop'un kullanıcı arayüzünü göstermektedir.
Varsayılan olarak, HDevelop ile geliştirme için de gerekli olan bu pencereler görünür durumdadır:

  1. Grafik Penceresi Görüntüler, bölgeler ve XLD'ler gibi ikonik veriler (sayfa 10) gibi (ara) sonuçları görüntüler.
  2. Program Penceresi Burası, HALCON'un görüntü işleme yöntemlerine erişmek için operatörleri (sayfa 10) kullanarak program kodunuzu yazdığınız yerdir.
  3. Değişken Penceresi Tüm değişkenleri, yani ikonik değişkenleri ve kontrol değişkenlerini gösterir. İkonik değişkenler, ikonik verileri içerir (sayfa 10) ve kontrol değişkenleri, kontrol verilerini içerir (sayfa 10).

HDevelop ile ilgili ayrıntılı bilgiler HDevelop Kullanım Kılavuzu'nda bulunabilir. Öğretici videolarımız ayrıca HDevelop'a iyi bir giriş sunar:

  • HDevelop Eğitimi 01: GUI ve Navigasyon
  • HDevelop Eğitimi 02: Değişkenler
  • HDevelop Eğitimi 03: Görselleştirme

HALCON-21-11-İlerleme-02

Şekil 3.1: HDevelop Kullanıcı Arayüzü.

Example Programı

Artık HDevelop'un Kullanıcı Arayüzü ve HALCON'un temel kavramları (sayfa 9) ile tanıştığınıza göre, Kütüphane Dışa Aktarma Yaklaşımını kullanarak bir C++ uygulaması geliştirelim.
Aşağıdaki adım adım talimatlara ek olarak, öğretici videolarımızı izlemenizi öneririz: HDevelop kodunu Library Project Export'u kullanarak bir C++ uygulamasına entegre edin
Library Project Export'u kullanarak HDevelop kodunu bir C# uygulamasına entegre edin
Videolar, kitaplığın dışa aktarılmasını gösterir ve konu hakkında daha fazla arka plan bilgisi sağlar.

HDevelop'ta Prototip Oluşturun
Aşağıdaki ex'in göreviampBir görüntüyü okumak ve ona bağlı bölgelerin sayısını saymaktır.

  1. HDevelop'u açın ve Program Penceresine aşağıdaki kodu girin:
    read_image (Resim, 'pcb')
    eşik (Resim, Bölge, 0, 122)
    bağlantı (Bölge, ConnectedRegions)
    count_obj (ConnectedRegions, Sayı)
  2. Araç çubuğunda Çalıştır'a tıklayarak veya F5'e basarak programınızı test edin.

Bu HDevelop kodunu gerçek bir uygulamaya kolayca entegre etmek için yapay görme bölümünü yerel bir prosedürde kapsıyoruz.

  1. Aşağıdaki kod satırlarını vurgulayın: eşik (Görüntü, Bölge, 0, 122) bağlantı (Bölge, ConnectedRegions) count_obj (ConnectedRegions, Number)
  2. Bağlam menüsünü açmak için sağ tıklayın.
  3. Yeni Prosedür Oluştur'u seçin.
  4. Count_regions olarak adlandırın.
  5. Parametreler'i seçin ve Seçim Şeması'nı İlk Giren, Son Çıkan olarak değiştirin.
  6. Tamam'a tıklayarak onaylayın.
  7. HDevelop programınızı hdev_count_regions.hdev olarak kaydedin

Visual Studio Projesi Hazırlayın
Bu eskiample, Visual Studio 2019 kullanacağız. 1

  1. Boş bir C++ Windows Konsolu projesi oluşturun ve buna vs_count_regions adını verin. Lütfen Çözümü ve projeyi aynı dizine yerleştir seçeneğini etkinleştirin. 2
  2. Bir C++ kaynağı ekleyin file (Menü Projesi Yeni Öğe Ekle… C++ File) ve vs_count_regions.cpp olarak adlandırın.
  3. Araç çubuğundaki açılır menüden x64 çözüm platformunu seçin.
  4. Proje özelliklerinizi açın (Menu Project vs_count_regions Properties…) ve aşağıdaki ayarları yapın:
    • C/C++ Genel'i seçin ve aşağıdaki Ek Dahil Etme Dizinlerini ekleyin:$(HALCONROOT)\include;$(HALCONROOT)\include\halconcpp;
    • Bağlayıcı Genel'i seçin ve aşağıdaki Ek Kitaplık Dizini'ni ekleyin:$(HALCONROOT)\lib\$(HALCONARCH);
    • Bağlayıcı Girişi'ni seçin ve aşağıdaki Ek Bağımlılıkları ekleyin: halconcpp.lib;hdevenginecpp.lib;

Kitaplık Projesini Dışa Aktar
Ardından, HDevelop programımız hdev_count_regions.hdev'i Visual Studio proje klasörümüze aktarıyoruz.

  1. Önceden oluşturulmuş HDevelop programı hdev_count_regions.hdev'i açın.
  2. Açık File  Kitaplık Projesini Dışa Aktar…
  3. Aşağıdaki ayarları yapın:
    • Giriş file: Mevcut Program
    • Hedef Dil: C++
    • Proje Adı: hdev_count_regions
    • Proje Konumu: Visual Studio projemizin vs_count_regions konumunu seçin.
    • Ad alanı: hdev_count_regions
  4. Dışa Aktar ile onaylayın.

Şimdi, Visual Studio proje klasörünüz vs_count_regions en azından aşağıdaki verileri içermelidir:

  • vs_count_regions.cpp (Kaynak File)
  • vs_count_regions.sln (Çözüm)
  • hdev_count_regions (HDevelop Dışa Aktarma Klasörü)
    • cmake
    • res_ hdev_ bölge sayısı
    • hdev _ sayı_ bölge. hdev
  •  kaynak
    • hdev_count_regions.cpp
    • hdev_count_regions.h
    • CMakeLists.txt

Kütüphane Projesi'ni Visual Studio'ya entegre edin
Son olarak HDevelop programını Visual Studio Projemize entegre etmemiz gerekiyor.

  1. Visual Studio Projesini açın.
  2. Project Add Existing Item'ı açın… ve C++'ı seçin file hdev_count_regions.cpp ve başlık file hdev_count_regions.h, HDevelop'un Library Export tarafından oluşturulmuştur. ( files hdev_count_regions source klasöründe bulunur.)
  3. Aşağıdaki kodu vs_count_regions.cpp'ye girin:
    #katmak
    #include “HalconCpp.h”
    #include “hdev_count_regions/source/hdev_count_regions.h”
    int ana()
    {
    HalconCpp::HImage Image(“pcb”);
    hdev_count_regions::SetResourcePath(“hdev_count_regions/res_hdev_count_regions”);
    HalconCpp::HTuple Numarası{};
    hdev_count_regions::count_regions(Resim, &Sayı);
    std::cout << “Bölge Sayısı: ” << Number.L() << '\n';
    }
  4. Programı yürütün. → 'Bölge sayısı: 43' sonucunu gösteren bir konsol açılır.

Nasıl Devam Edilir?

HALCON'a daha derinlemesine dalmak için daha fazla belge ve destek sunuyoruz.

  • HDevelop Eskiample Programlar
    HALCON, kapsamlı bir eski model seti sağlar.ample programlar, sadece HDevelop için değil, farklı programlama dilleri için de. Bunlar eskiampdosyalar, % HALCONEX ortam değişkeni ile gösterilen dizinde bulunabilirAMPLES% veya değişken ayarlanmamışsa ex alt dizindeampHALCON'u yüklediğiniz klasörün dosyaları.
    Eski bir HDevelop açmak içinample program, menüyü seçin File  HDevelop Ex'e göz atınample Programlar…. Yeni başlayanlar için bir eski model seçmenizi öneririz.ampUygulama alanından le.
  • Hizmetler ve Destek
    Bizim webalan https://www.mvtec.com/services-support çeşitli destekler sunar, örneğinampöğretici videolar, atölyeler ve eğitimler hakkında bilgiler, ipuçları ve püf noktaları sağlayan geliştiriciler köşesi ve çok daha fazlası.
  • HALCON Belgeleri
    Dokümantasyon, başlangıç ​​konularından uzman bilgisine kadar zengin bir bilgi sağlar. eski içinample, Çözüm Kılavuzlarımız yapay görme yöntemlerini ve bunların HDevelop'ta nasıl uygulanacağını açıklar. Size ana yapay görme yöntemlerini tanıtan Çözüm Kılavuzu I iyi bir başlangıç ​​noktasıdır.
    Bir fazlaview Tüm kılavuzların kısa açıklamaları, belgelerin giriş sayfasında bulunabilir.

Belgeler / Kaynaklar

HALCON 21.11 İlerleme [pdf] Kullanıcı Kılavuzu
21.11 İlerleme, 21.11, İlerleme

Referanslar

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar işaretlenmiştir *