HALCON 21.11 Kemajuan

Akses pantas kepada fungsi HALCON, Versi 21.11.0.0
Hak cipta terpelihara. Tiada bahagian daripada penerbitan ini boleh diterbitkan semula, disimpan dalam sistem perolehan semula, atau dihantar dalam sebarang bentuk atau dengan sebarang cara, elektronik, mekanikal, fotokopi, rakaman, atau sebaliknya, tanpa kebenaran bertulis daripada penerbit terlebih dahulu.
Hak Cipta © 2003-2021 oleh MVTec Software GmbH, München, Jerman
Dilindungi oleh paten berikut: 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. Paten lanjut belum selesai.
Microsoft, Windows, Windows Server 2008/2012/2012 R2/2016, Windows 7/8/8.1/10, Microsoft .NET, Visual C++ dan Visual Basic ialah sama ada tanda dagangan atau tanda dagangan berdaftar Microsoft Corporation.
Linux ialah tanda dagangan Linus Torvalds.
macOS dan OpenCL ialah tanda dagangan Apple Inc.
NVIDIA, CUDA, cuBLAS dan cuDNN adalah sama ada tanda dagangan atau tanda dagangan berdaftar NVIDIA Corporation.
OpenGL ialah tanda dagangan Silicon Graphics, Inc.
Semua tanda dagangan dan nama dagangan lain yang diiktiraf di peringkat kebangsaan dan antarabangsa adalah dengan ini diiktiraf.
Maklumat lanjut tentang HALCON boleh didapati di: http://www.halcon.com/
Mengenai Manual Ini
Manual ini memperkenalkan anda kepada HALCON. Ia bertujuan untuk pemula tanpa pengetahuan awal tentang HALCON.
Manual ini juga boleh digunakan sebagai panduan rujukan kepada beberapa manual HALCON lain, kerana ia menghubungkannya sepanjang topik berikut:
- Memasang HALCON (halaman 7)
Bab ini memperkenalkan Pengurus Perisian MVTec (SOM). - Seni Bina HALCON (halaman 9)
Beberapa latar belakang teori, diperlukan untuk memahami apa itu HALCON dan cara ia berfungsi. - Cara Membangunkan Aplikasi (halaman 15)
Bab ini menerangkan tiga pendekatan asas untuk membangunkan dengan HALCON dan membimbing anda melalui bekas pengaturcaraan pertamaample. - Bagaimana untuk Meneruskan (halaman 19)
Bab ini merujuk kepada sumber maklumat tambahan.
Memasang HALCON
Untuk pengguna Linux dan Windows, kami mengesyorkan memuat turun dan memasang HALCON melalui Pengurus Perisian MVTec (SOM). SOM ialah pengurus pemasangan untuk pakej perisian. Ia menyediakan akses kepada cata-log jauh produk, dan menyokong, antara ciri lain, memuat turun dan memasang pakej. Pengenalan langkah demi langkah tentang cara memasang HALCON melalui SOM boleh didapati dalam Panduan Pemasangan.
Seni Bina HALCON
Seni bina asas HALCON digambarkan dalam rajah 2.1. Bahagian utama ialah perpustakaan pemprosesan imej, yang terdiri daripada lebih daripada 2000 pengendali. Anda juga boleh membangunkan operator anda sendiri dalam bentuk pakej ex-tension yang dipanggil (halaman 11). Anda menggunakan operator dalam aplikasi anda melalui antara muka bahasa (halaman 11) seperti HALCON/C++ atau HALCON/Python. Ini adalah perpustakaan yang membenarkan penggunaan langsung pengendali dalam gaya pengaturcaraan biasa bahasa pengaturcaraan yang berbeza.

Rajah 2.1: Seni bina asas HALCON.
Untuk akses peranti pemerolehan imej, HALCON menyediakan antara muka pemerolehan imej (halaman 13) yang membolehkan anda menggunakan peranti pemerolehan yang agak berbeza dengan cara yang sama. Perpustakaan yang mengandungi pelaksanaan khusus peranti dimuatkan secara dinamik apabila diperlukan. Dengan cara yang sama, peranti I/O diakses melalui antara muka I/O khusus peranti (halaman 13).
Operator
Apabila apa-apa jenis fungsi digunakan daripada perpustakaan HALCON, ia dilakukan melalui pengendali. Kebanyakannya terdiri daripada pelbagai kaedah, yang dipilih melalui parameter. Senarai penuh semua operator boleh didapati dalam Rujukan Operator HALCON yang tersedia dalam sintaks HDevelop, .NET, Python, C++ dan C. Ciri penting pengendali ialah:
- Tiada hierarki di kalangan pengendali. Dari sudut seni bina perisian view, semua operator berada pada tahap yang sama.
- Sudah tentu, terdapat kumpulan pengendali yang logik. Untuk exampOleh itu, ini boleh dilihat oleh kelas yang ditawarkan untuk C++ dan .NET, di mana pengendali memproses jenis data yang sama adalah fungsi ahli kelas yang sepadan.
- Reka bentuk pengendali mengikut peraturan seni bina terbuka. Oleh itu, anda boleh mencipta op-erator anda sendiri dan dengan itu memanjangkan HALCON (lihat bahagian 2.2). Manual Pengaturcara Pakej Sambungan mengandungi maklumat terperinci tentang melanjutkan perpustakaan pengendali.
- Banyak pengendali boleh menggunakan selari automatik secara telus, yang membolehkan cara mudah untuk mempercepatkan atur cara apabila menggunakan imej besar pada komputer berbilang pemproses atau berbilang teras. Maklumat terperinci tentang pengaturcaraan selari boleh didapati dalam nota teknikal Pengaturcaraan Selari, serta dalam Panduan Program-mer.
- Operator mempunyai peraturan piawai untuk memesan parameter input dan output: ikonik input, ikonik output, kawalan input dan kawalan output (lihat bahagian 2.1.1). Tidak semua kumpulan mungkin diperlukan untuk pengendali tertentu. Secara umum, parameter input operator tidak diubah suai, yang menghasilkan semantik yang jelas dan mudah. Terdapat hanya beberapa pengecualian untuk reka bentuk ini, cth, set_grayval, overpaint_gray dan overpaint_region.
Parameter dan Struktur Data
HALCON mempunyai dua jenis parameter asas: data ikonik dan data kawalan. Imej, wilayah dan XLD (Penerangan Talian eXtented) tergolong dalam data ikonik.
Imej terdiri terutamanya daripada saluran, iaitu, matriks yang mengandungi nilai piksel. Semua saluran imej mempunyai saiz yang sama. Untuk maklumat terperinci tentang piksel dan saluran, sila baca bab "Imej" Rujukan Operator HALCON.
Untuk setiap imej, kawasan yang dipanggil kepentingan (ROI) menentukan bahagian mana imej yang diproses. ROI boleh ditakrifkan dengan sangat fleksibel (dari segi empat tepat ringkas kepada satu set piksel tidak bersambung). Untuk butiran tentang pengendalian ROI lihat Panduan Penyelesaian I, Wilayah Menarik pada halaman 27.
kawasan ialah satu set piksel. Piksel sesuatu rantau tidak perlu disambungkan. Malah koleksi piksel sewenang-wenangnya boleh dikendalikan sebagai satu rantau. Dengan sambungan operator kawasan boleh dibahagikan kepada kawasan yang disambungkan, iaitu, komponen yang terdiri daripada piksel bersambung.
XLD merangkumi semua data berasaskan kontur dan poligon. Pengendali tepat subpiksel seperti edges_sub_pix mengembalikan kontur sebagai data XLD. Kontur ialah jujukan titik kawalan 2D, yang disambungkan dengan garisan. Biasanya, jarak antara titik kawalan adalah kira-kira satu piksel. Objek XLD mengandungi, selain titik kawalan, apa yang dipanggil atribut tempatan dan global. Biasa examples untuk ini ialah, contohnya, tepi amplitud titik kawalan atau parameter regresi segmen kontur. Selain pengekstrakan objek XLD, HALCON menyokong pemprosesan selanjutnya. Cthamples untuk ini ialah pemilihan kontur berdasarkan julat ciri yang diberikan untuk pembahagian kontur kepada garisan, lengkok, poligon atau selari.
Data kawalan termasuk pemegang dan jenis data asas seperti integer, nyata, rentetan.
Mengendalikan adalah rujukan kepada struktur data yang kompleks, contohnya, sambungan kepada antara muka pemerolehan imej atau model untuk padanan berasaskan bentuk. Atas sebab kecekapan dan keselamatan data, bukan keseluruhan struktur tetapi hanya pemegang diluluskan antara pengendali. Pemegang ialah nilai ajaib yang tidak boleh diubah dan boleh berbeza daripada pelaksanaan ke pelaksanaan dan versi ke versi. Ia secara automatik dikosongkan sebaik sahaja semua rujukan ditimpa. Cthamptempat pemegang digunakan ialah tingkap grafik, files, soket, antara muka pemerolehan imej, OCR, OCV, pengukuran dan pemadanan.
Pakej Sambungan
HALCON mungkin dilanjutkan oleh pengendali baharu. Walaupun HALCON sudah mengandungi set pengendali yang banyak untuk pelbagai tugas, anda mungkin ingin melaksanakan pengendali baharu, contohnya, untuk mengakses perkakasan khas atau melaksanakan algoritma alternatif. Untuk berbuat demikian, HALCON menyediakan Antara Muka Pakej Sambungan, yang membenarkan penyepaduan pengendali baharu (dilaksanakan dalam C) dalam bentuk pakej sambungan yang dipanggil. Antara Muka Pakej Sambungan mengandungi beberapa rutin dan makro yang dipratentukan untuk memudahkan pengendalian data imej dan objek memori dalam C. Sebaik sahaja pengendali baharu berjaya disepadukan, ia boleh digunakan seperti mana-mana pengendali HALCON yang lain. Manual Pengaturcara Pakej Sambungan mengandungi maklumat terperinci tentang melanjutkan perpustakaan pengendali.
Antaramuka Bahasa
Seperti yang ditunjukkan dalam rajah 2.1 di halaman 9, HALCON menyediakan antara muka bahasa yang dipanggil. Ini adalah pengikatan bahasa ibunda, yang membolehkan anda memanggil pengendali dan menggunakan jenis data HALCON terus dari dalam aplikasi anda, sama ada Python, C, C++ atau .NET.
Untuk memulakan pembangunan, kami mengesyorkan agar anda menyemak dahulu salah satu bekas sedia untuk dijalankanampprogram le. Di sini, anda boleh melihat cara projek mesti disediakan dan cara pengendali dan jenis digunakan.
Untuk setiap antara muka bahasa, nama jenis, kelas, konvensyen penamaan pengendali, dsb. mungkin berbeza untuk mematuhi peraturan biasa yang digunakan untuk bahasa yang dipilih. Tandatangan operator untuk bahasa pengaturcaraan yang disokong didokumenkan dalam Rujukan Operator HALCON.
HALCON/Python
Antara muka Python menonjol kerana kesederhanaannya dan keupayaannya untuk prototaip pantas. Pengendali HALCON dipanggil terus sebagai fungsi kendiri, selepas mengimport modul HALCON/Python. Perhatikan juga bahawa parameter operator dalam HALCON/Python dibahagikan kepada parameter fungsi (input) dan nilai pulangan (output).
Example
Kod berikut membaca imej dan mengira bilangan kawasan bersambung (halaman 10) di dalamnya.
img = ha.read_image('pcb')
rantau = ha.ambang(img, 0, 122)
num_regions = ha.count_obj(ha.connection(region))
print(f'Bilangan Kawasan: {num_regions}')
Untuk prasyarat dan panduan terperinci, sila lihat Panduan Pengaturcara, Bahagian 4, Bekas Pertamaample.
HALCON/C
Antara muka C ialah antara muka paling ringkas yang disokong oleh HALCON. Setiap operator diwakili oleh sama ada satu atau dua fungsi global di mana nama operator dan jujukan parameter adalah sama dengan bahasa HDvelop.
Example
Kod berikut membaca imej dan mengira bilangan kawasan bersambung (halaman 10) di dalamnya.
Hobject img;
read_image(&img, “pcb”);
rantau Hobject;
ambang(img, ®ion, 0, 122);
Hobject connected_regions;
sambungan(wilayah, &wilayah_sambungan);
Hlong num_regions = 0;
count_obj(connected_regions, &num_regions);
printf(“Bilangan Kawasan: %” PRIdPTR “\n”, num_regions);
Untuk prasyarat dan panduan terperinci, sila lihat Panduan Pengaturcara, Bahagian 5, Bekas Pertamaample.
HALCON/C++
Antara muka C++ jauh lebih canggih daripada antara muka C. Di sini, advantages C++ dan pengaturcaraan berorientasikan objek digunakan, iaitu, penukaran jenis automatik, pembinaan dan pemusnahan, atau mengelompokkan fungsi bersama datanya ke dalam kelas. Seperti dalam antara muka C, fungsi global untuk setiap pengendali HALCON disediakan untuk gaya prosedur pengaturcaraan.
Example
Kod berikut membaca imej dan mengira bilangan kawasan bersambung (halaman 10) di dalamnya.
HImage img{“pcb”};
Rantau HR = img.Ambang(0, 122);
Hlong numRegions = region.Connection().CountObj();
std::cout << “Bilangan Wilayah: ” << numRegions << '\n';
Untuk prasyarat dan panduan terperinci, sila lihat Panduan Pengaturcara, Bahagian 2, Bekas Pertamaample.
HALCON/.NET
C# dan Visual Basic .NET menggunakan HALCON melalui antara muka .NET.
Secara analog kepada C++, dua gaya pengaturcaraan ditawarkan: prosedur dan berorientasikan objek. Untuk gaya prosedur, kelas HOperatorSet menyediakan semua pengendali HALCON, di mana HObject digunakan untuk mengendalikan data ikonik dan HTuple digunakan untuk data kawalan. Untuk gaya berorientasikan objek, kelas seperti HDataCode2d, HMeasure atau HShapeModel disediakan untuk fungsi pusat. Selain itu, kelas untuk data ikonik, cth, HImage atau HRegion, tersedia.
Example
Kod berikut membaca imej dan mengira bilangan kawasan bersambung (halaman 10) di dalamnya.
HImage img = new HImage(“pcb”);
Rantau HR = img.Ambang(0d, 122d);
int numRegions = region.Connection().CountObj();
Console.WriteLine(“Bilangan Kawasan: ” + numRegions);
Untuk prasyarat dan panduan terperinci, sila lihat Panduan Pengaturcara, Bahagian 3, Bekas Pertamaample.
Antara Muka Pemerolehan Imej
Antara muka pemerolehan imej HALCON membentuk jambatan antara perisian yang disediakan oleh pengilang peranti pemerolehan imej dan HALCON. Mereka membentuk antara muka umum dan generik yang memerlukan set kecil pengendali sahaja. Sila rujuk kepada Panduan Penyelesaian II-A untuk maklumat terperinci tentang topik ini.
Pada masa ini, HALCON menyediakan antara muka untuk lebih daripada 50 perebut bingkai dan ratusan kamera industri dalam bentuk perpustakaan yang boleh dimuatkan secara dinamik (Windows: DLL; sistem seperti Unix: perpustakaan kongsi). Nama perpustakaan bermula dengan awalan hAcq; perpustakaan yang berakhir dengan akhiran xl digunakan oleh HALCON XL.
Antara muka yang paling banyak digunakan berdasarkan piawaian industri telah dipasang bersama-sama dengan perpustakaan HALCON. Antara muka tambahan, serta versi terkini antara muka yang telah disertakan boleh dimuat turun di bawah https://www.mvtec.com/products/interfaces. Antara muka pemerolehan imej HALCON mungkin berubah lebih kerap daripada perpustakaan HALCON itu sendiri. Satu sebab untuk ini ialah MVTec terus membangunkan antara muka baharu; tambahan pula, jika perisian yang disediakan oleh pengeluar peranti pemerolehan imej berubah, contohnya, jika ciri baharu disepadukan, antara muka HALCON yang sepadan akan disesuaikan. Sila rujuk juga Rujukan Antara Muka Pemerolehan Imej untuk senarai penuh antara muka pemerolehan imej yang disokong.
Sebaik sahaja anda berjaya memasang peranti pemerolehan imej anda, semua yang anda perlu lakukan untuk mengaksesnya daripada HALCON ialah memanggil operator open_framegrabber, dengan menyatakan nama antara muka pemerolehan imej dan beberapa maklumat tambahan, contohnya, mengenai kamera yang disambungkan. Kemudian, imej boleh diambil dengan memanggil operator grab_image (atau grab_image_async).
Antara Muka I/O
HALCON menyediakan antara muka untuk beberapa peranti I/O untuk membolehkan pemerolehan data. Antara muka ini tersedia sebagai perpustakaan yang boleh dimuat secara dinamik (Windows: DLL; sistem seperti Unix: perpustakaan kongsi). Nama perpustakaan bermula dengan awalan hio; perpustakaan yang berakhir dengan akhiran xl digunakan oleh HALCON XL.
Antara muka peranti HALCON I/O menyediakan akses bersatu kepada peranti I/O yang berbeza menggunakan set kecil operator. Selepas anda memasang peranti I/O anda, sambungan dibuat menggunakan operator open_io_device, dengan menyatakan nama antara muka peranti I/O dan, secara pilihan, beberapa parameter khusus peranti. Setelah sambungan diwujudkan, saluran penghantaran boleh dibuka dengan memanggil open_io_channel. Untuk membaca dan menulis nilai pada saluran ini, gunakan operator read_io_channel dan write_io_channel, masing-masing.
Sila ambil perhatian bahawa antara muka peranti HALCON I/O mungkin berubah lebih kerap daripada perpustakaan HALCON itu sendiri. Anda boleh mendapatkan maklumat terkini bersama antara muka yang boleh dimuat turun (termasuk dokumentasi) di bawah https://www.mvtec.com/products/interfaces. Sila rujuk juga Rujukan Antara Muka Peranti I/O untuk senarai penuh antara muka peranti I/O yang disokong.
Cara Membangunkan Aplikasi
Kami mengesyorkan agar anda bermula dengan prototaip pantas dalam HDevelop, persekitaran pembangunan interaktif untuk perpustakaan penglihatan mesin HALCON. Anda boleh menggunakan HDevelop untuk mencari operator dan parameter optimum untuk menyelesaikan tugas analisis imej anda. Selepas membangunkan program HDevelop mengikut keperluan yang diberikan, ia perlu diterjemahkan ke dalam persekitaran terakhirnya. Untuk ini, anda boleh memilih antara tiga pendekatan berikut, bergantung pada pilihan anda:
- Bermula dari Scratch: Menulis program anda dari awal bermakna menterjemahkan kod HDvelop anda ke dalam bahasa pengaturcaraan sasaran (C++, Python…) secara manual. Seperti yang dinyatakan sebelum ini, konvensyen penamaan pengendali, nama kelas, dsb., mungkin berbeza antara bahasa pengaturcaraan. Sila lihat Rujukan Operator HALCON untuk mendapatkan tandatangan pengendali HALCON bagi setiap bahasa pengaturcaraan yang disokong. Untuk maklumat tentang cara membuat aplikasi dalam bahasa sasaran yang anda inginkan, sila baca Panduan Pengaturcara.
- Eksport Kod Pembangunan HD: Terjemahkan kod HDevelop anda ke dalam bahasa pengaturcaraan sasaran secara automatik menggunakan eksport kod HDevelop.
- Projek Perpustakaan Eksport: Eksport perpustakaan HDevelop menjana folder projek sedia untuk digunakan, termasuk kod bungkus setiap dalam bahasa sasaran dan CMake file untuk membina projek. Eksport perpustakaan HDevelop menggunakan HDevEngine, perpustakaan yang bertindak sebagai penterjemah. HDevEngine membolehkan anda melaksanakan program atau prosedur HDevelop secara langsung daripada aplikasi yang ditulis dalam C++ atau mana-mana bahasa yang boleh menyepadukan objek .NET. Oleh itu, anda tidak perlu menyusun semula keseluruhan aplikasi apabila membuat perubahan pada kod HDevelop.
Sudah tentu, anda boleh menggunakan HDevEngine tanpa menggunakan fungsi eksport perpustakaan HDevelop. Cara menggunakan HDevEngine diterangkan secara terperinci dalam Panduan Pengaturcara, Bahagian 6 (Menggunakan HDevEngine).
HDperkembangan
Mari kita lihat pertama pada HDevelop. Rajah 3.1 menunjukkan antara muka pengguna HDevelop, selepas program dimuatkan dan sebahagiannya telah dilaksanakan.
Secara lalai, tetingkap ini boleh dilihat, yang juga penting untuk dibangunkan dengan HDevelop:
- Tetingkap Grafik Memaparkan hasil (perantaraan), iaitu data ikonik (halaman 10) seperti imej, wilayah dan XLD.
- Tetingkap Program Di sinilah anda menaip kod program anda, menggunakan operator (halaman 10) untuk mengakses kaedah pemprosesan imej HALCON.
- Tetingkap Pembolehubah Menunjukkan semua pembolehubah, iaitu pembolehubah ikonik dan pembolehubah kawalan. Pembolehubah ikonik mengandungi data ikonik (halaman 10) dan pembolehubah kawalan mengandungi data kawalan (halaman 10).
Maklumat terperinci tentang HDevelop boleh didapati dalam Panduan Pengguna HDevelop. Video tutorial kami juga menawarkan pengenalan yang baik kepada HDevelop:
- Tutorial HDevelop 01: GUI dan Navigasi
- Tutorial HDevelop 02: Pembolehubah
- Tutorial HDevelop 03: Visualisasi

Rajah 3.1: Antara Muka Pengguna HDvelop.
Example Program
Memandangkan anda telah diperkenalkan dengan Antara Muka Pengguna HDevelop dan konsep asas HALCON (halaman 9), mari bangunkan aplikasi C++ menggunakan Pendekatan Eksport Perpustakaan.
Sebagai tambahan kepada arahan langkah demi langkah berikut, kami mengesyorkan agar anda menonton video tutorial kami: Integrasikan kod HDevelop ke dalam aplikasi C++ menggunakan Eksport Projek Perpustakaan
Integrasikan kod HDevelop ke dalam aplikasi C# menggunakan Eksport Projek Perpustakaan
Video menunjukkan eksport perpustakaan dan memberikan lebih banyak maklumat latar belakang tentang topik tersebut.
Buat Prototaip dalam HDvelop
Tugas ex berikutampadalah untuk membaca imej dan mengira bilangan kawasan yang disambungkan padanya.
- Buka HDevelop dan masukkan kod berikut ke dalam Tetingkap Program:
read_image (Imej, 'pcb')
ambang (Imej, Wilayah, 0, 122)
sambungan (Region, ConnectedRegions)
count_obj (ConnectedRegions, Number) - Uji program anda dengan mengklik Jalankan dalam bar alat atau menekan F5 .
Untuk menyepadukan kod HDevelop ini dengan mudah ke dalam aplikasi sebenar, kami merangkum bahagian penglihatan mesin dalam prosedur tempatan.
- Serlahkan baris kod berikut: ambang (Imej, Wilayah, 0, 122) sambungan (Region, ConnectedRegions) count_obj (ConnectedRegions, Number)
- Klik kanan untuk membuka menu konteks.
- Pilih Buat Prosedur Baharu.
- Namakannya count_regions.
- Pilih Parameter dan tukar Skim Pemilihan kepada Masuk Pertama, Keluar Akhir.
- Sahkan dengan OK.
- Simpan program HDevelop anda sebagai hdev_count_regions.hdev
Sediakan Projek Visual Studio
Dalam bekas iniample, kami akan menggunakan Visual Studio 2019. 1
- Buat projek Windows Console C++ kosong dan namakannya vs_count_regions. Sila aktifkan pilihan Letakkan penyelesaian dan projek dalam direktori yang sama. 2
- Tambah sumber C++ file (Projek Menu Tambah Item Baharu… C++ File) dan namakannya vs_count_regions.cpp.
- Pilih platform penyelesaian x64 daripada menu lungsur turun dalam bar alat.
- Buka sifat projek anda (Projek Menu vs_count_regions Properties…) dan buat tetapan berikut:
- Pilih C/C++ General dan tambahkan Direktori Sertakan Tambahan berikut:$(HALCONROOT)\include;$(HALCONROOT)\include\halconcpp;
- Pilih Penghubung Umum dan tambahkan Direktori Perpustakaan Tambahan berikut:$(HALCONROOT)\lib\$(HALCONARCH);
- Pilih Input Penyambung dan tambah Ketergantungan Tambahan berikut: halconcpp.lib;hdevenginecpp.lib;
Projek Perpustakaan Eksport
Seterusnya, kami mengeksport program HDvelop kami hdev_count_regions.hdev ke dalam folder projek Visual Studio kami.
- Buka program HDvelop yang dibuat sebelum ini hdev_count_regions.hdev.
- Buka File Eksport Projek Perpustakaan…
- Buat tetapan berikut:
- Input file: Program Semasa
- Bahasa Sasaran: C++
- Nama Projek: hdev_count_regions
- Lokasi Projek: Pilih lokasi projek Visual Studio kami vs_count_regions.
- Ruang nama: hdev_count_regions
- Sahkan dengan Eksport.
Sekarang, folder projek Visual Studio anda vs_count_regions harus mengandungi sekurang-kurangnya data berikut:
- vs_count_regions.cpp (Sumber File)
- vs_count_regions.sln (Penyelesaian)
- hdev_count_regions (Folder daripada HDvelop Export)
- cmake
- res_ hdev_ count_ regions
- hdev _ count_ wilayah. hdev
- sumber
- hdev_count_regions.cpp
- hdev_count_regions.h
- CMakeLists.txt
Integrasikan Projek Perpustakaan ke dalam Visual Studio
Akhir sekali, kami perlu menyepadukan program HDevelop ke dalam Projek Visual Studio kami.
- Buka Projek Visual Studio.
- Buka Projek Tambah Item Sedia Ada… dan pilih C++ file hdev_count_regions.cpp dan pengepala file hdev_count_regions.h, dicipta oleh Eksport Perpustakaan HDevelop. (The files terletak dalam folder hdev_count_regions source.)
- Masukkan kod berikut ke dalam vs_count_regions.cpp:
#termasuk
#include “HalconCpp.h”
#include “hdev_count_regions/source/hdev_count_regions.h”
int utama()
{
HalconCpp::HImage Image("pcb");
hdev_count_regions::SetResourcePath(“hdev_count_regions/res_hdev_count_regions”);
HalconCpp::HTuple Number{};
hdev_count_regions::count_regions(Imej, &Nombor);
std::cout << “Bilangan Kawasan: ” << Bilangan.L() << '\n';
} - Laksanakan program. → Konsol dibuka, menunjukkan hasil 'Bilangan wilayah: 43'.
Bagaimana untuk Meneruskan
Untuk menyelam lebih dalam ke dalam HALCON, kami menawarkan dokumentasi dan sokongan lanjut.
- HDdevelop Cthample Programs
HALCON menyediakan set lengkap bekasampprogram, bukan sahaja untuk HDvelop tetapi juga untuk bahasa pengaturcaraan yang berbeza. Bekas iniamples boleh didapati dalam direktori yang dilambangkan dengan pembolehubah persekitaran % HALCONEXAMPLES% atau, jika pembolehubah tidak ditetapkan, dalam subdirektori examples folder di mana anda telah memasang HALCON.
Untuk membuka HDvelop exampprogram, pilih menu File Semak imbas HDevelop Cthample Program…. Untuk pemula, kami mengesyorkan untuk memilih bekasample dari kategori kawasan Aplikasi. - Perkhidmatan dan Sokongan
kami webtapak https://www.mvtec.com/services-support menawarkan pelbagai sokongan, contohnyaampvideo tutorial, maklumat tentang bengkel dan latihan, sudut pembangun menyediakan petua dan kiat, dan banyak lagi. - Dokumentasi HALCON
Dokumentasi menyediakan banyak maklumat, daripada topik pemula kepada pengetahuan pakar. Untuk exampOleh itu, Panduan Penyelesaian kami menerangkan kaedah penglihatan mesin dan cara menggunakannya dalam HDevelop. Titik permulaan yang baik ialah Panduan Penyelesaian I yang memperkenalkan anda kepada kaedah penglihatan mesin utama.
Berakhirview semua manual dengan penerangan ringkas boleh didapati di halaman kemasukan dokumentasi.
Dokumen / Sumber
![]() |
HALCON 21.11 Kemajuan [pdf] Panduan Pengguna 21.11 Kemajuan, 21.11, Kemajuan |





