ഹാൽക്കൺ-ലോഗോ

ഹാൽക്കൺ 21.11 പുരോഗതി

HALCON-21-11-Progress-product-image

HALCON, പതിപ്പ് 21.11.0.0-ന്റെ പ്രവർത്തനത്തിലേക്കുള്ള ഒരു ദ്രുത പ്രവേശനം
എല്ലാ അവകാശങ്ങളും നിക്ഷിപ്തം. ഈ പ്രസിദ്ധീകരണത്തിന്റെ ഒരു ഭാഗവും പ്രസാധകന്റെ മുൻകൂർ രേഖാമൂലമുള്ള അനുമതിയില്ലാതെ പുനർനിർമ്മിക്കുകയോ വീണ്ടെടുക്കൽ സംവിധാനത്തിൽ സംഭരിക്കുകയോ ഏതെങ്കിലും രൂപത്തിൽ അല്ലെങ്കിൽ ഏതെങ്കിലും വിധത്തിൽ ഇലക്ട്രോണിക്, മെക്കാനിക്കൽ, ഫോട്ടോകോപ്പി, റെക്കോർഡിംഗ് അല്ലെങ്കിൽ മറ്റെന്തെങ്കിലും വിധത്തിൽ കൈമാറുകയോ ചെയ്യരുത്.

പകർപ്പവകാശം © 2003-2021 MVTec Software 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 കോർപ്പറേഷന്റെ വ്യാപാരമുദ്രകളോ രജിസ്റ്റർ ചെയ്ത വ്യാപാരമുദ്രകളോ ആണ്.
ലിനസ് ടോർവാൾഡിന്റെ വ്യാപാരമുദ്രയാണ് ലിനക്സ്.
MacOS, OpenCL എന്നിവ Apple Inc-ന്റെ വ്യാപാരമുദ്രകളാണ്.
NVIDIA, CUDA, cuBLAS, cuDNN എന്നിവ എൻവിഡിയ കോർപ്പറേഷന്റെ വ്യാപാരമുദ്രകളോ രജിസ്റ്റർ ചെയ്ത വ്യാപാരമുദ്രകളോ ആണ്.
സിലിക്കൺ ഗ്രാഫിക്‌സിന്റെ വ്യാപാരമുദ്രയാണ് OpenGL.
ദേശീയമായും അന്തർദേശീയമായും അംഗീകരിക്കപ്പെട്ട മറ്റെല്ലാ വ്യാപാരമുദ്രകളും വ്യാപാരനാമങ്ങളും ഇതിനാൽ അംഗീകരിക്കപ്പെട്ടിരിക്കുന്നു.
HALCON നെക്കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾ ഇവിടെ കാണാം: http://www.halcon.com/

ഈ മാനുവലിനെ കുറിച്ച്

ഈ മാനുവൽ നിങ്ങളെ HALCON-നെ പരിചയപ്പെടുത്തുന്നു. HALCON-നെ കുറിച്ച് മുൻകൂർ അറിവില്ലാത്ത തുടക്കക്കാർക്ക് വേണ്ടിയുള്ളതാണ് ഇത്.
ഈ മാനുവൽ മറ്റ് നിരവധി ഹാൽ‌കൺ മാനുവലുകൾക്ക് ഒരു റഫറൻസ് ഗൈഡായി ഉപയോഗിക്കാം, കാരണം ഇത് ഇനിപ്പറയുന്ന വിഷയങ്ങളിൽ അവയെ പരസ്പരം ബന്ധിപ്പിക്കുന്നു:

  1. HALCON ഇൻസ്റ്റാൾ ചെയ്യുന്നു (പേജ് 7)
    ഈ അധ്യായം MVTec സോഫ്റ്റ്‌വെയർ മാനേജർ (SOM) പരിചയപ്പെടുത്തുന്നു.
  2. ഹാൽക്കൺ ആർക്കിടെക്ചർ (പേജ് 9)
    ഹാൽക്കൺ എന്താണെന്നും അത് എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്നും മനസ്സിലാക്കാൻ ചില സൈദ്ധാന്തിക പശ്ചാത്തലം ആവശ്യമാണ്.
  3. ആപ്ലിക്കേഷനുകൾ എങ്ങനെ വികസിപ്പിക്കാം (പേജ് 15)
    ഈ അധ്യായം ഹാൽക്കണുമായി വികസിപ്പിക്കുന്നതിനുള്ള മൂന്ന് അടിസ്ഥാന സമീപനങ്ങൾ വിശദീകരിക്കുകയും ആദ്യ പ്രോഗ്രാമിംഗ് മുൻ വഴി നിങ്ങളെ നയിക്കുകയും ചെയ്യുന്നുample.
  4. എങ്ങനെ തുടരാം (പേജ് 19)
    ഈ അധ്യായം വിവരങ്ങളുടെ അധിക സ്രോതസ്സുകളെ സൂചിപ്പിക്കുന്നു.

HALCON ഇൻസ്റ്റാൾ ചെയ്യുന്നു

Linux, Windows ഉപയോക്താക്കൾക്കായി, MVTec സോഫ്റ്റ്‌വെയർ മാനേജർ (SOM) വഴി HALCON ഡൗൺലോഡ് ചെയ്ത് ഇൻസ്റ്റാൾ ചെയ്യാൻ ഞങ്ങൾ ശുപാർശ ചെയ്യുന്നു. സോഫ്‌റ്റ്‌വെയർ പാക്കേജുകൾക്കായുള്ള ഒരു ഇൻസ്റ്റാളേഷൻ മാനേജരാണ് SOM. ഇത് ഉൽപ്പന്നങ്ങളുടെ വിദൂര കാറ്റാ-ലോഗിലേക്ക് ആക്‌സസ് നൽകുന്നു, കൂടാതെ പാക്കേജുകൾ ഡൗൺലോഡ് ചെയ്യുന്നതിനും ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനും മറ്റ് സവിശേഷതകൾക്കൊപ്പം പിന്തുണയ്ക്കുന്നു. SOM വഴി HALCON എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം എന്നതിനെക്കുറിച്ചുള്ള ഘട്ടം ഘട്ടമായുള്ള ആമുഖം ഇൻസ്റ്റലേഷൻ ഗൈഡിൽ കാണാം.

ഹാൽക്കൺ ആർക്കിടെക്ചർ

ഹാൽകണിന്റെ അടിസ്ഥാന വാസ്തുവിദ്യ ചിത്രം 2.1 ൽ ചിത്രീകരിച്ചിരിക്കുന്നു. 2000-ലധികം ഓപ്പറേറ്റർമാർ അടങ്ങുന്ന ഇമേജ് പ്രോസസ്സിംഗ് ലൈബ്രറിയാണ് പ്രധാന ഭാഗം. എക്സ്-ടെൻഷൻ പാക്കേജുകൾ (പേജ് 11) എന്ന് വിളിക്കപ്പെടുന്ന രൂപത്തിൽ നിങ്ങൾക്ക് നിങ്ങളുടെ സ്വന്തം ഓപ്പറേറ്റർമാരെ വികസിപ്പിക്കാനും കഴിയും. HALCON/C++ അല്ലെങ്കിൽ HALCON/Python പോലുള്ള ഭാഷാ ഇന്റർഫേസുകൾ (പേജ് 11) വഴിയാണ് നിങ്ങൾ നിങ്ങളുടെ ആപ്ലിക്കേഷനിലെ ഓപ്പറേറ്റർമാരെ ഉപയോഗിക്കുന്നത്. വ്യത്യസ്ത പ്രോഗ്രാമിംഗ് ഭാഷകളുടെ സാധാരണ പ്രോഗ്രാമിംഗ് ശൈലിയിൽ ഓപ്പറേറ്റർമാരെ നേരിട്ട് ഉപയോഗിക്കാൻ അനുവദിക്കുന്ന ലൈബ്രറികളാണിത്.

ഹാൽക്കൺ-21-11-പുരോഗതി-01

ചിത്രം 2.1: ഹാൽകണിന്റെ അടിസ്ഥാന വാസ്തുവിദ്യ.

ഇമേജ് അക്വിസിഷൻ ഡിവൈസുകളുടെ പ്രവേശനത്തിനായി, HALCON ഇമേജ് അക്വിസിഷൻ ഇന്റർഫേസുകൾ (പേജ് 13) നൽകുന്നു, ഇത് തികച്ചും വ്യത്യസ്തമായ ഏറ്റെടുക്കൽ ഉപകരണങ്ങൾ പൊതുവായ രീതിയിൽ ഉപയോഗിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു. ഉപകരണ-നിർദ്ദിഷ്‌ട നടപ്പിലാക്കലുകൾ അടങ്ങിയ ലൈബ്രറികൾ ആവശ്യമുള്ളപ്പോൾ ചലനാത്മകമായി ലോഡുചെയ്യുന്നു. അതേ രീതിയിൽ, I/O ഉപകരണങ്ങൾ ഉപകരണ-നിർദ്ദിഷ്ട I/O ഇന്റർഫേസുകളിലൂടെ ആക്സസ് ചെയ്യപ്പെടുന്നു (പേജ് 13).

ഓപ്പറേറ്റർമാർ

HALCON ലൈബ്രറിയിൽ നിന്ന് ഏതെങ്കിലും തരത്തിലുള്ള പ്രവർത്തനം ഉപയോഗിക്കുമ്പോൾ, അത് ഒരു ഓപ്പറേറ്റർ വഴിയാണ് ചെയ്യുന്നത്. അവയിൽ മിക്കതും ഒന്നിലധികം രീതികൾ ഉൾക്കൊള്ളുന്നു, അവ പാരാമീറ്ററുകൾ വഴി തിരഞ്ഞെടുക്കുന്നു. HDevelop, .NET, Python, C++, C വാക്യഘടന എന്നിവയിൽ ലഭ്യമായ HALCON Operator Reference-ൽ എല്ലാ ഓപ്പറേറ്റർമാരുടെയും പൂർണ്ണമായ ലിസ്റ്റ് കാണാം. ഓപ്പറേറ്റർമാരുടെ പ്രധാന സവിശേഷതകൾ ഇവയാണ്:

  • ഓപ്പറേറ്റർമാർക്കിടയിൽ ഒരു ശ്രേണിയും ഇല്ല. സോഫ്റ്റ്വെയർ ആർക്കിടെക്ചർ പോയിന്റിൽ നിന്ന് view, എല്ലാ ഓപ്പറേറ്റർമാരും ഒരേ നിലയിലാണ്.
  • തീർച്ചയായും, ഓപ്പറേറ്റർമാരുടെ ലോജിക്കൽ ഗ്രൂപ്പുകളുണ്ട്. ഉദാample, C++, .NET എന്നിവയ്‌ക്കായി വാഗ്ദാനം ചെയ്യുന്ന ക്ലാസുകളിൽ ഇത് കാണാൻ കഴിയും, ഇവിടെ ഒരേ ഡാറ്റ തരം പ്രോസസ്സ് ചെയ്യുന്ന ഓപ്പറേറ്റർമാർ ബന്ധപ്പെട്ട ക്ലാസുകളിലെ അംഗ പ്രവർത്തനങ്ങളാണ്.
  • ഓപ്പൺ ആർക്കിടെക്ചറിന്റെ നിയമങ്ങൾ അനുസരിച്ചാണ് ഓപ്പറേറ്റർമാരുടെ രൂപകൽപ്പന. അതിനാൽ, നിങ്ങൾക്ക് നിങ്ങളുടേതായ ഓപ്പറേറ്ററുകൾ സൃഷ്ടിക്കാനും അങ്ങനെ HALCON നീട്ടാനും കഴിയും (വിഭാഗം 2.2 കാണുക). എക്സ്റ്റൻഷൻ പാക്കേജ് പ്രോഗ്രാമറുടെ മാനുവലിൽ ഓപ്പറേറ്റർ ലൈബ്രറി വിപുലീകരിക്കുന്നതിനെക്കുറിച്ചുള്ള വിശദമായ വിവരങ്ങൾ അടങ്ങിയിരിക്കുന്നു.
  • പല ഓപ്പറേറ്റർമാർക്കും ഓട്ടോമാറ്റിക് പാരലലൈസേഷൻ സുതാര്യമായി ഉപയോഗിക്കാൻ കഴിയും, ഇത് ഒരു മൾട്ടി-പ്രോസസറിലോ മൾട്ടി-കോർ കമ്പ്യൂട്ടറിലോ വലിയ ഇമേജുകൾ ഉപയോഗിക്കുമ്പോൾ പ്രോഗ്രാം വേഗത്തിലാക്കാനുള്ള എളുപ്പവഴി അനുവദിക്കുന്നു. സമാന്തര പ്രോഗ്രാമിംഗിനെക്കുറിച്ചുള്ള വിശദമായ വിവരങ്ങൾ സാങ്കേതിക കുറിപ്പിൽ പാരലൽ പ്രോഗ്രാമിംഗിലും പ്രോഗ്രാം-മെർസ് ഗൈഡിലും കാണാം.
  • ഇൻപുട്ട്, ഔട്ട്പുട്ട് പാരാമീറ്ററുകൾ ക്രമീകരിക്കുന്നതിന് ഓപ്പറേറ്റർമാർക്ക് സ്റ്റാൻഡേർഡ് നിയമങ്ങളുണ്ട്: ഇൻപുട്ട് ഐക്കണിക്, ഔട്ട്പുട്ട് ഐക്കണിക്, ഇൻപുട്ട് കൺട്രോൾ, ഔട്ട്പുട്ട് നിയന്ത്രണം (വിഭാഗം 2.1.1 കാണുക). തന്നിരിക്കുന്ന ഓപ്പറേറ്റർക്ക് എല്ലാ ഗ്രൂപ്പുകളും ആവശ്യമായി വരണമെന്നില്ല. പൊതുവേ, ഓപ്പറേറ്റർമാരുടെ ഇൻപുട്ട് പാരാമീറ്ററുകൾ പരിഷ്‌ക്കരിക്കപ്പെടുന്നില്ല, ഇത് വ്യക്തവും ലളിതവുമായ സെമാന്റിക്‌സിന് കാരണമാകുന്നു. ഈ ഡിസൈനിൽ ചില അപവാദങ്ങളേ ഉള്ളൂ, ഉദാ, set_grayval, overpaint_gray, overpaint_region.

പാരാമീറ്ററുകളും ഡാറ്റ ഘടനകളും
ഹാൽകോണിന് രണ്ട് അടിസ്ഥാന തരം പാരാമീറ്ററുകളുണ്ട്: ഐക്കണിക് ഡാറ്റയും നിയന്ത്രണ ഡാറ്റയും. ഇമേജുകൾ, പ്രദേശങ്ങൾ, XLD-കൾ (എക്‌സ്റ്റന്റഡ് ലൈൻ വിവരണം) എന്നിവ ഐക്കണിക് ഡാറ്റയുടേതാണ്.

ചിത്രങ്ങൾ പ്രധാനമായും ചാനലുകൾ ഉൾക്കൊള്ളുന്നു, അതായത്, പിക്സൽ മൂല്യങ്ങൾ അടങ്ങിയ മെട്രിക്സുകൾ. ഒരു ചിത്രത്തിന്റെ എല്ലാ ചാനലുകൾക്കും ഒരേ വലുപ്പമുണ്ട്. പിക്സലുകളേയും ചാനലുകളേയും കുറിച്ചുള്ള വിശദമായ വിവരങ്ങൾക്ക്, ഹാൽക്കൺ ഓപ്പറേറ്റർ റഫറൻസിന്റെ "ചിത്രം" എന്ന അധ്യായം വായിക്കുക.
ഓരോ ചിത്രത്തിനും, താൽപ്പര്യമുള്ള മേഖല (ROI) എന്ന് വിളിക്കുന്നത് ചിത്രത്തിന്റെ ഏത് ഭാഗമാണ് പ്രോസസ്സ് ചെയ്തതെന്ന് വ്യക്തമാക്കുന്നു. ROI വളരെ അയവുള്ള രീതിയിൽ നിർവചിക്കാവുന്നതാണ് (ലളിതമായ ദീർഘചതുരം മുതൽ ഒരു കൂട്ടം ബന്ധമില്ലാത്ത പിക്സലുകൾ വരെ). ROI കൈകാര്യം ചെയ്യുന്നതിനെക്കുറിച്ചുള്ള വിശദാംശങ്ങൾക്ക്, പേജ് 27-ലെ താൽപ്പര്യമുള്ള മേഖല I, സൊല്യൂഷൻ ഗൈഡ് കാണുക.

പ്രദേശങ്ങൾ പിക്സലുകളുടെ ഒരു കൂട്ടമാണ്. ഒരു പ്രദേശത്തിന്റെ പിക്സലുകൾ ബന്ധിപ്പിക്കേണ്ടതില്ല. പിക്സലുകളുടെ അനിയന്ത്രിതമായ ശേഖരം പോലും ഒരൊറ്റ മേഖലയായി കൈകാര്യം ചെയ്യാൻ കഴിയും. ഓപ്പറേറ്റർ കണക്ഷൻ ഉപയോഗിച്ച് ഒരു പ്രദേശത്തെ അതിന്റെ ബന്ധിപ്പിച്ച പ്രദേശങ്ങളായി വിഭജിക്കാം, അതായത്, കണക്റ്റുചെയ്‌ത പിക്സലുകൾ അടങ്ങുന്ന ഘടകങ്ങൾ.

XLD-കൾ എല്ലാ കോണ്ടൂർ, പോളിഗോൺ അടിസ്ഥാനമാക്കിയുള്ള ഡാറ്റയും ഉൾക്കൊള്ളുന്നു. എഡ്ജ്സ്_സബ്_പിക്സ് പോലെയുള്ള സബ്പിക്സൽ-കൃത്യമായ ഓപ്പറേറ്റർമാർ എക്സ്എൽഡി ഡാറ്റയായി കോണ്ടൂർ നൽകുന്നു. ലൈനുകളാൽ ബന്ധിപ്പിച്ചിരിക്കുന്ന 2D കൺട്രോൾ പോയിന്റുകളുടെ ഒരു ശ്രേണിയാണ് കോണ്ടൂർ. സാധാരണഗതിയിൽ, കൺട്രോൾ പോയിന്റുകൾ തമ്മിലുള്ള ദൂരം ഏകദേശം ഒരു പിക്സൽ ആണ്. എക്‌സ്‌എൽഡി ഒബ്‌ജക്റ്റുകളിൽ നിയന്ത്രണ പോയിന്റുകൾ കൂടാതെ, പ്രാദേശികവും ആഗോളവുമായ ആട്രിബ്യൂട്ടുകൾ അടങ്ങിയിരിക്കുന്നു. സാധാരണ മുൻampഇവയ്ക്കുള്ള les, ഉദാ, അരികുകൾ ampഒരു കൺട്രോൾ പോയിന്റിന്റെ ലിറ്റ്യൂഡ് അല്ലെങ്കിൽ ഒരു കോണ്ടൂർ സെഗ്‌മെന്റിന്റെ റിഗ്രഷൻ പാരാമീറ്ററുകൾ. XLD ഒബ്‌ജക്‌റ്റുകളുടെ എക്‌സ്‌ട്രാക്‌ഷൻ കൂടാതെ, കൂടുതൽ പ്രോസസ്സിംഗിനെ HALCON പിന്തുണയ്ക്കുന്നു. ഉദാampവരകൾ, കമാനങ്ങൾ, ബഹുഭുജങ്ങൾ അല്ലെങ്കിൽ സമാന്തരങ്ങൾ എന്നിങ്ങനെ ഒരു കോണ്ടറിനെ വിഭജിക്കുന്നതിന് നൽകിയിരിക്കുന്ന സവിശേഷത ശ്രേണികളെ അടിസ്ഥാനമാക്കിയുള്ള കോണ്ടറുകളുടെ തിരഞ്ഞെടുപ്പാണ് ലെസ്.

നിയന്ത്രണ ഡാറ്റയിൽ ഹാൻഡിലുകളും പൂർണ്ണസംഖ്യ, റിയൽ, സ്ട്രിംഗ് പോലുള്ള അടിസ്ഥാന ഡാറ്റ തരങ്ങളും ഉൾപ്പെടുന്നു.

കൈകാര്യം ചെയ്യുന്നു സങ്കീർണ്ണമായ ഡാറ്റാ ഘടനകളിലേക്കുള്ള റഫറൻസുകളാണ്, ഉദാ, ഇമേജ് അക്വിസിഷൻ ഇന്റർഫേസിലേക്കുള്ള കണക്ഷൻ അല്ലെങ്കിൽ ആകൃതി അടിസ്ഥാനമാക്കിയുള്ള പൊരുത്തപ്പെടുത്തലിനുള്ള ഒരു മോഡൽ. കാര്യക്ഷമതയ്ക്കും ഡാറ്റ സുരക്ഷയ്ക്കും കാരണങ്ങളാൽ, മുഴുവൻ ഘടനയും അല്ല, മറിച്ച് ഹാൻഡിൽ മാത്രമാണ് ഓപ്പറേറ്റർമാർക്കിടയിൽ കൈമാറുന്നത്. മാറ്റാൻ പാടില്ലാത്ത മാന്ത്രിക മൂല്യങ്ങളാണ് ഹാൻഡിലുകൾ, എക്‌സിക്യൂഷനിൽ നിന്ന് എക്‌സിക്യൂഷനിലേക്കും പതിപ്പിൽ നിന്നും പതിപ്പിലേക്കും വ്യത്യാസപ്പെടാം. എല്ലാ റഫറൻസുകളും തിരുത്തിയെഴുതിയാൽ അവ സ്വയമേവ മായ്‌ക്കപ്പെടും. ഉദാampഹാൻഡിലുകൾ ഉപയോഗിക്കുന്നിടത്ത് ഗ്രാഫിക്സ് വിൻഡോകളാണ്, files, സോക്കറ്റുകൾ, ഇമേജ് ഏറ്റെടുക്കൽ ഇന്റർഫേസുകൾ, OCR, OCV, അളക്കൽ, പൊരുത്തപ്പെടുത്തൽ.

വിപുലീകരണ പാക്കേജുകൾ

പുതിയ ഓപ്പറേറ്റർമാർ HALCON വിപുലീകരിച്ചേക്കാം. HALCON ഇതിനകം വിവിധ ജോലികൾക്കായി ധാരാളം ഓപ്പറേറ്റർമാരെ ഉൾക്കൊള്ളുന്നുവെങ്കിലും, നിങ്ങൾ പുതിയ ഓപ്പറേറ്റർമാരെ നടപ്പിലാക്കാൻ ആഗ്രഹിച്ചേക്കാം, ഉദാ, ഒരു പ്രത്യേക ഹാർഡ്‌വെയർ ആക്‌സസ് ചെയ്യാനോ അല്ലെങ്കിൽ ഒരു ബദൽ അൽഗോരിതം നടപ്പിലാക്കാനോ. അതിനായി, HALCON എക്സ്റ്റൻഷൻ പാക്കേജ് ഇന്റർഫേസ് നൽകുന്നു, ഇത് വിപുലീകരണ പാക്കേജുകൾ എന്ന് വിളിക്കപ്പെടുന്ന രൂപത്തിൽ പുതിയ ഓപ്പറേറ്റർമാരെ (സിയിൽ നടപ്പിലാക്കുന്നത്) സംയോജിപ്പിക്കാൻ അനുവദിക്കുന്നു. സിയിലെ ഇമേജ് ഡാറ്റയും മെമ്മറി ഒബ്‌ജക്‌റ്റുകളും എളുപ്പത്തിൽ കൈകാര്യം ചെയ്യുന്നതിനായി വിപുലീകരണ പാക്കേജ് ഇന്റർഫേസിൽ നിരവധി മുൻനിശ്ചയിച്ച ദിനചര്യകളും മാക്രോകളും അടങ്ങിയിരിക്കുന്നു. ഒരു പുതിയ ഓപ്പറേറ്റർ വിജയകരമായി സംയോജിപ്പിച്ചുകഴിഞ്ഞാൽ, മറ്റേതൊരു ഹാൽക്കൺ ഓപ്പറേറ്ററെപ്പോലെയും ഇത് ഉപയോഗിക്കാനാകും. എക്സ്റ്റൻഷൻ പാക്കേജ് പ്രോഗ്രാമറുടെ മാനുവലിൽ ഓപ്പറേറ്റർ ലൈബ്രറി വിപുലീകരിക്കുന്നതിനെക്കുറിച്ചുള്ള വിശദമായ വിവരങ്ങൾ അടങ്ങിയിരിക്കുന്നു.

ഭാഷാ ഇന്റർഫേസുകൾ

പേജ് 2.1-ലെ ചിത്രം 9-ൽ കാണിച്ചിരിക്കുന്നതുപോലെ, ഹാൽക്കൺ ഭാഷാ ഇന്റർഫേസുകൾ എന്ന് വിളിക്കപ്പെടുന്നു. പൈത്തൺ, സി, സി++ അല്ലെങ്കിൽ .നെറ്റ് ആകട്ടെ, നിങ്ങളുടെ ആപ്ലിക്കേഷനിൽ നിന്ന് നേരിട്ട് ഓപ്പറേറ്റർമാരെ വിളിക്കാനും ഹാൽക്കൺ ഡാറ്റ തരങ്ങൾ ഉപയോഗിക്കാനും നിങ്ങളെ പ്രാപ്‌തമാക്കുന്ന മാതൃഭാഷാ ബൈൻഡിംഗുകളാണ് ഇവ.
വികസനം ആരംഭിക്കുന്നതിന്, റൺ ചെയ്യാൻ തയ്യാറുള്ള എക്സിയിൽ ഒന്ന് പരിശോധിക്കാൻ ഞങ്ങൾ ശുപാർശ ചെയ്യുന്നുampലെ പ്രോഗ്രാമുകൾ. പ്രോജക്റ്റ് എങ്ങനെ സജ്ജീകരിക്കണമെന്നും ഓപ്പറേറ്റർമാരും തരങ്ങളും എങ്ങനെ ഉപയോഗിക്കണമെന്നും ഇവിടെ നിങ്ങൾക്ക് കാണാൻ കഴിയും.
ഓരോ ഭാഷാ ഇന്റർഫേസിനും, തരങ്ങളുടെ പേരുകൾ, ക്ലാസുകൾ, ഓപ്പറേറ്റർമാരുടെ പേരിടൽ കൺവെൻഷനുകൾ മുതലായവ തിരഞ്ഞെടുത്ത ഭാഷയ്‌ക്ക് ബാധകമാകുന്ന സാധാരണ നിയമങ്ങൾക്ക് അനുസൃതമായി വ്യത്യാസപ്പെടാം. പിന്തുണയ്ക്കുന്ന പ്രോഗ്രാമിംഗ് ഭാഷകൾക്കുള്ള ഓപ്പറേറ്റർ ഒപ്പുകൾ HALCON ഓപ്പറേറ്റർ റഫറൻസിൽ രേഖപ്പെടുത്തിയിട്ടുണ്ട്.

ഹാൽക്കൺ/പൈത്തൺ
പൈത്തൺ ഇന്റർഫേസ് അതിന്റെ ലാളിത്യത്തിനും ദ്രുതഗതിയിലുള്ള പ്രോട്ടോടൈപ്പിംഗിനുള്ള കഴിവിനും വേറിട്ടുനിൽക്കുന്നു. HALCON/Python മൊഡ്യൂൾ ഇറക്കുമതി ചെയ്തതിന് ശേഷം, HALCON ഓപ്പറേറ്റർമാരെ നേരിട്ട് സ്റ്റാൻഡ്-എലോൺ ഫംഗ്ഷനുകളായി വിളിക്കുന്നു. HALCON/Python-ലെ ഓപ്പറേറ്റർ പാരാമീറ്ററുകൾ ഫംഗ്‌ഷൻ പാരാമീറ്ററുകൾ (ഇൻപുട്ടുകൾ), റിട്ടേൺ മൂല്യങ്ങൾ (ഔട്ട്‌പുട്ട്) എന്നിങ്ങനെ വിഭജിച്ചിരിക്കുന്നു എന്നതും ശ്രദ്ധിക്കുക.

Example
ഇനിപ്പറയുന്ന കോഡ് ഒരു ചിത്രം വായിക്കുകയും അതിൽ ബന്ധിപ്പിച്ചിട്ടുള്ള പ്രദേശങ്ങളുടെ എണ്ണം (പേജ് 10) കണക്കാക്കുകയും ചെയ്യുന്നു.
img = ha.read_image('pcb')
മേഖല = ha.threshold(img, 0, 122)
സംഖ്യ_പ്രദേശങ്ങൾ = ha.count_obj(ha.connection(region))
പ്രിന്റ് (f'പ്രദേശങ്ങളുടെ എണ്ണം: {num_regions}')

മുൻവ്യവസ്ഥകൾക്കും വിശദമായ വാക്ക്-ത്രൂവിനും, ദയവായി പ്രോഗ്രാമറുടെ ഗൈഡ്, ഭാഗം 4, ഒരു ആദ്യ മുൻ കാണുകample.

ഹാൽക്കൺ/സി
HALCON പിന്തുണയ്ക്കുന്ന ഏറ്റവും ലളിതമായ ഇന്റർഫേസാണ് C ഇന്റർഫേസ്. ഓരോ ഓപ്പറേറ്ററെയും ഒന്നോ രണ്ടോ ആഗോള ഫംഗ്ഷനുകൾ പ്രതിനിധീകരിക്കുന്നു, അവിടെ ഓപ്പറേറ്ററുടെ പേരും പാരാമീറ്റർ സീക്വൻസും HDevelop ഭാഷയ്ക്ക് സമാനമാണ്.

Example
ഇനിപ്പറയുന്ന കോഡ് ഒരു ചിത്രം വായിക്കുകയും അതിൽ ബന്ധിപ്പിച്ചിട്ടുള്ള പ്രദേശങ്ങളുടെ എണ്ണം (പേജ് 10) കണക്കാക്കുകയും ചെയ്യുന്നു.
ഹോബ്ജക്റ്റ് img;
read_image (&img, "pcb");
ഹോബ്ജക്റ്റ് മേഖല;
പരിധി (img, ®ion, 0, 122);
Hobject connected_regions;
കണക്ഷൻ (മേഖല, &കണക്റ്റഡ്_മേഖലകൾ);
നീണ്ട സംഖ്യ_പ്രദേശങ്ങൾ = 0;
count_obj(കണക്‌റ്റഡ്_മേഖലകൾ, &എണ്ണ_മേഖലകൾ);
printf(“മേഖലകളുടെ എണ്ണം: %” PRIdPTR “\n”, num_regions);

മുൻവ്യവസ്ഥകൾക്കും വിശദമായ വാക്ക്-ത്രൂവിനും, ദയവായി പ്രോഗ്രാമറുടെ ഗൈഡ്, ഭാഗം 5, ഒരു ആദ്യ മുൻ കാണുകample.

ഹാൽക്കൺ/സി++
C++ ഇന്റർഫേസ് C ഇന്റർഫേസിനേക്കാൾ വളരെ സങ്കീർണ്ണമാണ്. ഇവിടെ, അഡ്വാൻtagC++ ന്റെ es ഉം ഒബ്‌ജക്റ്റ്-ഓറിയന്റഡ് പ്രോഗ്രാമിംഗും ഉപയോഗിക്കുന്നു, അതായത്, ഓട്ടോമാറ്റിക് തരം പരിവർത്തനം, നിർമ്മാണം, നശിപ്പിക്കൽ, അല്ലെങ്കിൽ ഫംഗ്‌ഷനുകൾ അവയുടെ ഡാറ്റയ്‌ക്കൊപ്പം ക്ലാസുകളായി ഗ്രൂപ്പുചെയ്യൽ. സി ഇന്റർഫേസിലെന്നപോലെ, ഓരോ ഹാൽക്കൺ ഓപ്പറേറ്റർക്കുമുള്ള ഗ്ലോബൽ ഫംഗ്‌ഷനുകൾ ഒരു പ്രൊസീജറൽ ശൈലിയിലുള്ള പ്രോഗ്രാമിംഗിനായി നൽകിയിരിക്കുന്നു.

Example
ഇനിപ്പറയുന്ന കോഡ് ഒരു ചിത്രം വായിക്കുകയും അതിൽ ബന്ധിപ്പിച്ചിട്ടുള്ള പ്രദേശങ്ങളുടെ എണ്ണം (പേജ് 10) കണക്കാക്കുകയും ചെയ്യുന്നു.
HImage img{“pcb”};
HRegion region = img.threshold(0, 122);
Hlong numRegions = region.Connection().CountObj();
std::cout << “മേഖലകളുടെ എണ്ണം: ” << numRegions << '\n';

മുൻവ്യവസ്ഥകൾക്കും വിശദമായ വാക്ക്-ത്രൂവിനും, ദയവായി പ്രോഗ്രാമറുടെ ഗൈഡ്, ഭാഗം 2, ഒരു ആദ്യ മുൻ കാണുകample.

ഹാൽക്കൺ/.നെറ്റ്
C#, Visual Basic .NET എന്നിവ .NET ഇന്റർഫേസ് വഴി HALCON ഉപയോഗിക്കുന്നു.
C++ ന് സമാനമായി, രണ്ട് പ്രോഗ്രാമിംഗ് ശൈലികൾ വാഗ്ദാനം ചെയ്യുന്നു: നടപടിക്രമവും ഒബ്ജക്റ്റ് ഓറിയന്റഡും. നടപടിക്രമ ശൈലിക്ക്, ക്ലാസ് HOperatorSet എല്ലാ HALCON ഓപ്പറേറ്റർമാരെയും നൽകുന്നു, അവിടെ ഐക്കണിക് ഡാറ്റ കൈകാര്യം ചെയ്യാൻ HObject ഉപയോഗിക്കുന്നു, കൂടാതെ നിയന്ത്രണ ഡാറ്റയ്ക്കായി HTuple ഉപയോഗിക്കുന്നു. ഒബ്ജക്റ്റ് ഓറിയന്റഡ് ശൈലിക്ക്, കേന്ദ്ര പ്രവർത്തനത്തിനായി HDataCode2d, HMeasure അല്ലെങ്കിൽ HShapeModel പോലുള്ള ക്ലാസുകൾ നൽകിയിരിക്കുന്നു. കൂടാതെ, ഐക്കണിക് ഡാറ്റയ്ക്കുള്ള ക്ലാസുകൾ ലഭ്യമാണ്, ഉദാ, HImage അല്ലെങ്കിൽ HRegion.

Example
ഇനിപ്പറയുന്ന കോഡ് ഒരു ചിത്രം വായിക്കുകയും അതിൽ ബന്ധിപ്പിച്ചിട്ടുള്ള പ്രദേശങ്ങളുടെ എണ്ണം (പേജ് 10) കണക്കാക്കുകയും ചെയ്യുന്നു.
HImage img = പുതിയ HImage ("pcb");
HRegion region = img.threshold(0d, 122d);
int numRegions = region.Connection().CountObj();
Console.WriteLine(“മേഖലകളുടെ എണ്ണം: ” + numRegions);

മുൻവ്യവസ്ഥകൾക്കും വിശദമായ വാക്ക്-ത്രൂവിനും, ദയവായി പ്രോഗ്രാമറുടെ ഗൈഡ്, ഭാഗം 3, ഒരു ആദ്യ മുൻ കാണുകample.

ഇമേജ് അക്വിസിഷൻ ഇന്റർഫേസുകൾ

ഇമേജ് അക്വിസിഷൻ ഉപകരണത്തിന്റെ നിർമ്മാതാവും ഹാൽകണും നൽകുന്ന സോഫ്റ്റ്‌വെയറുകൾ തമ്മിലുള്ള പാലമാണ് ഹാൽകണിന്റെ ഇമേജ് അക്വിസിഷൻ ഇന്റർഫേസുകൾ. ഒരു ചെറിയ കൂട്ടം ഓപ്പറേറ്റർമാർ മാത്രം ആവശ്യമുള്ള ഒരു പൊതുവായ, പൊതുവായ ഇന്റർഫേസ് അവ രൂപപ്പെടുത്തുന്നു. ഈ വിഷയത്തെക്കുറിച്ചുള്ള വിശദമായ വിവരങ്ങൾക്ക് സൊല്യൂഷൻ ഗൈഡ് II-A പരിശോധിക്കുക.
നിലവിൽ, 50-ലധികം ഫ്രെയിം ഗ്രാബറുകൾക്കും നൂറുകണക്കിന് വ്യാവസായിക ക്യാമറകൾക്കും ചലനാത്മകമായി ലോഡ് ചെയ്യാവുന്ന ലൈബ്രറികളുടെ (Windows: DLLs; Unix പോലുള്ള സിസ്റ്റങ്ങൾ: പങ്കിട്ട ലൈബ്രറികൾ) HALCON ഇന്റർഫേസുകൾ നൽകുന്നു. ലൈബ്രറിയുടെ പേരുകൾ ആരംഭിക്കുന്നത് hAcq എന്ന പ്രിഫിക്‌സിൽ നിന്നാണ്; xl എന്ന പ്രത്യയത്തിൽ അവസാനിക്കുന്ന ലൈബ്രറികൾ HALCON XL ഉപയോഗിക്കുന്നു.
വ്യവസായ മാനദണ്ഡങ്ങളെ അടിസ്ഥാനമാക്കി ഏറ്റവും വ്യാപകമായി ഉപയോഗിക്കുന്ന ഇന്റർഫേസുകൾ ഇതിനകം തന്നെ ഹാൽക്കൺ ലൈ-ബ്രറികൾക്കൊപ്പം ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ട്. കൂടുതൽ ഇന്റർഫേസുകളും ഇതിനകം ഉൾപ്പെടുത്തിയിട്ടുള്ള ഇന്റർഫേസുകളുടെ ഏറ്റവും പുതിയ പതിപ്പുകളും ചുവടെ ഡൗൺലോഡ് ചെയ്യാവുന്നതാണ് https://www.mvtec.com/products/interfaces. HALCON ലൈബ്രറിയേക്കാൾ കൂടുതൽ ഇടയ്ക്കിടെ HALCON ഇമേജ് അക്വിസിഷൻ ഇന്റർഫേസുകൾ മാറിയേക്കാം. MVTec തുടർച്ചയായി പുതിയ ഇന്റർഫേസുകൾ വികസിപ്പിക്കുന്നു എന്നതാണ് ഇതിനുള്ള ഒരു കാരണം; കൂടാതെ, ഇമേജ് ഏറ്റെടുക്കൽ ഉപകരണങ്ങളുടെ നിർമ്മാതാക്കൾ നൽകുന്ന സോഫ്‌റ്റ്‌വെയർ മാറുകയാണെങ്കിൽ, ഉദാ, പുതിയ സവിശേഷതകൾ സംയോജിപ്പിച്ചാൽ, അനുബന്ധ HALCON ഇന്റർഫേസുകൾ പൊരുത്തപ്പെടുത്തും. പിന്തുണയ്‌ക്കുന്ന ഇമേജ് അക്വിസിഷൻ ഇന്റർഫേസുകളുടെ പൂർണ്ണമായ ലിസ്റ്റിനായി ദയവായി ഇമേജ് അക്വിസിഷൻ ഇന്റർഫേസ് റഫറൻസും കാണുക.
നിങ്ങളുടെ ഇമേജ് ഏറ്റെടുക്കൽ ഉപകരണം വിജയകരമായി ഇൻസ്റ്റാൾ ചെയ്തുകഴിഞ്ഞാൽ, HALCON-ൽ നിന്ന് അത് ആക്‌സസ് ചെയ്യാൻ നിങ്ങൾ ചെയ്യേണ്ടത്, ഇമേജ് അക്വിസിഷൻ ഇന്റർഫേസിന്റെ പേരും ചില അധിക വിവരങ്ങളും വ്യക്തമാക്കിക്കൊണ്ട്, ഓപ്പറേറ്ററെ open_framegrabber-ലേക്ക് വിളിക്കുക എന്നതാണ്, ഉദാ, കണക്റ്റുചെയ്ത ക്യാമറയുമായി ബന്ധപ്പെട്ടത്. തുടർന്ന്, ഓപ്പറേറ്ററെ grab_image (അല്ലെങ്കിൽ grab_image_async) വിളിച്ച് ചിത്രങ്ങൾ പിടിച്ചെടുക്കാം.

I/O ഇന്റർഫേസുകൾ

ഡാറ്റ ഏറ്റെടുക്കൽ പ്രവർത്തനക്ഷമമാക്കുന്നതിന് നിരവധി I/O ഉപകരണങ്ങൾക്കായി HALCON ഇന്റർഫേസുകൾ നൽകുന്നു. ഈ ഇന്റർഫേസുകൾ ചലനാത്മകമായി ലോഡ് ചെയ്യാവുന്ന ലൈബ്രറികളായി ലഭ്യമാണ് (Windows: DLLs; Unix പോലുള്ള സിസ്റ്റങ്ങൾ: പങ്കിട്ട ലൈബ്രറികൾ). ലൈബ്രറിയുടെ പേരുകൾ ഹിയോ എന്ന പ്രിഫിക്‌സിൽ ആരംഭിക്കുന്നു; 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-ൽ ദ്രുതഗതിയിലുള്ള പ്രോട്ടോടൈപ്പിംഗ് ആരംഭിക്കാൻ ഞങ്ങൾ ശുപാർശ ചെയ്യുന്നു. നിങ്ങളുടെ ഇമേജ് വിശകലന ടാസ്ക് പരിഹരിക്കുന്നതിന് ഒപ്റ്റിമൽ ഓപ്പറേറ്റർമാരെയും പാരാമീറ്ററുകളെയും കണ്ടെത്താൻ നിങ്ങൾക്ക് HDevelop ഉപയോഗിക്കാം. നൽകിയിരിക്കുന്ന ആവശ്യകതകൾക്കനുസൃതമായി ഒരു HDevelop പ്രോഗ്രാം വികസിപ്പിച്ച ശേഷം, അത് അതിന്റെ അന്തിമ പരിതസ്ഥിതിയിലേക്ക് വിവർത്തനം ചെയ്യേണ്ടതുണ്ട്. ഇതിനായി, നിങ്ങളുടെ മുൻഗണനകളെ ആശ്രയിച്ച് ഇനിപ്പറയുന്ന മൂന്ന് സമീപനങ്ങളിൽ നിന്ന് നിങ്ങൾക്ക് തിരഞ്ഞെടുക്കാം:

  • ആദ്യം മുതൽ ആരംഭിക്കുക: ആദ്യം മുതൽ നിങ്ങളുടെ പ്രോഗ്രാം എഴുതുക എന്നതിനർത്ഥം നിങ്ങളുടെ HDevelop കോഡ് ടാർഗെറ്റ് പ്രോഗ്രാമിംഗ് ഭാഷയിലേക്ക് (C++, Python...) സ്വമേധയാ വിവർത്തനം ചെയ്യുക എന്നാണ്. മുമ്പ് സൂചിപ്പിച്ചതുപോലെ, ഓപ്പറേറ്റർമാരുടെ പേരിടൽ കൺവെൻഷനുകൾ, ക്ലാസുകളുടെ പേരുകൾ മുതലായവ പ്രോഗ്രാമിംഗ് ഭാഷകൾക്കിടയിൽ വ്യത്യാസപ്പെടാം. പിന്തുണയ്ക്കുന്ന ഓരോ പ്രോഗ്രാമിംഗ് ഭാഷയ്ക്കും ഹാൽക്കൺ ഓപ്പറേറ്റർ ഒപ്പ് ലഭിക്കാൻ HALCON ഓപ്പറേറ്റർ റഫറൻസ് നോക്കുക. നിങ്ങൾ ആഗ്രഹിക്കുന്ന ടാർഗെറ്റ് ഭാഷയിൽ ആപ്ലിക്കേഷനുകൾ എങ്ങനെ സൃഷ്ടിക്കാം എന്നതിനെക്കുറിച്ചുള്ള വിവരങ്ങൾക്ക്, പ്രോഗ്രാമറുടെ ഗൈഡ് വായിക്കുക.
  • എച്ച്ഡി ഡെവലപ്പ് കോഡ് കയറ്റുമതി ചെയ്യുക: HDevelop-ന്റെ കോഡ് കയറ്റുമതി ഉപയോഗിച്ച് നിങ്ങളുടെ HDevelop കോഡ് ടാർഗെറ്റ് പ്രോഗ്രാമിംഗ് ഭാഷയിലേക്ക് സ്വയമേവ വിവർത്തനം ചെയ്യുക.
  • കയറ്റുമതി ലൈബ്രറി പദ്ധതി: HDevelop-ന്റെ ലൈബ്രറി എക്‌സ്‌പോർട്ട്, ടാർഗെറ്റ് ഭാഷയിലെ റാപ്പ്-പെർ കോഡും CMake ഉം ഉൾപ്പെടെ, ഉപയോഗിക്കാൻ തയ്യാറുള്ള പ്രോജക്റ്റ് ഫോൾഡർ സൃഷ്ടിക്കുന്നു. file പദ്ധതി നിർമ്മിക്കാൻ. HDevelop-ന്റെ ലൈബ്രറി കയറ്റുമതി ഒരു വ്യാഖ്യാതാവായി പ്രവർത്തിക്കുന്ന ഒരു ലൈബ്രറിയായ HDevEngine ഉപയോഗിക്കുന്നു. C++ അല്ലെങ്കിൽ .NET ഒബ്‌ജക്റ്റുകൾ സംയോജിപ്പിക്കാൻ കഴിയുന്ന ഏതെങ്കിലും ഭാഷയിൽ എഴുതിയിരിക്കുന്ന ഒരു ആപ്ലിക്കേഷനിൽ നിന്ന് HDevelop പ്രോഗ്രാമുകളോ നടപടിക്രമങ്ങളോ നേരിട്ട് നടപ്പിലാക്കാൻ HDevEngine നിങ്ങളെ അനുവദിക്കുന്നു. അതിനാൽ, HDevelop കോഡിൽ മാറ്റങ്ങൾ വരുത്തുമ്പോൾ നിങ്ങൾ മുഴുവൻ ആപ്ലിക്കേഷനും വീണ്ടും കംപൈൽ ചെയ്യേണ്ടതില്ല.
    തീർച്ചയായും, HDevelop-ന്റെ ലൈബ്രറി എക്സ്പോർട്ട് ഫംഗ്ഷൻ ഉപയോഗിക്കാതെ നിങ്ങൾക്ക് HDevEngine ഉപയോഗിക്കാം. HDevEngine എങ്ങനെ ഉപയോഗിക്കാമെന്ന് പ്രോഗ്രാമറുടെ ഗൈഡ്, ഭാഗം 6 ൽ വിശദമായി വിവരിച്ചിരിക്കുന്നു (HDevEngine ഉപയോഗിക്കുന്നത്).
HD വികസിപ്പിക്കുക

നമുക്ക് HDevelop ആദ്യം നോക്കാം. ചിത്രം 3.1 കാണിക്കുന്നത് HDevelop-ന്റെ ഉപയോക്തൃ ഇന്റർഫേസ്, ഒരു പ്രോഗ്രാം ലോഡുചെയ്ത് ഭാഗികമായി നടപ്പിലാക്കിയ ശേഷം.
ഡിഫോൾട്ടായി, ഈ ജാലകങ്ങൾ ദൃശ്യമാണ്, HDevelop-നൊപ്പം വികസിപ്പിക്കുന്നതിന് അവ അത്യാവശ്യമാണ്:

  1. ഗ്രാഫിക്സ് വിൻഡോ ഡിസ്പ്ലേകൾ (ഇന്റർമീഡിയറ്റ്) ഫലങ്ങൾ, അതായത് ഇമേജുകൾ, പ്രദേശങ്ങൾ, XLD-കൾ എന്നിവ പോലുള്ള ഐക്കണിക് ഡാറ്റ (പേജ് 10).
  2. പ്രോഗ്രാം വിൻഡോ ഇവിടെയാണ് നിങ്ങൾ ഹാൽകണിന്റെ ഇമേജ് പ്രോസസ്സിംഗ് രീതികൾ ആക്സസ് ചെയ്യുന്നതിന് ഓപ്പറേറ്റർമാർ (പേജ് 10) ഉപയോഗിച്ച് നിങ്ങളുടെ പ്രോഗ്രാം കോഡ് ടൈപ്പ് ചെയ്യുന്നത്.
  3. വേരിയബിൾ വിൻഡോ എല്ലാ വേരിയബിളുകളും കാണിക്കുന്നു, അതായത് ഐക്കണിക് വേരിയബിളുകളും കൺട്രോൾ വേരിയബിളുകളും. ഐക്കണിക് വേരിയബിളുകളിൽ ഐക്കണിക് ഡാറ്റയും (പേജ് 10) കൺട്രോൾ വേരിയബിളുകളിൽ നിയന്ത്രണ ഡാറ്റയും അടങ്ങിയിരിക്കുന്നു (പേജ് 10).

HDevelop നെക്കുറിച്ചുള്ള വിശദമായ വിവരങ്ങൾ HDevelop ഉപയോക്തൃ ഗൈഡിൽ കാണാം. ഞങ്ങളുടെ ട്യൂട്ടോറിയൽ വീഡിയോകൾ HDevelop-ന് നല്ലൊരു ആമുഖവും നൽകുന്നു:

  • HDevelop ട്യൂട്ടോറിയൽ 01: GUI, നാവിഗേഷൻ
  • HDevelop ട്യൂട്ടോറിയൽ 02: വേരിയബിളുകൾ
  • HDevelop ട്യൂട്ടോറിയൽ 03: ദൃശ്യവൽക്കരണം

ഹാൽക്കൺ-21-11-പുരോഗതി-02

ചിത്രം 3.1: HDevelop-ന്റെ ഉപയോക്തൃ ഇന്റർഫേസ്.

Example പ്രോഗ്രാം

നിങ്ങൾ ഇപ്പോൾ HDevelop-ന്റെ ഉപയോക്തൃ ഇന്റർഫേസിലേക്കും HALCON (പേജ് 9) അടിസ്ഥാന ആശയങ്ങളിലേക്കും പരിചയപ്പെടുത്തിയിരിക്കുന്നു, ലൈബ്രറി എക്‌സ്‌പോർട്ട് അപ്രോച്ച് ഉപയോഗിച്ച് നമുക്ക് ഒരു C++ ആപ്ലിക്കേഷൻ വികസിപ്പിക്കാം.
ഇനിപ്പറയുന്ന ഘട്ടം ഘട്ടമായുള്ള നിർദ്ദേശങ്ങൾക്ക് പുറമേ, ഞങ്ങളുടെ ട്യൂട്ടോറിയൽ വീഡിയോകൾ കാണാൻ ഞങ്ങൾ ശുപാർശ ചെയ്യുന്നു: ലൈബ്രറി പ്രോജക്റ്റ് എക്‌സ്‌പോർട്ട് ഉപയോഗിച്ച് ഒരു C++ ആപ്ലിക്കേഷനിലേക്ക് HDevelop കോഡ് സംയോജിപ്പിക്കുക
ലൈബ്രറി പ്രോജക്റ്റ് എക്‌സ്‌പോർട്ട് ഉപയോഗിച്ച് ഒരു C# ആപ്ലിക്കേഷനിലേക്ക് HDevelop കോഡ് സംയോജിപ്പിക്കുക
വീഡിയോകൾ ലൈബ്രറി എക്‌സ്‌പോർട്ട് കാണിക്കുകയും വിഷയത്തെക്കുറിച്ചുള്ള കൂടുതൽ പശ്ചാത്തല വിവരങ്ങൾ നൽകുകയും ചെയ്യുന്നു.

എച്ച്ഡി ഡെവലപ്പിൽ പ്രോട്ടോടൈപ്പ് സൃഷ്ടിക്കുക
ഇനിപ്പറയുന്ന എക്സിയുടെ ചുമതലample എന്നത് ഒരു ചിത്രം വായിച്ച് അതിൽ ബന്ധിപ്പിച്ചിട്ടുള്ള പ്രദേശങ്ങളുടെ എണ്ണം കണക്കാക്കുക എന്നതാണ്.

  1. HDevelop തുറന്ന് പ്രോഗ്രാം വിൻഡോയിൽ ഇനിപ്പറയുന്ന കോഡ് നൽകുക:
    read_image (ചിത്രം, 'pcb')
    പരിധി (ചിത്രം, മേഖല, 0, 122)
    കണക്ഷൻ (മേഖല, ബന്ധിപ്പിച്ച പ്രദേശങ്ങൾ)
    count_obj (കണക്‌റ്റഡ് മേഖലകൾ, നമ്പർ)
  2. ടൂൾബാറിലെ റൺ ക്ലിക്ക് ചെയ്യുകയോ F5 അമർത്തുകയോ ചെയ്തുകൊണ്ട് നിങ്ങളുടെ പ്രോഗ്രാം പരിശോധിക്കുക.

ഈ HDevelop കോഡ് ഒരു യഥാർത്ഥ ആപ്ലിക്കേഷനിലേക്ക് എളുപ്പത്തിൽ സമന്വയിപ്പിക്കുന്നതിന്, ഒരു പ്രാദേശിക നടപടിക്രമത്തിൽ ഞങ്ങൾ മെഷീൻ വിഷൻ ഭാഗം ഉൾക്കൊള്ളുന്നു.

  1. ഇനിപ്പറയുന്ന കോഡ് ലൈനുകൾ ഹൈലൈറ്റ് ചെയ്യുക: ത്രെഷോൾഡ് (ചിത്രം, മേഖല, 0, 122) കണക്ഷൻ (മേഖല, ബന്ധിപ്പിച്ച പ്രദേശങ്ങൾ) count_obj (കണക്റ്റഡ് റീജിയണുകൾ, നമ്പർ)
  2. സന്ദർഭ മെനു തുറക്കാൻ റൈറ്റ് ക്ലിക്ക് ചെയ്യുക.
  3. പുതിയ നടപടിക്രമം സൃഷ്ടിക്കുക തിരഞ്ഞെടുക്കുക.
  4. ഇതിന് count_regions എന്ന് പേരിടുക.
  5. പാരാമീറ്ററുകൾ തിരഞ്ഞെടുത്ത് സെലക്ഷൻ സ്കീം ഫസ്റ്റ് ഇൻ, ലാസ്റ്റ് ഔട്ട് ആക്കി മാറ്റുക.
  6. ശരി ഉപയോഗിച്ച് സ്ഥിരീകരിക്കുക.
  7. നിങ്ങളുടെ HDevelop പ്രോഗ്രാം hdev_count_regions.hdev ആയി സംരക്ഷിക്കുക

വിഷ്വൽ സ്റ്റുഡിയോ പ്രോജക്റ്റ് തയ്യാറാക്കുക
ഇതിൽ മുൻample, ഞങ്ങൾ വിഷ്വൽ സ്റ്റുഡിയോ 2019 ഉപയോഗിക്കും. 1

  1. ഒരു ശൂന്യമായ C++ Windows കൺസോൾ പ്രോജക്‌റ്റ് സൃഷ്‌ടിച്ച് അതിന് vs_count_regions എന്ന് പേരിടുക. അതേ ഡയറക്‌ടറിയിൽ പ്ലേസ് സൊല്യൂഷനും പ്രൊജക്‌റ്റും എന്ന ഓപ്‌ഷൻ സജീവമാക്കുക. 2
  2. ഒരു C++ ഉറവിടം ചേർക്കുക file (മെനു പ്രോജക്റ്റ് പുതിയ ഇനം ചേർക്കുക... C++ File) കൂടാതെ അതിന് vs_count_regions.cpp എന്ന് പേരിടുക.
  3. ടൂൾബാറിലെ ഡ്രോപ്പ് ഡൗൺ മെനുവിൽ നിന്ന് പരിഹാര പ്ലാറ്റ്ഫോം x64 തിരഞ്ഞെടുക്കുക.
  4. നിങ്ങളുടെ പ്രോജക്റ്റ് പ്രോപ്പർട്ടികൾ (മെനു പ്രോജക്റ്റ് vs_count_regions പ്രോപ്പർട്ടികൾ...) തുറന്ന് ഇനിപ്പറയുന്ന ക്രമീകരണങ്ങൾ ഉണ്ടാക്കുക:
    • C/C++ General തിരഞ്ഞെടുത്ത് ഇനിപ്പറയുന്ന അധിക ഡയറക്‌ടറികൾ ചേർക്കുക:$(HALCONROOT)\include;$(HALCONROOT)\include\halconcpp;
    • ലിങ്കർ ജനറൽ തിരഞ്ഞെടുത്ത് ഇനിപ്പറയുന്ന അധിക ലൈബ്രറി ഡയറക്ടറി ചേർക്കുക:$(HALCONROOT)\lib\$(HALCONARCH);
    • ലിങ്കർ ഇൻപുട്ട് തിരഞ്ഞെടുത്ത് ഇനിപ്പറയുന്ന അധിക ആശ്രിതത്വങ്ങൾ ചേർക്കുക: halconcpp.lib;hdevenginecpp.lib;

കയറ്റുമതി ലൈബ്രറി പദ്ധതി
അടുത്തതായി, ഞങ്ങളുടെ വിഷ്വൽ സ്റ്റുഡിയോ പ്രോജക്റ്റ് ഫോൾഡറിലേക്ക് ഞങ്ങൾ HDevelop പ്രോഗ്രാം hdev_count_regions.hdev കയറ്റുമതി ചെയ്യുന്നു.

  1. മുമ്പ് സൃഷ്ടിച്ച HDevelop പ്രോഗ്രാം hdev_count_regions.hdev തുറക്കുക.
  2. തുറക്കുക File  കയറ്റുമതി ലൈബ്രറി പ്രോജക്റ്റ്...
  3. ഇനിപ്പറയുന്ന ക്രമീകരണങ്ങൾ ഉണ്ടാക്കുക:
    • ഇൻപുട്ട് file: നിലവിലെ പ്രോഗ്രാം
    • ടാർഗെറ്റ് ഭാഷ: C++
    • പദ്ധതിയുടെ പേര്: hdev_count_regions
    • പ്രോജക്റ്റ് ലൊക്കേഷൻ: ഞങ്ങളുടെ വിഷ്വൽ സ്റ്റുഡിയോ പ്രോജക്റ്റിന്റെ സ്ഥാനം vs_count_regions തിരഞ്ഞെടുക്കുക.
    • നെയിംസ്പേസ്: hdev_count_regions
  4. കയറ്റുമതി ഉപയോഗിച്ച് സ്ഥിരീകരിക്കുക.

ഇപ്പോൾ, നിങ്ങളുടെ വിഷ്വൽ സ്റ്റുഡിയോ പ്രോജക്റ്റ് ഫോൾഡർ vs_count_regions കുറഞ്ഞത് ഇനിപ്പറയുന്ന ഡാറ്റയെങ്കിലും അടങ്ങിയിരിക്കണം:

  • vs_count_regions.cpp (ഉറവിടം File)
  • vs_count_regions.sln (പരിഹാരം)
  • hdev_count_regions (HDevelop എക്‌സ്‌പോർട്ടിൽ നിന്നുള്ള ഫോൾഡർ)
    • cmake
    • res_ hdev_ count_ മേഖലകൾ
    • hdev _ count_ മേഖലകൾ. hdev
  •  ഉറവിടം
    • hdev_count_regions.cpp
    • hdev_count_regions.h
    • CMakeLists.txt

വിഷ്വൽ സ്റ്റുഡിയോയിലേക്ക് ലൈബ്രറി പ്രോജക്റ്റ് സംയോജിപ്പിക്കുക
അവസാനമായി, ഞങ്ങളുടെ വിഷ്വൽ സ്റ്റുഡിയോ പ്രോജക്റ്റിലേക്ക് HDevelop പ്രോഗ്രാം സമന്വയിപ്പിക്കേണ്ടതുണ്ട്.

  1. വിഷ്വൽ സ്റ്റുഡിയോ പ്രോജക്റ്റ് തുറക്കുക.
  2. പ്രോജക്റ്റ് തുറന്ന് നിലവിലുള്ള ഇനം ചേർക്കുക... തുടർന്ന് C++ തിരഞ്ഞെടുക്കുക file hdev_count_regions.cpp ഉം തലക്കെട്ടും file hdev_count_regions.h, HDevelop-ന്റെ ലൈബ്രറി എക്‌സ്‌പോർട്ട് സൃഷ്‌ടിച്ചത്. (ദി filehdev_count_regions എന്ന ഫോൾഡറിലാണ് s സ്ഥിതി ചെയ്യുന്നത്.)
  3. vs_count_regions.cpp എന്നതിലേക്ക് ഇനിപ്പറയുന്ന കോഡ് നൽകുക:
    #ഉൾപ്പെടുത്തുക
    #"HalconCpp.h" ഉൾപ്പെടുത്തുക
    #ഉൾപ്പെടുത്തുക "hdev_count_regions/source/hdev_count_regions.h"
    ഇന്റ് മെയിൻ()
    {
    HalconCpp::HImage ഇമേജ് ("pcb");
    hdev_count_regions ::SetResourcePath ("hdev_count_regions/res_hdev_count_regions");
    HalconCpp::HTuple നമ്പർ{};
    hdev_count_regions ::count_regions(ചിത്രം, &നമ്പർ);
    std::cout << “മേഖലകളുടെ എണ്ണം: ” << Number.L() << '\n';
    }
  4. പ്രോഗ്രാം എക്സിക്യൂട്ട് ചെയ്യുക. → ഒരു കൺസോൾ തുറക്കുന്നു, ഫലം 'പ്രദേശങ്ങളുടെ എണ്ണം: 43' കാണിക്കുന്നു.

എങ്ങനെ തുടരാം

HALCON-ലേക്ക് കൂടുതൽ ആഴത്തിൽ ഇറങ്ങാൻ, ഞങ്ങൾ കൂടുതൽ ഡോക്യുമെന്റേഷനും പിന്തുണയും വാഗ്ദാനം ചെയ്യുന്നു.

  • എച്ച്ഡി ഡെവലപ്പ് എക്സിampലെ പ്രോഗ്രാമുകൾ
    HALCON മുൻകൂർ വിപുലമായ ഒരു കൂട്ടം നൽകുന്നുample പ്രോഗ്രാമുകൾ, HDevelop ന് മാത്രമല്ല, വ്യത്യസ്ത പ്രോഗ്രാമിംഗ് ഭാഷകൾക്കും. ഈ മുൻampപരിസ്ഥിതി വേരിയബിൾ % HALCONEX സൂചിപ്പിക്കുന്ന ഡയറക്ടറിയിൽ les കാണാവുന്നതാണ്AMPLES% അല്ലെങ്കിൽ, വേരിയബിൾ സജ്ജീകരിച്ചിട്ടില്ലെങ്കിൽ, ഉപഡയറക്ടറിയിൽ exampനിങ്ങൾ HALCON ഇൻസ്റ്റാൾ ചെയ്ത ഫോൾഡറിന്റെ les.
    ഒരു HDevelop തുറക്കാൻ മുൻampലെ പ്രോഗ്രാം, മെനു തിരഞ്ഞെടുക്കുക File  HDevelop Ex ബ്രൗസ് ചെയ്യുകampലെ പ്രോഗ്രാമുകൾ.... തുടക്കക്കാർക്ക്, ഒരു മുൻ തിരഞ്ഞെടുക്കാൻ ഞങ്ങൾ ശുപാർശ ചെയ്യുന്നുampവിഭാഗത്തിൽ നിന്നുള്ള le.
  • സേവനങ്ങളും പിന്തുണയും
    ഞങ്ങളുടെ webസൈറ്റ് https://www.mvtec.com/services-support വൈവിധ്യമാർന്ന പിന്തുണ വാഗ്ദാനം ചെയ്യുന്നു, ഉദാഹരണത്തിന്ampലെ ട്യൂട്ടോറിയൽ വീഡിയോകൾ, വർക്ക്ഷോപ്പുകൾ, പരിശീലനങ്ങൾ എന്നിവയെ കുറിച്ചുള്ള വിവരങ്ങൾ, നുറുങ്ങുകളും തന്ത്രങ്ങളും നൽകുന്ന ഡെവലപ്പർമാരുടെ കോർണർ, കൂടാതെ മറ്റു പലതും.
  • ഹാൽക്കൺ ഡോക്യുമെന്റേഷൻ
    ഡോക്യുമെന്റേഷൻ തുടക്കക്കാരായ വിഷയങ്ങൾ മുതൽ വിദഗ്ദ്ധ അറിവ് വരെ ധാരാളം വിവരങ്ങൾ നൽകുന്നു. ഉദാample, ഞങ്ങളുടെ സൊല്യൂഷൻ ഗൈഡുകൾ മെഷീൻ വിഷൻ രീതികളും HDevelop-ൽ അവ എങ്ങനെ പ്രയോഗിക്കാമെന്നും വിവരിക്കുന്നു. പ്രധാന മെഷീൻ വിഷൻ രീതികൾ നിങ്ങളെ പരിചയപ്പെടുത്തുന്ന സൊല്യൂഷൻ ഗൈഡ് I ആണ് ഒരു നല്ല ആരംഭ പോയിന്റ്.
    ഒരു ഓവർview ഒരു ചെറിയ വിവരണമുള്ള എല്ലാ മാനുവലുകളും ഡോക്യുമെന്റേഷന്റെ എൻട്രി പേജിൽ കാണാം.

പ്രമാണങ്ങൾ / വിഭവങ്ങൾ

ഹാൽക്കൺ 21.11 പുരോഗതി [pdf] ഉപയോക്തൃ ഗൈഡ്
21.11 പുരോഗതി, 21.11, പുരോഗതി

റഫറൻസുകൾ

ഒരു അഭിപ്രായം ഇടൂ

നിങ്ങളുടെ ഇമെയിൽ വിലാസം പ്രസിദ്ധീകരിക്കില്ല. ആവശ്യമായ ഫീൽഡുകൾ അടയാളപ്പെടുത്തി *