HALCON 21.11 پیش رفت

HALCON، ورژن 21.11.0.0 کی فعالیت تک فوری رسائی
جملہ حقوق محفوظ ہیں. پبلشر کی پیشگی تحریری اجازت کے بغیر اس اشاعت کا کوئی حصہ دوبارہ پیش نہیں کیا جا سکتا، بازیافت کے نظام میں ذخیرہ کیا جا سکتا ہے، یا کسی بھی شکل میں یا کسی بھی طریقے سے، الیکٹرانک، مکینیکل، فوٹو کاپی، ریکارڈنگ، یا دوسری صورت میں منتقل نہیں کیا جا سکتا۔
کاپی رائٹ © 2003-2021 بذریعہ MVTec سافٹ ویئر GmbH، München، Germany
مندرجہ ذیل پیٹنٹ کے ذریعے محفوظ: 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 Corporation کے ٹریڈ مارک یا رجسٹرڈ ٹریڈ مارک ہیں۔
لینکس Linus Torvalds کا ٹریڈ مارک ہے۔
macOS اور OpenCL Apple Inc کے ٹریڈ مارک ہیں۔
NVIDIA، CUDA، cuBLAS، اور cuDNN یا تو NVIDIA Corporation کے ٹریڈ مارک یا رجسٹرڈ ٹریڈ مارک ہیں۔
OpenGL Silicon Graphics, Inc کا ٹریڈ مارک ہے۔
دیگر تمام قومی اور بین الاقوامی سطح پر تسلیم شدہ ٹریڈ مارکس اور ٹریڈ نام اس طرح تسلیم کیے جاتے ہیں۔
HALCON کے بارے میں مزید معلومات یہاں مل سکتی ہیں: http://www.halcon.com/
اس دستی کے بارے میں
یہ دستی آپ کو HALCON سے متعارف کراتی ہے۔ یہ HALCON کی پیشگی معلومات کے بغیر ابتدائی افراد کے لیے ہے۔
اس دستی کو HALCON کے کئی دیگر دستورالعمل کے حوالہ جات کے طور پر بھی استعمال کیا جا سکتا ہے، کیونکہ یہ ان کو درج ذیل موضوعات کے ساتھ جوڑتا ہے:
- HALCON انسٹال کرنا (صفحہ 7)
اس باب میں MVTec سافٹ ویئر مینیجر (SOM) کا تعارف کرایا گیا ہے۔ - HALCON آرکیٹیکچر (صفحہ 9)
کچھ نظریاتی پس منظر، یہ سمجھنے کے لیے ضروری ہے کہ HALCON کیا ہے اور یہ کیسے کام کرتا ہے۔ - درخواستیں تیار کرنے کا طریقہ (صفحہ 15)
یہ باب HALCON کے ساتھ ترقی کرنے کے لیے تین بنیادی طریقوں کی وضاحت کرتا ہے اور پہلے پروگرامنگ کے ذریعے آپ کی رہنمائی کرتا ہے۔ample - کیسے جاری رکھیں (صفحہ 19)
یہ باب معلومات کے اضافی ذرائع کا حوالہ دیتا ہے۔
HALCON انسٹال کرنا
لینکس اور ونڈوز کے صارفین کے لیے، ہم MVTec سافٹ ویئر مینیجر (SOM) کے ذریعے HALCON کو ڈاؤن لوڈ اور انسٹال کرنے کی تجویز کرتے ہیں۔ SOM سافٹ ویئر پیکجوں کے لیے انسٹالیشن مینیجر ہے۔ یہ پراڈکٹس کے ریموٹ کیٹا لاگ تک رسائی فراہم کرتا ہے، اور پیکجز کو ڈاؤن لوڈ اور انسٹال کرنے کے علاوہ دیگر خصوصیات کے ساتھ سپورٹ کرتا ہے۔ SOM کے ذریعے HALCON کو کیسے انسٹال کیا جائے اس کا مرحلہ وار تعارف انسٹالیشن گائیڈ میں پایا جا سکتا ہے۔
HALCON فن تعمیر
HALCON کے بنیادی فن تعمیر کو شکل 2.1 میں دکھایا گیا ہے۔ اہم حصہ امیج پروسیسنگ لائبریری ہے، جو 2000 سے زیادہ آپریٹرز پر مشتمل ہے۔ آپ نام نہاد ایکس ٹینشن پیکجز (صفحہ 11) کی شکل میں اپنے آپریٹرز بھی تیار کر سکتے ہیں۔ آپ اپنی ایپلیکیشن میں آپریٹرز کو زبان کے انٹرفیس (صفحہ 11) جیسے HALCON/C++ یا HALCON/Python کے ذریعے استعمال کرتے ہیں۔ یہ وہ لائبریریاں ہیں جو آپریٹرز کو مختلف پروگرامنگ زبانوں کے مخصوص پروگرامنگ انداز میں براہ راست استعمال کرنے کی اجازت دیتی ہیں۔

تصویر 2.1: HALCON کا بنیادی فن تعمیر۔
تصویر کے حصول کے آلات تک رسائی کے لیے، HALCON تصویر کے حصول کے انٹرفیس (صفحہ 13) فراہم کرتا ہے جو آپ کو ایک عام طریقے سے بالکل مختلف حصولی آلات استعمال کرنے کی اجازت دیتا ہے۔ ضرورت پڑنے پر آلہ کے مخصوص نفاذ پر مشتمل لائبریریوں کو متحرک طور پر لوڈ کیا جاتا ہے۔ اسی انداز میں، I/O آلات تک آلہ کے مخصوص I/O انٹرفیس (صفحہ 13) کے ذریعے رسائی حاصل کی جاتی ہے۔
آپریٹرز
جب بھی HALCON لائبریری سے کسی بھی قسم کی فعالیت کا استعمال کیا جاتا ہے، یہ آپریٹر کے ذریعے کیا جاتا ہے۔ ان میں سے زیادہ تر متعدد طریقوں پر مشتمل ہیں، جنہیں پیرامیٹرز کے ذریعے منتخب کیا جاتا ہے۔ تمام آپریٹرز کی مکمل فہرست HALCON آپریٹر حوالہ جات میں دیکھی جا سکتی ہے جو HDevelop، .NET، Python، C++، اور C نحو میں دستیاب ہے۔ آپریٹرز کی اہم خصوصیات یہ ہیں:
- آپریٹرز کے درمیان کوئی درجہ بندی نہیں ہے۔ سافٹ ویئر فن تعمیر کے نقطہ نظر سے viewتمام آپریٹرز ایک ہی سطح پر ہیں۔
- یقینا، آپریٹرز کے منطقی گروپ ہیں. سابق کے لیےampلی، یہ C++ اور .NET کے لیے پیش کردہ کلاسز کے ذریعے دیکھا جا سکتا ہے، جہاں ایک ہی ڈیٹا ٹائپ پر کارروائی کرنے والے آپریٹرز متعلقہ کلاسز کے ممبر فنکشنز ہیں۔
- آپریٹرز کا ڈیزائن کھلے فن تعمیر کے اصولوں پر عمل کرتا ہے۔ لہذا، آپ اپنے آپریٹر بنا سکتے ہیں اور اس طرح HALCON کو بڑھا سکتے ہیں (سیکشن 2.2 دیکھیں)۔ ایکسٹینشن پیکیج پروگرامر دستی آپریٹر لائبریری کو بڑھانے کے بارے میں تفصیلی معلومات پر مشتمل ہے۔
- بہت سے آپریٹرز خودکار متوازی کا شفاف استعمال کر سکتے ہیں، جو ملٹی پروسیسر یا ملٹی کور کمپیوٹر پر بڑی تصاویر کا استعمال کرتے وقت پروگرام کو تیز کرنے کا آسان طریقہ فراہم کرتا ہے۔ متوازی پروگرامنگ کے بارے میں تفصیلی معلومات تکنیکی نوٹ Parallel Programming کے ساتھ ساتھ Program-mer's Guide میں بھی مل سکتی ہیں۔
- آپریٹرز کے پاس ان پٹ اور آؤٹ پٹ پیرامیٹرز کو آرڈر کرنے کے لیے معیاری اصول ہیں: ان پٹ آئیکونک، آؤٹ پٹ آئیکونک، ان پٹ کنٹرول، اور آؤٹ پٹ کنٹرول (سیکشن 2.1.1 دیکھیں)۔ دیے گئے آپریٹر کے لیے تمام گروپس کی ضرورت نہیں ہو سکتی ہے۔ عام طور پر، آپریٹرز کے ان پٹ پیرامیٹرز میں ترمیم نہیں کی جاتی ہے، جس کے نتیجے میں ایک واضح اور سادہ سیمنٹکس ہوتی ہے۔ اس ڈیزائن میں صرف چند مستثنیات ہیں، جیسے کہ سیٹ_گریوال، اوور پینٹ_گرے، اور اوور پینٹ_ریجن۔
پیرامیٹرز اور ڈیٹا سٹرکچرز
HALCON میں دو بنیادی قسم کے پیرامیٹرز ہیں: آئیکونک ڈیٹا اور کنٹرول ڈیٹا۔ امیجز، ریجنز، اور XLDs (Extented Line Description) کا تعلق مشہور ڈیٹا سے ہے۔
امیجز بنیادی طور پر چینلز پر مشتمل ہوتا ہے، یعنی میٹرکس جس میں پکسل کی قدر ہوتی ہے۔ تصویر کے تمام چینلز کا سائز ایک جیسا ہوتا ہے۔ پکسلز اور چینلز کے بارے میں تفصیلی معلومات کے لیے، براہ کرم HALCON آپریٹر ریفرنس کا باب "تصویر" پڑھیں۔
ہر تصویر کے لیے، دلچسپی کا نام نہاد علاقہ (ROI) بتاتا ہے کہ تصویر کے کون سے حصے پر کارروائی کی گئی ہے۔ ROI کو بہت لچکدار طریقے سے بیان کیا جا سکتا ہے (ایک سادہ مستطیل سے غیر منسلک پکسلز کے سیٹ تک)۔ ROI ہینڈلنگ کے بارے میں تفصیلات کے لیے صفحہ 27 پر حل گائیڈ I، دلچسپی کا علاقہ دیکھیں۔
ریجنز پکسلز کا ایک سیٹ ہیں۔ کسی علاقے کے پکسلز کو منسلک کرنے کی ضرورت نہیں ہے۔ یہاں تک کہ پکسلز کا ایک من مانی مجموعہ ایک واحد خطے کے طور پر سنبھالا جا سکتا ہے۔ آپریٹر کنکشن کے ساتھ ایک خطے کو اس کے منسلک علاقوں میں تقسیم کیا جا سکتا ہے، یعنی کنیکٹڈ پکسلز پر مشتمل اجزاء۔
XLDs تمام سموچ اور کثیرالاضلاع پر مبنی ڈیٹا پر مشتمل ہے۔ سب پکسل- درست آپریٹرز جیسے edges_sub_pix شکل کو XLD ڈیٹا کے طور پر واپس کرتے ہیں۔ ایک سموچ 2D کنٹرول پوائنٹس کا ایک سلسلہ ہے، جو لائنوں سے جڑے ہوئے ہیں۔ عام طور پر، کنٹرول پوائنٹس کے درمیان فاصلہ تقریباً ایک پکسل ہوتا ہے۔ XLD اشیاء میں کنٹرول پوائنٹس کے علاوہ نام نہاد مقامی اور عالمی صفات شامل ہیں۔ عام سابقampان کے لیے les ہیں، مثال کے طور پر، کنارے ampکنٹرول پوائنٹ کا لیٹیوڈ یا کنٹور سیگمنٹ کے ریگریشن پیرامیٹرز۔ XLD اشیاء کو نکالنے کے علاوہ، HALCON مزید پروسیسنگ کی حمایت کرتا ہے۔ سابقampاس کے لیے les ایک کنٹور کو لائنوں، آرکس، کثیر الاضلاع یا متوازی میں تقسیم کرنے کے لیے دی گئی خصوصیت کی حدود کی بنیاد پر شکلوں کا انتخاب ہے۔
کنٹرول ڈیٹا میں ہینڈلز اور بنیادی ڈیٹا کی قسمیں شامل ہیں جیسے انٹیجر، ریئل، سٹرنگ۔
ہینڈل پیچیدہ اعداد و شمار کے ڈھانچے کے حوالہ جات ہیں، مثال کے طور پر، تصویر کے حصول کے انٹرفیس سے کنکشن یا شکل پر مبنی مماثلت کے لیے ماڈل۔ کارکردگی اور ڈیٹا سیکورٹی وجوہات کی بناء پر، پورے ڈھانچے کو نہیں بلکہ آپریٹرز کے درمیان صرف ہینڈل پاس کیا جاتا ہے۔ ہینڈلز جادوئی قدریں ہیں جنہیں تبدیل نہیں کیا جانا چاہیے اور یہ عمل سے عمل درآمد اور ورژن سے ورژن تک مختلف ہو سکتے ہیں۔ تمام حوالہ جات کے اوور رائٹ ہونے کے بعد وہ خود بخود صاف ہو جاتے ہیں۔ سابقampجہاں ہینڈل استعمال ہوتے ہیں وہ گرافکس ونڈوز ہیں، files، ساکٹ، تصویر کے حصول کے انٹرفیس، OCR، OCV، پیمائش، اور ملاپ۔
ایکسٹینشن پیکجز
HALCON کو نئے آپریٹرز کے ذریعے بڑھایا جا سکتا ہے۔ اگرچہ HALCON پہلے سے ہی مختلف کاموں کے لیے آپریٹرز کا ایک بہت بڑا مجموعہ رکھتا ہے، آپ نئے آپریٹرز کو نافذ کرنا چاہتے ہیں، مثلاً، کسی خاص ہارڈ ویئر تک رسائی حاصل کرنا یا متبادل الگورتھم کو نافذ کرنا۔ ایسا کرنے کے لیے، HALCON ایکسٹینشن پیکیج انٹرفیس فراہم کرتا ہے، جو نام نہاد ایکسٹینشن پیکجز کی شکل میں نئے آپریٹرز (C میں لاگو) کے انضمام کی اجازت دیتا ہے۔ ایکسٹینشن پیکیج انٹرفیس میں سی میں تصویری ڈیٹا اور میموری اشیاء کو آسانی سے ہینڈل کرنے کے لیے کئی پہلے سے طے شدہ معمولات اور میکرو شامل ہیں۔ ایک بار جب ایک نیا آپریٹر کامیابی کے ساتھ مربوط ہو جاتا ہے، تو اسے کسی دوسرے HALCON آپریٹر کی طرح استعمال کیا جا سکتا ہے۔ ایکسٹینشن پیکیج پروگرامر دستی آپریٹر لائبریری کو بڑھانے کے بارے میں تفصیلی معلومات پر مشتمل ہے۔
زبان کے انٹرفیس
جیسا کہ صفحہ 2.1 پر تصویر 9 میں دکھایا گیا ہے، HALCON نام نہاد زبان کے انٹرفیس فراہم کرتا ہے۔ یہ مادری زبان کی پابندیاں ہیں، جو آپ کو آپریٹرز کو کال کرنے اور HALCON ڈیٹا کی اقسام کو براہ راست اپنی ایپلیکیشن کے اندر سے استعمال کرنے کے قابل بناتی ہیں، چاہے وہ Python، C، C++، یا .NET ہو۔
ترقی شروع کرنے کے لیے، ہم تجویز کرتے ہیں کہ پہلے چلانے کے لیے تیار سابق میں سے ایک کو چیک کریں۔ampلی پروگرامز. یہاں، آپ دیکھ سکتے ہیں کہ پروجیکٹ کو کس طرح ترتیب دیا جانا چاہیے اور آپریٹرز اور اقسام کا استعمال کیسے کیا جاتا ہے۔
ہر زبان کے انٹرفیس کے لیے، اقسام کے نام، کلاسز، آپریٹرز کے نام دینے کے کنونشنز، وغیرہ ان مخصوص اصولوں کے مطابق ہونے کے لیے مختلف ہو سکتے ہیں جو منتخب زبان کے لیے لاگو ہوتے ہیں۔ معاون پروگرامنگ زبانوں کے لیے آپریٹر کے دستخط HALCON آپریٹر ریفرنس میں دستاویز کیے گئے ہیں۔
HALCON/Python
Python انٹرفیس اپنی سادگی اور تیز رفتار پروٹو ٹائپنگ کی صلاحیت کے لیے نمایاں ہے۔ HALCON آپریٹرز کو HALCON/Python ماڈیول درآمد کرنے کے بعد، براہ راست اسٹینڈ اکیلے فنکشنز کے طور پر کہا جاتا ہے۔ یہ بھی نوٹ کریں کہ HALCON/Python میں آپریٹر پیرامیٹرز فنکشن پیرامیٹرز (ان پٹ) اور واپسی کی قدروں (آؤٹ پٹ) میں تقسیم ہیں۔
Example
درج ذیل کوڈ ایک تصویر کو پڑھتا ہے اور اس میں منسلک علاقوں کی تعداد (صفحہ 10) کا حساب لگاتا ہے۔
img = ha.read_image('pcb')
علاقہ = ha.threshold(img, 0, 122)
num_regions = ha.count_obj(ha.connection(علاقہ))
پرنٹ (f'علاقوں کی تعداد: {num_regions}')
پیشگی شرائط اور تفصیلی واک تھرو کے لیے، براہ کرم پروگرامر گائیڈ، حصہ 4، پہلا سابقہ دیکھیںample
HALCON/C
C انٹرفیس سب سے آسان انٹرفیس ہے جسے HALCON کے ذریعے سپورٹ کیا جاتا ہے۔ ہر آپریٹر کی نمائندگی ایک یا دو عالمی فنکشنز سے ہوتی ہے جہاں آپریٹر کا نام اور پیرامیٹر کی ترتیب ایچ ڈی ڈیولپ لینگویج سے یکساں ہوتی ہے۔
Example
درج ذیل کوڈ ایک تصویر کو پڑھتا ہے اور اس میں منسلک علاقوں کی تعداد (صفحہ 10) کا حساب لگاتا ہے۔
Hobject img;
read_image(&img, "pcb")؛
ہوبجیکٹ علاقہ؛
حد (img, ®ion, 0, 122)؛
ہوبجیکٹ منسلک_علاقے؛
کنکشن (علاقہ، اور منسلک_علاقے)؛
Hlong num_regions = 0;
شمار_obj(منسلک_علاقے، &num_علاقے)؛
printf("علاقوں کی تعداد: %" PRIdPTR "\n"، num_regions)؛
پیشگی شرائط اور تفصیلی واک تھرو کے لیے، براہ کرم پروگرامر گائیڈ، حصہ 5، پہلا سابقہ دیکھیںample
HALCON/C++
C++ انٹرفیس C انٹرفیس سے کہیں زیادہ نفیس ہے۔ یہاں، ایڈوانtagC++ اور آبجیکٹ اورینٹڈ پروگرامنگ کے es استعمال کیے جاتے ہیں، یعنی خودکار قسم کی تبدیلی، تعمیر اور تباہی، یا ان کے ڈیٹا کے ساتھ کلاسوں میں گروپ بندی کے افعال۔ C انٹرفیس کی طرح، ہر HALCON آپریٹر کے لیے عالمی فنکشن پروگرامنگ کے طریقہ کار کے لیے فراہم کیے جاتے ہیں۔
Example
درج ذیل کوڈ ایک تصویر کو پڑھتا ہے اور اس میں منسلک علاقوں کی تعداد (صفحہ 10) کا حساب لگاتا ہے۔
HImage img{"pcb"};
HRegion ریجن = 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 50 سے زیادہ فریم گرابرز اور سینکڑوں صنعتی کیمروں کے لیے متحرک طور پر لوڈ ہونے والی لائبریریوں کی شکل میں انٹرفیس فراہم کرتا ہے (ونڈوز: DLLs؛ یونکس جیسے نظام: مشترکہ لائبریریاں)۔ لائبریری کے نام سابقہ hAcq سے شروع ہوتے ہیں۔ لاحقہ xl کے ساتھ ختم ہونے والی لائبریریوں کو HALCON XL استعمال کرتا ہے۔
صنعتی معیارات پر مبنی سب سے زیادہ استعمال ہونے والے انٹرفیس پہلے ہی HALCON li-braries کے ساتھ نصب ہیں۔ اضافی انٹرفیس کے ساتھ ساتھ پہلے سے شامل انٹرفیس کے تازہ ترین ورژن کے تحت ڈاؤن لوڈ کیے جا سکتے ہیں۔ https://www.mvtec.com/products/interfaces. HALCON تصویر کے حصول کے انٹرفیس خود HALCON لائبریری سے زیادہ کثرت سے تبدیل ہو سکتے ہیں۔ اس کی ایک وجہ یہ ہے کہ MVTec مسلسل نئے انٹرفیس تیار کرتا ہے۔ مزید برآں، اگر تصویر کے حصول کے آلات کے مینوفیکچررز کی طرف سے فراہم کردہ سافٹ ویئر میں تبدیلی آتی ہے، مثلاً، اگر نئی خصوصیات کو مربوط کیا جاتا ہے، تو متعلقہ HALCON انٹرفیس کو ڈھال لیا جائے گا۔ تعاون یافتہ تصویری حصول انٹرفیس کی مکمل فہرست کے لیے براہ کرم تصویری حصول انٹرفیس کا حوالہ بھی دیکھیں۔
ایک بار جب آپ اپنے امیج ایکوزیشن ڈیوائس کو کامیابی کے ساتھ انسٹال کر لیتے ہیں، تو آپ کو HALCON سے اس تک رسائی حاصل کرنے کے لیے آپریٹر open_framegrabber کو کال کرنے کی ضرورت ہے، تصویر کے حصول کے انٹرفیس کا نام اور کچھ اضافی معلومات، جیسے منسلک کیمرے کے حوالے سے۔ پھر، آپریٹر grab_image (یا grab_image_async) کو کال کرکے تصاویر کو پکڑا جا سکتا ہے۔
I / O انٹرفیس
HALCON ڈیٹا کے حصول کو فعال کرنے کے لیے متعدد I/O آلات کے لیے انٹرفیس فراہم کرتا ہے۔ یہ انٹرفیس متحرک طور پر قابل لوڈ لائبریریوں کے طور پر دستیاب ہیں (ونڈوز: DLLs؛ یونکس جیسے نظام: مشترکہ لائبریریاں)۔ لائبریری کے نام سابقہ hio سے شروع ہوتے ہیں۔ لاحقہ xl کے ساتھ ختم ہونے والی لائبریریوں کو HALCON XL استعمال کرتا ہے۔
HALCON I/O ڈیوائس انٹرفیس آپریٹرز کے چھوٹے سیٹ کا استعمال کرتے ہوئے مختلف I/O ڈیوائسز تک متحد رسائی فراہم کرتے ہیں۔ آپ کے I/O ڈیوائس کو انسٹال کرنے کے بعد، آپریٹر open_io_device کا استعمال کرتے ہوئے ایک کنکشن قائم کیا جاتا ہے، I/O ڈیوائس انٹرفیس کے نام کی وضاحت کرتے ہوئے اور اختیاری طور پر، کچھ ڈیوائس کے مخصوص پیرامیٹرز۔ ایک بار کنکشن قائم ہوجانے کے بعد، open_io_channel پر کال کرکے ایک ٹرانسمیشن چینل کھولا جاسکتا ہے۔ اس چینل پر اقدار کو پڑھنے اور لکھنے کے لیے، آپریٹرز read_io_channel اور write_io_channel بالترتیب استعمال کریں۔
براہ کرم نوٹ کریں کہ HALCON I/O ڈیوائس کے انٹرفیس خود HALCON لائبریری سے زیادہ کثرت سے تبدیل ہو سکتے ہیں۔ آپ ڈاؤن لوڈ کے قابل انٹرفیس (بشمول دستاویزات) کے تحت تازہ ترین معلومات حاصل کر سکتے ہیں۔ https://www.mvtec.com/products/interfaces. تعاون یافتہ I/O ڈیوائس انٹرفیس کی مکمل فہرست کے لیے براہ کرم I/O ڈیوائس انٹرفیس کا حوالہ بھی دیکھیں۔
درخواستیں تیار کرنے کا طریقہ
ہم تجویز کرتے ہیں کہ آپ ایچ ڈی ڈیولپ میں تیز رفتار پروٹو ٹائپنگ کے ساتھ شروع کریں، HALCON مشین ویژن لائبریری کے لیے انٹرایکٹو ڈیولپمنٹ ماحول۔ آپ اپنے تصویری تجزیہ کے کام کو حل کرنے کے لیے بہترین آپریٹرز اور پیرامیٹرز تلاش کرنے کے لیے HDevelop کا استعمال کر سکتے ہیں۔ دی گئی ضروریات کے مطابق ایچ ڈی ڈیولپ پروگرام تیار کرنے کے بعد، اسے اس کے آخری ماحول میں ترجمہ کرنا ہوگا۔ اس کے لیے، آپ اپنی ترجیحات کے لحاظ سے درج ذیل تین طریقوں میں سے انتخاب کر سکتے ہیں۔
- شروع سے شروع کریں: اپنے پروگرام کو شروع سے لکھنے کا مطلب یہ ہے کہ اپنے ایچ ڈی ڈیولپ کوڈ کو ٹارگٹ پروگرامنگ لینگویج (C++, Python…) میں دستی طور پر ترجمہ کریں۔ جیسا کہ پہلے ذکر کیا گیا ہے، آپریٹرز کے نام دینے کے کنونشن، کلاسوں کے نام وغیرہ، پروگرامنگ زبانوں کے درمیان مختلف ہو سکتے ہیں۔ ہر معاون پروگرامنگ زبان کے لیے HALCON آپریٹر کے دستخط حاصل کرنے کے لیے HALCON آپریٹر ریفرنس پر ایک نظر ڈالیں۔ اپنی مطلوبہ ٹارگٹ لینگوئج میں ایپلیکیشنز بنانے کے طریقے کے بارے میں معلومات کے لیے، براہ کرم پروگرامر گائیڈ پڑھیں۔
- ایچ ڈی ڈیولپ کوڈ برآمد کریں: HDevelop کے کوڈ ایکسپورٹ کا استعمال کرتے ہوئے اپنے HDevelop کوڈ کا خود بخود ٹارگٹ پروگرامنگ زبان میں ترجمہ کریں۔
- ایکسپورٹ لائبریری پروجیکٹ: ایچ ڈی ڈیولپ کی لائبریری ایکسپورٹ استعمال کے لیے تیار پراجیکٹ فولڈر تیار کرتی ہے، جس میں ٹارگٹ لینگویج میں ریپ فی کوڈ اور سی میک file منصوبے کی تعمیر کے لئے. HDevelop کی لائبریری ایکسپورٹ HDevEngine کا استعمال کرتی ہے، ایک لائبریری جو ایک ترجمان کے طور پر کام کرتی ہے۔ HDevEngine آپ کو C++ یا کسی بھی زبان میں لکھی گئی ایپلی کیشن سے HDDevelop پروگراموں یا طریقہ کار کو براہ راست چلانے دیتا ہے جو .NET اشیاء کو ضم کر سکتا ہے۔ اس طرح، ایچ ڈی ڈیولپ کوڈ میں تبدیلی کرتے وقت آپ کو پوری ایپلیکیشن کو دوبارہ کمپائل کرنے کی ضرورت نہیں ہے۔
یقینا، آپ HDevelop کے لائبریری ایکسپورٹ فنکشن کو استعمال کیے بغیر HDevEngine استعمال کر سکتے ہیں۔ HDevEngine کو استعمال کرنے کا طریقہ پروگرامر گائیڈ، حصہ 6 (HdevEngine کا استعمال کرتے ہوئے) میں تفصیل سے بیان کیا گیا ہے۔
ایچ ڈی ڈیولپ
آئیے ایچ ڈی ڈیولپ پر پہلی نظر ڈالیں۔ تصویر 3.1 ایچ ڈی ڈیولپ کا یوزر انٹرفیس دکھاتا ہے، پروگرام کے لوڈ ہونے اور جزوی طور پر اس کے مکمل ہونے کے بعد۔
پہلے سے طے شدہ طور پر، یہ ونڈوز نظر آتی ہیں، جو ایچ ڈی ڈیولپ کے ساتھ تیار کرنے کے لیے بھی ضروری ہیں:
- گرافکس ونڈو ڈسپلے (انٹرمیڈیٹ) نتائج، یعنی آئیکونک ڈیٹا (صفحہ 10) جیسے امیجز، ریجنز اور XLDs۔
- پروگرام ونڈو یہ وہ جگہ ہے جہاں آپ HALCON کے امیج پروسیسنگ کے طریقوں تک رسائی کے لیے آپریٹرز (صفحہ 10) کا استعمال کرتے ہوئے اپنا پروگرام کوڈ ٹائپ کرتے ہیں۔
- متغیر ونڈو تمام متغیرات کو ظاہر کرتی ہے، یعنی آئیکونک متغیرات اور کنٹرول متغیرات۔ آئیکونک متغیر میں آئیکونک ڈیٹا (صفحہ 10) ہوتا ہے اور کنٹرول متغیر میں کنٹرول ڈیٹا ہوتا ہے (صفحہ 10)۔
ایچ ڈی ڈیولپ کے بارے میں تفصیلی معلومات ایچ ڈی ڈیولپ یوزر گائیڈ میں مل سکتی ہے۔ ہمارے ٹیوٹوریل ویڈیوز بھی ایچ ڈی ڈیولپ کا ایک اچھا تعارف پیش کرتے ہیں:
- ایچ ڈی ڈیولپ ٹیوٹوریل 01: GUI اور نیویگیشن
- ایچ ڈی ڈیولپ ٹیوٹوریل 02: متغیرات
- ایچ ڈی ڈیولپ ٹیوٹوریل 03: ویژولائزیشن

تصویر 3.1: ایچ ڈی ڈیولپ کا یوزر انٹرفیس۔
Exampلی پروگرام
اب جب کہ آپ کو HDevelop کے یوزر انٹرفیس اور HALCON (صفحہ 9) کے بنیادی تصورات سے متعارف کرایا گیا ہے، آئیے لائبریری ایکسپورٹ اپروچ کا استعمال کرتے ہوئے ایک C++ ایپلیکیشن تیار کریں۔
درج ذیل مرحلہ وار ہدایات کے علاوہ، ہم تجویز کرتے ہیں کہ آپ ہمارے ٹیوٹوریل ویڈیوز دیکھیں: لائبریری پروجیکٹ ایکسپورٹ کا استعمال کرتے ہوئے ایچ ڈی ڈیولپ کوڈ کو C++ ایپلیکیشن میں ضم کریں۔
لائبریری پروجیکٹ ایکسپورٹ کا استعمال کرتے ہوئے ایچ ڈی ڈیولپ کوڈ کو C# ایپلیکیشن میں ضم کریں۔
ویڈیوز لائبریری کی برآمد کو ظاہر کرتے ہیں اور موضوع کے بارے میں مزید پس منظر کی معلومات فراہم کرتے ہیں۔
ایچ ڈی ڈیولپ میں پروٹو ٹائپ بنائیں
مندرجہ ذیل سابق کا کامample ایک تصویر کو پڑھنا اور اس سے منسلک علاقوں کی تعداد گننا ہے۔
- ایچ ڈی ڈیولپ کھولیں اور پروگرام ونڈو میں درج ذیل کوڈ درج کریں:
read_image (تصویر، 'pcb')
حد (تصویر، علاقہ، 0، 122)
کنکشن (علاقہ، مربوط خطہ)
count_obj (منسلک علاقے، نمبر) - ٹول بار میں چلائیں پر کلک کرکے یا F5 دبا کر اپنے پروگرام کی جانچ کریں۔
اس HDDevelop کوڈ کو ایک حقیقی ایپلیکیشن میں آسانی سے ضم کرنے کے لیے، ہم مشین ویژن کے حصے کو مقامی طریقہ کار میں سمیٹتے ہیں۔
- درج ذیل کوڈ لائنوں کو نمایاں کریں: حد (تصویر، علاقہ، 0، 122) کنکشن (علاقہ، مربوط خطہ) شمار_obj (متصل علاقہ، نمبر)
- سیاق و سباق کے مینو کو کھولنے کے لیے دائیں کلک کریں۔
- نیا طریقہ کار بنائیں کا انتخاب کریں۔
- اسے شمار_علاقوں کا نام دیں۔
- پیرامیٹرز کو منتخب کریں اور سلیکشن اسکیم کو فرسٹ ان، لاسٹ آؤٹ میں تبدیل کریں۔
- OK کے ساتھ تصدیق کریں۔
- اپنے HDdevelop پروگرام کو hdev_count_regions.hdev کے بطور محفوظ کریں۔
بصری اسٹوڈیو پروجیکٹ تیار کریں۔
اس میں سابقampلی، ہم ویژول اسٹوڈیو 2019 استعمال کریں گے۔ 1
- ایک خالی C++ ونڈوز کنسول پروجیکٹ بنائیں اور اسے vs_count_regions کا نام دیں۔ براہ کرم اسی ڈائرکٹری میں پلیس سلوشن اور پروجیکٹ کے آپشن کو فعال کریں۔ 2
- ایک C++ ماخذ شامل کریں۔ file (مینو پروجیکٹ نیا آئٹم شامل کریں… C++ File) اور اسے vs_count_regions.cpp نام دیں۔
- ٹول بار میں ڈراپ ڈاؤن مینو سے حل پلیٹ فارم x64 کا انتخاب کریں۔
- اپنے پروجیکٹ کی خصوصیات (مینو پروجیکٹ بمقابلہ_کاؤنٹ_ریجن پراپرٹیز…) کھولیں اور درج ذیل ترتیبات بنائیں:
- C/C++ جنرل کو منتخب کریں اور درج ذیل اضافی انکلوڈ ڈائریکٹریز شامل کریں:$(HALCONROOT)\include;$(HALCONROOT)\include\halconcpp;
- لنکر جنرل کو منتخب کریں اور درج ذیل اضافی لائبریری ڈائرکٹری شامل کریں:$(HALCONROOT)\lib\$(HALCONARCH);
- لنکر ان پٹ کو منتخب کریں اور درج ذیل اضافی انحصار شامل کریں: halconcpp.lib;hdevenginecpp.lib;
ایکسپورٹ لائبریری پروجیکٹ
اس کے بعد، ہم اپنے HDevelop پروگرام hdev_count_regions.hdev کو اپنے ویژول اسٹوڈیو پروجیکٹ فولڈر میں ایکسپورٹ کرتے ہیں۔
- پہلے سے بنایا ہوا HDdevelop پروگرام hdev_count_regions.hdev کھولیں۔
- کھولیں۔ File ایکسپورٹ لائبریری پروجیکٹ…
- درج ذیل ترتیبات بنائیں:
- ان پٹ file: موجودہ پروگرام
- ہدف کی زبان: C++
- پروجیکٹ کا نام: hdev_count_regions
- پروجیکٹ کا مقام: ہمارے ویژول اسٹوڈیو پروجیکٹ کا مقام منتخب کریں vs_count_regions۔
- نام کی جگہ: hdev_count_regions
- ایکسپورٹ کے ساتھ تصدیق کریں۔
اب، آپ کے بصری اسٹوڈیو پروجیکٹ فولڈر vs_count_regions میں کم از کم درج ذیل ڈیٹا ہونا چاہیے:
- vs_count_regions.cpp (ماخذ File)
- vs_count_regions.sln (حل)
- hdev_count_regions (Hdevelop Export سے فولڈر)
- cmake
- res_hdev_count_علاقوں
- hdev _ شمار_ علاقے۔ hdev
- ذریعہ
- hdev_count_regions.cpp
- hdev_count_regions.h
- CMakeLists.txt
لائبریری پروجیکٹ کو بصری اسٹوڈیو میں ضم کریں۔
آخر میں، ہمیں اپنے ویژول اسٹوڈیو پروجیکٹ میں ایچ ڈی ڈیولپ پروگرام کو ضم کرنا ہوگا۔
- بصری اسٹوڈیو پروجیکٹ کھولیں۔
- پروجیکٹ کھولیں موجودہ آئٹم شامل کریں… اور C++ کا انتخاب کریں۔ file hdev_count_regions.cpp اور ہیڈر file hdev_count_regions.h، ایچ ڈی ڈیولپ کی لائبریری ایکسپورٹ کے ذریعے تخلیق کیا گیا ہے۔ (دی files فولڈر hdev_count_regions سورس میں واقع ہیں۔)
- درج ذیل کوڈ کو 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::HTuple نمبر{};
hdev_count_regions::count_regions(تصویر، &نمبر)؛
std::cout << "علاقوں کی تعداد: " << Number.L() << '\n';
} - پروگرام پر عمل کریں۔ → ایک کنسول کھلتا ہے، جس کا نتیجہ 'علاقوں کی تعداد: 43' دکھاتا ہے۔
جاری رکھنے کا طریقہ
HALCON میں مزید گہرائی میں جانے کے لیے، ہم مزید دستاویزات اور معاونت پیش کرتے ہیں۔
- ایچ ڈی ڈیولپ سابقampلی پروگرامز
HALCON سابق کا ایک وسیع سیٹ فراہم کرتا ہے۔ample پروگرامز، نہ صرف ایچ ڈی ڈیولپ کے لیے بلکہ مختلف پروگرامنگ زبانوں کے لیے بھی۔ یہ سابقamples کو ڈائرکٹری میں پایا جا سکتا ہے جو ماحولیاتی متغیر % HALCONEX سے ظاہر ہوتا ہے۔AMPLES% یا، اگر متغیر سیٹ نہیں ہے، سب ڈائرکٹری سابق میںampاس فولڈر کے les جس میں آپ نے HALCON انسٹال کیا ہے۔
ایچ ڈی ڈیولپ کو کھولنے کے لیے سابقampپروگرام میں، مینو کو منتخب کریں۔ File ایچ ڈی ڈیولپ سابق کو براؤز کریں۔ampلی پروگرامز… beginners کے لیے، ہم ایک سابق کو منتخب کرنے کی تجویز کرتے ہیں۔ampزمرہ کی درخواست کے علاقے سے۔ - خدمات اور اعانت
ہماری webسائٹ https://www.mvtec.com/services-support مختلف قسم کی معاونت پیش کرتا ہے، مثال کے طور پرampلی ٹیوٹوریل ویڈیوز، ورکشاپس اور ٹریننگ کے بارے میں معلومات، ڈویلپرز کا گوشہ جو ٹپس اور ٹرکس فراہم کرتا ہے، اور بہت کچھ۔ - HALCON دستاویزات
دستاویزات ابتدائی موضوعات سے لے کر ماہر علم تک معلومات کا خزانہ فراہم کرتی ہیں۔ سابق کے لیےampلی، ہماری حل گائیڈز مشین کے وژن کے طریقوں اور ایچ ڈی ڈیولپ میں ان کا اطلاق کرنے کا طریقہ بیان کرتی ہیں۔ ایک اچھا نقطہ آغاز حل گائیڈ I ہے جو آپ کو مشین کے وژن کے اہم طریقوں سے متعارف کراتا ہے۔
ایک اوورview مختصر تفصیل کے ساتھ تمام دستورالعمل دستاویزات کے اندراج صفحہ پر پایا جا سکتا ہے۔
دستاویزات / وسائل
![]() |
HALCON 21.11 پیش رفت [پی ڈی ایف] یوزر گائیڈ 21.11 پیش رفت، 21.11، پیش رفت |





