版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
HALCON編程及工程應(yīng)用346頁完整版PPT課件1.11.2機(jī)器視覺HALCON介紹
HALCON編程基礎(chǔ)與工程應(yīng)用第1章
機(jī)器視覺和HALCON機(jī)器視覺軟件1.1
機(jī)器視覺1.1.1機(jī)器視覺簡(jiǎn)介HALCON編程基礎(chǔ)與工程應(yīng)用
機(jī)器視覺(Machinevision)是一項(xiàng)綜合技術(shù),包括圖像處理、機(jī)械工程技術(shù)、電氣控制技術(shù)、光源照明、光學(xué)成像、傳感器、模擬與數(shù)字視頻技術(shù)、計(jì)算機(jī)軟硬件技術(shù)(圖像增強(qiáng)和分析算法、圖像采集卡、I/O卡等)。一個(gè)典型的機(jī)器視覺應(yīng)用系統(tǒng)包括圖像捕捉、光源系統(tǒng)、圖像數(shù)字化模塊、數(shù)字圖像處理模塊、智能判斷決策模塊和機(jī)械控制執(zhí)行模塊。1.1
機(jī)器視覺1.1.1機(jī)器視覺簡(jiǎn)介HALCON編程基礎(chǔ)與工程應(yīng)用1.1
機(jī)器視覺1.1.1機(jī)器視覺簡(jiǎn)介HALCON編程基礎(chǔ)與工程應(yīng)用1.1.2機(jī)器視覺關(guān)鍵技術(shù)與發(fā)展HALCON編程基礎(chǔ)與工程應(yīng)用1.1
機(jī)器視覺1.機(jī)器視覺系統(tǒng)基本構(gòu)成
一個(gè)典型的工業(yè)機(jī)器視覺系統(tǒng)包括:光源、鏡頭(定焦鏡頭、變倍鏡頭、遠(yuǎn)心鏡頭、顯微鏡頭)、相機(jī)(包括CCD相機(jī)或COMS相機(jī))、圖像處理單元(或圖像采集卡)、圖像處理軟件、監(jiān)視器、通訊單元及輸入輸出單元等。1.1.2機(jī)器視覺關(guān)鍵技術(shù)與發(fā)展HALCON編程基礎(chǔ)與工程應(yīng)用1.1
機(jī)器視覺2.機(jī)器視覺主要關(guān)鍵技術(shù)
機(jī)器視覺技術(shù),是一門涉及人工智能、神經(jīng)生物學(xué)、心理物理學(xué)、計(jì)算機(jī)科學(xué)、圖像處理、模式識(shí)別等諸多領(lǐng)域的交叉學(xué)科。機(jī)器視覺主要用計(jì)算機(jī)來模擬人的視覺功能,從客觀事物的圖像中提取信息,進(jìn)行處理并加以理解,最終用于實(shí)際檢測(cè)、測(cè)量和控制。機(jī)器視覺技術(shù)最大的特點(diǎn)是速度快、信息量大、功能多。1.1.2機(jī)器視覺關(guān)鍵技術(shù)與發(fā)展HALCON編程基礎(chǔ)與工程應(yīng)用1.1
機(jī)器視覺3.機(jī)器視覺的發(fā)展
機(jī)器視覺技術(shù)是計(jì)算機(jī)學(xué)科的一個(gè)重要分支,自起步發(fā)展至今,其功能以及應(yīng)用范圍隨著工業(yè)自動(dòng)化的發(fā)展逐漸完善和推廣。20世紀(jì)50年代開始研究二維圖像的統(tǒng)計(jì)模式識(shí)別。60年代Roberts開始進(jìn)行三維機(jī)器視覺的研究。70年代中,MIT人工智能實(shí)驗(yàn)室正式開設(shè)“機(jī)器視覺”的課程。80年代開始,開始了全球性的研究熱潮,機(jī)器視覺獲得了蓬勃發(fā)展,新概念、新理論不斷涌現(xiàn)。1.2.1HDevelop介紹HALCON編程基礎(chǔ)與工程應(yīng)用1.2HALCON介紹1.集成開發(fā)環(huán)境-HDevelopHALCON提供交互式的編程環(huán)境HDevelop,可在Windows,Linux,Unix下使用,使用HDevelop可使用戶快速有效的解決圖像處理問題。1.2.1HDevelop介紹HALCON編程基礎(chǔ)與工程應(yīng)用1.2HALCON介紹1.2.1HDevelop介紹HALCON編程基礎(chǔ)與工程應(yīng)用1.2HALCON介紹
HDevelop能直接連接采集卡和相機(jī),從采集卡、相機(jī)或者文件中載入圖像,檢查圖像數(shù)據(jù),進(jìn)而開發(fā)一個(gè)視覺檢測(cè)方案,并能測(cè)試不同算子或者參數(shù)值的計(jì)算效果,保存后的視覺檢測(cè)程序,可以導(dǎo)出以C++、C#、C、VisualBasic,或者VB.NET支持的程序,進(jìn)行混合編程。HDevelop編程方式具有的優(yōu)點(diǎn)是:(1)很好的支持所有HALCON算子;(2)方便檢查可視數(shù)據(jù);(3)方便選擇、調(diào)試和編輯參數(shù);(4)方便技術(shù)支持。2.標(biāo)準(zhǔn)的開發(fā)流程HALCON編程基礎(chǔ)與工程應(yīng)用1.2HALCON介紹3.交互式并行編程環(huán)境HALCON編程基礎(chǔ)與工程應(yīng)用1.2HALCON介紹HALCON提供支持多CPU處理器的交互式并行編程環(huán)境ParalellDevelop,其繼承了單處理器版HDevelop的所有特點(diǎn),在多處理器計(jì)算機(jī)上會(huì)自動(dòng)將數(shù)據(jù)(比如圖像)分配給多個(gè)線程,每一個(gè)線程對(duì)應(yīng)一個(gè)處理器,用戶無需改動(dòng)已有的HALCON程序,就立即獲得顯著的速度提升。
并行HALCON不僅是線程安全的,而且可以多次調(diào)用,因此,多個(gè)線程可在同一時(shí)刻同時(shí)調(diào)用HALCON操作。此特性使得機(jī)器視覺應(yīng)用軟件可以將一個(gè)任務(wù)分解,在不同的處理器上并行處理,并行HALCON可以使用戶使用最新的超級(jí)線程技術(shù)。1.2.2HALCON功能及應(yīng)用簡(jiǎn)介HALCON編程基礎(chǔ)與工程應(yīng)用1.2HALCON介紹1.BLOB分析BLOB包括標(biāo)準(zhǔn)閾值分割,動(dòng)態(tài)分割以及其他附加的圖像分割算子,HALCON可以快速實(shí)現(xiàn)BLOB分析。2.形態(tài)學(xué)HALCON可以基于任意結(jié)構(gòu)元素針對(duì)Region和image的腐蝕、膨脹、開/閉運(yùn)算。3.圖像特征轉(zhuǎn)換為Region/XLD特性HALCON獨(dú)特的數(shù)據(jù)結(jié)構(gòu)Region/XLD可以保證圖像處理的快速準(zhǔn)確。4.圖像的運(yùn)算HALCON為了實(shí)現(xiàn)圖像處理的各種目的可以進(jìn)行圖像的代數(shù)運(yùn)算,邏輯運(yùn)算,幾何運(yùn)算。1.2.2HALCON功能及應(yīng)用簡(jiǎn)介HALCON編程基礎(chǔ)與工程應(yīng)用1.2HALCON介紹5.傅立葉變換實(shí)現(xiàn)圖像的空間域和頻域之間的變換。6.標(biāo)定利用HALCON本身的標(biāo)定板,通過幾個(gè)內(nèi)外攝像頭參數(shù)實(shí)現(xiàn)快速標(biāo)定。7.匹配基于相關(guān)性匹配,基于形狀匹配,基于灰度值匹配等等;即使目標(biāo)發(fā)生旋轉(zhuǎn)、放縮、局部變形、部分遮擋或者光照有非線性變化,HALCON利用XLD匹配技術(shù)可實(shí)時(shí)地有效、準(zhǔn)確地找到目標(biāo)。8.測(cè)量HALCON提供有1D測(cè)量、2D測(cè)量、3D測(cè)量,HALCON邊緣提取輸出正像素輪廓,達(dá)到最高精度,保證了測(cè)量的精準(zhǔn)性。第2章HALCON編程基礎(chǔ)HALCON編程基礎(chǔ)與工程應(yīng)用HALCON軟件的編程環(huán)境Hdevelop是交互式的,它的操作窗口和編程界面簡(jiǎn)潔、易操作。本章主要介紹Hdevelop的使用,并介紹HALCON的控制語句,以及編程環(huán)境下圖像的讀取、顯示和轉(zhuǎn)換。
2.4HDevelop應(yīng)用界面介紹HALCON控制語句HALCON算子
HALCON圖像讀取、顯示和轉(zhuǎn)換Blob分析第2章HALCON編程基礎(chǔ)HALCON編程基礎(chǔ)與工程應(yīng)用2.1HDevelop應(yīng)用界面介紹HALCON編程基礎(chǔ)與工程應(yīng)用HDevelop圖形組件是開始視覺處理算法的一個(gè)很好的工具,其類似于VC、VB、Delphi等編譯環(huán)境,它有自己的交互式界面,可以編譯和測(cè)試視覺處理算法,可以方便查看處理結(jié)果,也可以導(dǎo)出算法代碼。1.HDevelop預(yù)覽HALCON編程基礎(chǔ)與工程應(yīng)用HALCON安裝完成后,點(diǎn)擊圖標(biāo)運(yùn)行HALCON軟件,下面介紹其主要的界面。1.主界面整個(gè)界面分為標(biāo)題欄、菜單欄、工具欄、狀態(tài)欄和四個(gè)活動(dòng)界面窗口,四個(gè)活動(dòng)界面窗口分別是圖像變量窗口、算子窗口、變量窗口和程序窗口,如圖2-1所示。如果窗口排列不整齊,可以選擇菜單欄>窗口>排列窗口,重新排列窗口。圖2-1HALCON主界面1.HDevelop預(yù)覽HALCON編程基礎(chǔ)與工程應(yīng)用2.菜單欄菜單欄包含所有HDevelop的功能命令,單擊打開后有下拉菜單,如圖2-2所示。圖2-2菜單欄4.狀態(tài)欄狀態(tài)欄顯示程序的執(zhí)行情況,如圖2-4所示。。圖2-3工具欄3.工具欄工具欄包含了一系列常用功能的快捷方式,如圖2-3所示。圖2-4狀態(tài)欄1.HDevelop預(yù)覽HALCON編程基礎(chǔ)與工程應(yīng)用5.打開一個(gè)例程HALCON提供了大量基于應(yīng)用的示例程序,下面打開一個(gè)HALCON自帶例程,簡(jiǎn)單了解一下HALCON程序的結(jié)構(gòu)。從菜單欄>文件>瀏覽程序>打開一個(gè)例程,比如打開ball.hdev,如圖2-5,2-6所示。點(diǎn)擊工具欄“運(yùn)行”工具圖標(biāo),運(yùn)行程序,結(jié)果如圖2-7所示。圖2-5瀏覽例程1.HDevelop預(yù)覽HALCON編程基礎(chǔ)與工程應(yīng)用圖2-7例程運(yùn)行結(jié)果圖2-6打開例程2.HDevelop窗口介紹HALCON編程基礎(chǔ)與工程應(yīng)用1.HDevelop算子窗口算子窗口顯示的是算子的重要數(shù)據(jù),包含了所有的參數(shù),各個(gè)變量的型態(tài),以及參數(shù)數(shù)值,如圖2-8所示。這里會(huì)顯示參數(shù)的默認(rèn)值,以及可以選用的數(shù)值。每一個(gè)算子都有聯(lián)機(jī)幫助。另一個(gè)常用的是算子名稱的查詢顯示功能,在一個(gè)combobox里,只要鍵入部分字符串甚至開頭的字母,即可顯示所有符合名稱的算子供選用,如圖2-9所示。圖2-8算子窗口2.HDevelop窗口介紹HALCON編程基礎(chǔ)與工程應(yīng)用2.HDevelop程序窗口程序窗口是用來顯示一個(gè)HDevelop程序。它可以顯示整個(gè)程序或是某個(gè)運(yùn)算符。窗口左側(cè)是一些控制程序執(zhí)行的指示符號(hào)。HDevelop剛啟動(dòng)時(shí),可以看到一個(gè)綠色箭頭的程序計(jì)數(shù)器(programcounter,簡(jiǎn)稱PC),一個(gè)插入符號(hào),還可以設(shè)一個(gè)斷點(diǎn)(breakingpoint),窗口右側(cè)顯示程序代碼,如圖2-10所示。圖2-9算子查詢2.HDevelop窗口介紹HALCON編程基礎(chǔ)與工程應(yīng)用在程序編輯窗口點(diǎn)擊右鍵,在下拉菜單顯示程序運(yùn)行調(diào)試中的一些設(shè)置,如圖2-11所示。圖2-10程序窗口圖2-11程序調(diào)試設(shè)置2.HDevelop窗口介紹HALCON編程基礎(chǔ)與工程應(yīng)用HDevelop啟動(dòng)以后,就可以開始從程序窗口輸入,逐步建立一個(gè)HDevelop程序。要在程序中新增一行,比如加一個(gè)算子,有以下兩個(gè)步驟。(1)首先要將光標(biāo)放在新增的地方,用鍵盤的Shift鍵加上的鼠標(biāo)左鍵,點(diǎn)在要加入的地方,然后從算子菜單中選擇,或是由算子窗口來選用想要加入的數(shù)據(jù)。(2)新的算子會(huì)出現(xiàn)在算子窗口中,包含它的參數(shù)等數(shù)據(jù),此時(shí)按下“輸入”,就會(huì)將它加入程序代碼中,成為新增的一行;如果按下“確定”,除了程序代碼會(huì)新增以外,同時(shí)也會(huì)執(zhí)行程序。如果按的是“應(yīng)用”,算子不會(huì)新增到程序中,但是會(huì)被執(zhí)行,這樣就可以方便又有效的測(cè)試修改參數(shù)的結(jié)果。如果只要執(zhí)行某一行,可以將程序計(jì)數(shù)器(PC)置于要執(zhí)行的那行前,再用鼠標(biāo)左鍵在該行前單擊,然后按HDevelop工具欄的“單步跳過函數(shù)”,如果單擊“運(yùn)行”,則程序代碼都會(huì)執(zhí)行,直到一個(gè)斷點(diǎn)或是按“停止”將其中止。2.HDevelop窗口介紹3.HDevelop變量窗口變量窗口顯示了程序在執(zhí)行時(shí)產(chǎn)生的各種變量,包括圖像變量和控制變量,如圖2-12所示。在變量上用鼠標(biāo)雙擊,即可顯示變量值,如圖2-13所示。如果變量值是圖像變量,鼠標(biāo)雙擊,會(huì)顯示在圖形窗口里。圖2-12變量窗口圖2-13變量值HALCON編程基礎(chǔ)與工程應(yīng)用2.HDevelop窗口介紹
4.HDevelop圖形窗口圖形窗口用來顯示圖像化變量數(shù)據(jù),如圖2-14所示。圖2-14圖形窗口圖2-15可視化菜單(1)圖形窗口可視化圖形窗口可視化的方式可以依據(jù)需要來調(diào)整,相關(guān)功能位于“可視化”菜單下,如圖2-15所示??梢蚤_啟數(shù)個(gè)圖形窗口,并且自行選用要用的窗口。HALCON編程基礎(chǔ)與工程應(yīng)用2.HDevelop窗口介紹圖2-16圖形窗口的3D模式(2)圖形窗口的3D模式點(diǎn)擊圖2-14圖形窗口右上角“3D點(diǎn)圖模式”,可以將圖形窗口變?yōu)?D模式,如圖2-16所示。HALCON編程基礎(chǔ)與工程應(yīng)用2.HDevelop窗口介紹
圖2-17灰度直方圖(3)HDevelop灰度直方圖從菜單欄>可視化菜單>灰度直方圖,打開灰度直方圖功能窗口,進(jìn)行設(shè)置,如圖2-17所示。HALCON編程基礎(chǔ)與工程應(yīng)用2.HDevelop窗口介紹
圖2-18特征直方圖(4)HDevelop特征直方圖從菜單欄>可視化菜單>特征直方圖,打開特征直方圖功能窗口,進(jìn)行設(shè)置和編輯,并可根據(jù)編輯的直觀結(jié)果,插入程序代碼。如圖2-18所示。HALCON編程基礎(chǔ)與工程應(yīng)用3.HDevelop菜單介紹
圖2-19編輯菜單1.編輯菜單編輯菜單用于HDevelop編程時(shí)的編輯使用,如圖2-19所示。HALCON編程基礎(chǔ)與工程應(yīng)用3.HDevelop菜單介紹
圖2-20執(zhí)行菜單2.執(zhí)行菜單執(zhí)行菜單用于程序調(diào)試時(shí)的設(shè)置及運(yùn)行,如圖2-20所示。HALCON編程基礎(chǔ)與工程應(yīng)用3.HDevelop菜單介紹
圖2-21過程菜單3.過程菜單過程菜單用于HDevelop中創(chuàng)建一個(gè)過程或者開發(fā)新的算子,如圖2-21所示。HALCON編程基礎(chǔ)與工程應(yīng)用3.HDevelop菜單介紹
圖2-22助手菜單4.助手菜單打開菜單欄>助手,助手菜單是特有的快速原型化工具,具有直觀可視的特點(diǎn),可以進(jìn)行數(shù)據(jù)分析和特征檢測(cè),包括圖像獲取助手、匹配助手、攝像機(jī)標(biāo)定助手和測(cè)量助手。如圖2-22所示。HALCON編程基礎(chǔ)與工程應(yīng)用2.2HALCON控制語句
HALCON編程基礎(chǔ)與工程應(yīng)用HALCON提供的控制流與C/C++的用法類似。一般成對(duì)存在,一個(gè)是開始的標(biāo)志,一個(gè)是結(jié)束的標(biāo)志。也就是說有if就有endif,有while就有endwhile??刂普Z句類型主要由以下幾種組成:(1)if條件語句;(2)switch多分支條件語句;(3)while循環(huán)語句;(4)for循環(huán)語句;(5)中斷語句。1.條件語句1.if條件語句If條件語句有三種常用的表達(dá)形式,下面一一列出。(1)if(表達(dá)式)語句組1endif語義為:判斷表達(dá)式的值,如果表達(dá)式的值非零則執(zhí)行語句組1,否則直接轉(zhuǎn)到endif?!纠?-1】if條件語句實(shí)例1*賦值cont:=2*判斷變量cont的值是否大于等于1,大于等于1就執(zhí)行語句cont:=cont-1if(cont>=1)cont:=cont-1HALCON編程基礎(chǔ)與工程應(yīng)用1.條件語句*if條件語句結(jié)束標(biāo)志endif(2)if(表達(dá)式)語句組1else語句組2endif語義為:判斷表達(dá)式的值,如果表達(dá)式的值非零則執(zhí)行語句組1,否則執(zhí)行語句組2?!纠?-2】if條件語句實(shí)例2cont:=2*判斷變量cont的值是否大于等于1,大于等于1就執(zhí)行語句cont:=cont-1HALCON編程基礎(chǔ)與工程應(yīng)用1.條件語句if(cont>=1)cont:=cont-1*cont的值小于1就執(zhí)行語句cont:=cont+1elsecont:=cont+1*if條件語句結(jié)束標(biāo)志endif(3)if(表達(dá)式1)語句組1elseif(表達(dá)式2)語句組2else語句組3endifHALCON編程基礎(chǔ)與工程應(yīng)用1.條件語句語義為:判斷表達(dá)式的值,表達(dá)式1的值非零則執(zhí)行語句組1。表達(dá)式1的值為零而表達(dá)式2的值非零則執(zhí)行語句組2,兩個(gè)表達(dá)式的值都為零則執(zhí)行語句組3。【例2-3】if條件語句實(shí)例3cont:=2*判斷變量cont是否大于等于1,大于等于1就執(zhí)行語句cont:=cont-1if(cont>=1)cont:=cont-1*判斷變量cont是否小于等于-1,小于等于-1就執(zhí)行語句cont:=cont+1elseif(cont<=-1)cont:=cont+1*如果cont大于-1小于1執(zhí)行語句cont:=cont+2HALCON編程基礎(chǔ)與工程應(yīng)用1.條件語句elsecont:=cont+2*if條件語句結(jié)束標(biāo)志endif2.switch多分支條件語句當(dāng)if...else條件語句使用多層嵌套可以用switch多分支條件語句代替。格式:switch(條件)case常量表達(dá)式1:語句1break...
HALCON編程基礎(chǔ)與工程應(yīng)用1.條件語句case常量表達(dá)式n:語句nbreakdefault:語句n+1endswitch語義為:將條件值與其后的常量表達(dá)式的值逐個(gè)比較,當(dāng)條件的值與其后的某個(gè)常量表達(dá)式的值相等時(shí)就執(zhí)行常量表達(dá)式后面的所有語句。每個(gè)case語句只是一個(gè)入口標(biāo)號(hào),所以不能確定執(zhí)行的終止點(diǎn),如果只想執(zhí)行一條case語句,則應(yīng)該在case語句的最后使用break語句結(jié)束switch條件語句。如果條件值與所有的常量表達(dá)式的值均不相等則執(zhí)行default后面的語句。switch語句中所有常量表達(dá)式的值應(yīng)該是不重復(fù)的常量。因?yàn)閟witch語句無法處理浮點(diǎn)數(shù)所以條件值必須是整數(shù)。如果條件選項(xiàng)涉及取值范圍、浮點(diǎn)數(shù)或兩個(gè)變量的比較則應(yīng)該使用if...else條件語句。
HALCON編程基礎(chǔ)與工程應(yīng)用1.條件語句【例2-4】switch條件語句實(shí)例I:=5*I的值與其后的常量表達(dá)式的值逐個(gè)比較switch(I)case1:I:=I-3*中斷語句,跳出switch語句break*I的值與常量表達(dá)式的值相等,執(zhí)行后面的語句case5:I:=I+5break*I的值與其后所有常量表達(dá)式的值都不相等則執(zhí)行default語句default:I:=2*IHALCON編程基礎(chǔ)與工程應(yīng)用1.條件語句*switch語句結(jié)束標(biāo)志endswitchHALCON編程基礎(chǔ)與工程應(yīng)用2.循環(huán)控制語句1.while循環(huán)語句格式:while(條件)循環(huán)體語句endwhile語義為:首先對(duì)條件值進(jìn)行判斷,若條件值非零則重復(fù)執(zhí)行循環(huán)語句,直到條件值為零時(shí)退出while循環(huán)。若條件值始終不為零,則while循環(huán)容易成為死循環(huán),這時(shí)候需要使用break語句跳出循環(huán)。【例2-5】while循環(huán)語句實(shí)例In:=1In_Sum:=0*判斷In是否小于等于100,小于等于100則執(zhí)行循環(huán)體while(In<=100)HALCON編程基礎(chǔ)與工程應(yīng)用2.循環(huán)控制語句*求和In_Sum:=In_Sum+In*自加10In:=In+10*while語句結(jié)束標(biāo)志endwhile2.for循環(huán)語句格式:for(Index:=starttoendbystep)循環(huán)體endforFor循環(huán)語句是HALCON最重要的循環(huán)結(jié)構(gòu),通過控制變量的開始值至結(jié)束值來進(jìn)行循環(huán),start為Index變量的開始值,end為結(jié)束值,step為步長(zhǎng)值。首先判斷Index變量的開始值是否小于結(jié)束值,如果小于則執(zhí)行循環(huán)體,否則循環(huán)結(jié)束。執(zhí)行完循環(huán)體以后把Index的值加步長(zhǎng)值HALCON編程基礎(chǔ)與工程應(yīng)用2.循環(huán)控制語句作為Index的新值,判斷Index的新值是否小于結(jié)束值。如果小于則繼續(xù)執(zhí)行循環(huán)體,否則循環(huán)結(jié)束,依次執(zhí)行直到Index的新值大于結(jié)束值則循環(huán)結(jié)束?!纠?-6】for循環(huán)語句實(shí)例I:=0*循環(huán)變量I從1到10,每次增加1forJ:=1to10by1*每次循環(huán)判斷J是否小于5,小于5則跳過這次循環(huán)if(J<5)continue*if語句結(jié)束標(biāo)志endif*求和I:=I+JHALCON編程基礎(chǔ)與工程應(yīng)用2.循環(huán)控制語句*for循環(huán)語句結(jié)束標(biāo)志endforHALCON編程基礎(chǔ)與工程應(yīng)用3.中斷語句
一般來說break與continue語句都能夠使程序跳過部分代碼。在switch或任意循環(huán)中使用break語句可以使程序跳出switch或任意循環(huán)直接執(zhí)行后面的語句。continue語句用于循環(huán)語句,能夠使程序跳過循環(huán)體中余下的代碼進(jìn)行新一輪循環(huán)?!纠?-7】中斷語句實(shí)例I:=0forJ:=1to10by1*如果J大于5則跳出循環(huán)if(J>5)breakendif*如果J=3跳過此次循環(huán)HALCON編程基礎(chǔ)與工程應(yīng)用3.中斷語句if(J==3)continue*if語句結(jié)束標(biāo)志endif*求和I:=I+J*for語句結(jié)束標(biāo)志endforHALCON編程基礎(chǔ)與工程應(yīng)用2.3HALCON算子1.HALCON算子及算子編輯窗口HALCON算子的基本結(jié)構(gòu)為:算子(圖像輸入:圖像輸出:控制輸入:控制輸出:)HALCON算子中的四種參數(shù)被三個(gè)冒號(hào)依次隔開,分別是:圖像輸入?yún)?shù),圖像輸出參數(shù),控制輸入?yún)?shù),控制輸出參數(shù)。一個(gè)算子中可能這四種參數(shù)不會(huì)都存在,但是參數(shù)的次序不會(huì)變化。HALCON中的輸入?yún)?shù)不會(huì)被算子更改,只被算子使用,算子只能更改輸出參數(shù)。算子舉例:threshold(Image:Region:MinGray,MaxGray:)Threshold算子里面Image為圖像輸入?yún)?shù);Region為圖像輸出參數(shù);MinGray和MaxGray為控制輸入?yún)?shù)。由此看出調(diào)用這個(gè)算子必須輸入一個(gè)圖像參數(shù)和兩個(gè)控制參數(shù)才能輸出一個(gè)圖像參數(shù)。下面介紹一下HALCON算子的編輯窗口,編輯窗口如圖2-23和圖2-24所示。HALCON編程基礎(chǔ)與工程應(yīng)用1.HALCON算子及算子編輯窗口圖2-23算子編輯窗口1HALCON編程基礎(chǔ)與工程應(yīng)用1.HALCON算子及算子編輯窗口圖2-24算子編輯窗口2HALCON編程基礎(chǔ)與工程應(yīng)用1.HALCON算子及算子編輯窗口通過算子編輯窗口我們看到每條算子都有特定的顏色,我們可以通過打開參數(shù)用戶窗口看到編輯窗口中各算子對(duì)應(yīng)的顏色如圖2-25所示。通過菜單欄>編輯>參數(shù)選擇>程序窗口>打開程序窗口。一般情況下,語句的顏色分類:1)褐色:控制和開發(fā)算子;2)藍(lán)色:圖像獲取和處理算子;3)淺藍(lán)色:外部函數(shù);4)綠色:注釋。HALCON編程基礎(chǔ)與工程應(yīng)用1.HALCON算子及算子編輯窗口在參數(shù)用戶窗口可以通過對(duì)話框修改編輯窗口算子顯示的顏色、字體、HDevelop系統(tǒng)語言、布局。布局主要是指四個(gè)活動(dòng)界面窗口排列的位置,布局說明如圖2-26所示。圖2-25程序窗口參數(shù)HALCON編程基礎(chǔ)與工程應(yīng)用1.HALCON算子及算子編輯窗口圖2-26布局說明HALCON編程基礎(chǔ)與工程應(yīng)用2.算子查詢2算子查詢算子的幫助窗口包含了所有HALCON算子的詳細(xì)說明,可以通過按F1快捷鍵打開HALCON算子的幫助窗口,也可以通過下面的步驟打開幫助窗口:菜單欄>幫助>幫助。算子名稱具有查詢顯示作用,通過算子查找對(duì)話框鍵入全部或部分算子名稱,在彈出的列表里點(diǎn)擊想查找的算子,幫助窗口右側(cè)會(huì)顯示算子的具體說明,如圖2-27所示。具體說明包括:算子名稱:算子的英文名稱以及大致功能;算子簽名:帶有算子參數(shù)、分隔符的算子簽名;算子描述:描述算子功能和各參數(shù)意義;算子參數(shù):講解各參數(shù)類型和屬性;HDevelop例程:用到此算子的例程,點(diǎn)擊可查看例程。HALCON編程基礎(chǔ)與工程應(yīng)用2.算子查詢圖2-27幫助窗口HALCON編程基礎(chǔ)與工程應(yīng)用3.算子編輯3.算子編輯算子編輯過程常使用算子窗口來建立HDevelop程序,算子窗口包含了各算子的參數(shù)及參數(shù)取值。使用算子窗口能夠直接對(duì)算子參數(shù)的取值進(jìn)行合理選擇。下面以新建threshold程序?yàn)槔?,說明如何使用算子窗口建立某一行HDevelop程序。使用算子窗口建立某一行HDevelop程序的步驟為:?jiǎn)螕羰髽?biāo)使光標(biāo)定位到要?jiǎng)?chuàng)建程序的位置,通過菜單欄>算子窗口>輸入算子和函數(shù)對(duì)話框中鍵入全部或部分算子名稱,找到需要編輯的算子>回車確認(rèn)>打開算子窗口>選擇合適的算子參數(shù)>點(diǎn)擊確定。輸入算子和函數(shù)對(duì)話框如圖2-28所示。HALCON編程基礎(chǔ)與工程應(yīng)用3.算子編輯圖2-28輸入算子和函數(shù)對(duì)話框
一般來說打開算子窗口以后需要對(duì)算子的四個(gè)參數(shù)(圖像輸入?yún)?shù),圖像輸出參數(shù),控制輸入?yún)?shù),控制輸出參數(shù))進(jìn)行選擇。此處threshold算子只需要對(duì)前3個(gè)參數(shù)進(jìn)行選擇,各參數(shù)的描述如圖2-29所示。HALCON編程基礎(chǔ)與工程應(yīng)用3.算子編輯圖2-29算子窗口參數(shù)描述
使用下拉列表直接選擇threshold算子的圖像輸入?yún)?shù)與圖像輸出參數(shù)名稱,通過下拉列表對(duì)輸入?yún)?shù)的數(shù)值進(jìn)行選擇,如圖2-30所示。HALCON編程基礎(chǔ)與工程應(yīng)用3.算子編輯圖2-30控制輸入?yún)?shù)數(shù)值選擇
算子編輯有關(guān)的快捷鍵:F3為激活所選程序行,F(xiàn)4為注銷所選程序行。HALCON編程基礎(chǔ)與工程應(yīng)用4.算子更改4算子更改HDevelop程序編寫過程中可以利用算子窗口對(duì)某一行的算子進(jìn)行更改。算子更改步驟為:雙擊算子名稱選中需要更改的算子>右鍵>打開算子窗口,在彈出的算子窗口中修改參數(shù),算子更改如圖2-31所示。圖2-31算子更改HALCON編程基礎(chǔ)與工程應(yīng)用5.算子運(yùn)行5.算子運(yùn)行執(zhí)行程序時(shí)如果只要執(zhí)行某一行需要選中執(zhí)行行的前一行,右鍵選擇程序計(jì)數(shù)器,將執(zhí)行標(biāo)示定位到要執(zhí)行的前一行,通過菜單欄>執(zhí)行>單步跳過程序>執(zhí)行某一行。多行的執(zhí)行可以通過菜單欄>執(zhí)行>運(yùn)行>執(zhí)行接下來的所有程序代碼,直到遇到斷點(diǎn)或是遇到Stop算子才會(huì)中止程序。算子運(yùn)行有關(guān)的快捷鍵:F2為重置程序執(zhí)行,F(xiàn)5為程序運(yùn)行,F(xiàn)6為單步跳過函數(shù),F(xiàn)7為單步跳入函數(shù),F(xiàn)8為單步跳出函數(shù)。HALCON編程基礎(chǔ)與工程應(yīng)用2.4HALCON圖像讀取、顯示和轉(zhuǎn)換1.HALCON圖像讀取下面介紹圖像讀取的三種方式。1.利用read_image算子讀取圖像算子read_image(:Image:FileName:)中Image為讀取的圖像變量名稱,F(xiàn)ileName為圖像文件所在的路徑,HALCON支持多種圖像格式。利用read_image算子讀取圖像有下面三種方式:(1)利用快捷鍵調(diào)用read_image算子讀取圖像,讀取圖像的步驟為:按CTRL+R快捷鍵打開讀取圖像對(duì)話框>選擇文件名稱所在的路徑及變量名稱>選擇語句插入位置>點(diǎn)擊確定,快捷鍵讀取圖像如圖2-32所示。HALCON編程基礎(chǔ)與工程應(yīng)用1.HALCON圖像讀取圖2-32快捷鍵讀取圖像HALCON編程基礎(chǔ)與工程應(yīng)用1.HALCON圖像讀取圖2-33算子窗口讀取圖像(2)使用算子窗口調(diào)用read_image算子,選擇文件名稱所在的路徑及變量名稱,算子窗口讀取圖像如圖2-33所示。HALCON編程基礎(chǔ)與工程應(yīng)用1.HALCON圖像讀?。?)利用for循環(huán)讀取同一路徑下的多張圖。首先聲明一個(gè)Tuple數(shù)組保存文件名及路徑,然后利用for循環(huán)依次讀取Tuple數(shù)組保存路徑下的圖像?!纠?-8】for循環(huán)讀取圖像實(shí)例*聲明數(shù)組ImagePath:=[]*將文件名及路徑保存到數(shù)組ImagePath[0]:='fin1.png'ImagePath[1]:='fin1.png'ImagePath[2]:='fin1.png'*循環(huán)讀取圖像fori:=0to2by1read_image(Image,ImagePath[i])*for循環(huán)結(jié)束標(biāo)志endforHALCON編程基礎(chǔ)與工程應(yīng)用1.HALCON圖像讀取2.利用采集助手批量讀取文件夾下所有圖像利用采集助手批量讀取文件夾下所有圖像的步驟為:菜單欄>助手>打開新的ImageAcquisition>資源>圖像文件>選擇路徑>代碼生成>插入代碼,選擇文件夾路徑如圖2-34,生成批量讀取圖像的代碼如圖2-35所示。圖2-34選擇文件夾路徑HALCON編程基礎(chǔ)與工程應(yīng)用1.HALCON圖像讀取圖2-35生成批量讀取圖像的代碼HALCON編程基礎(chǔ)與工程應(yīng)用1.HALCON圖像讀取【例2-9】利用采集助手讀取圖像實(shí)例*遍歷文件夾list_files('C:/Users/Public/Documents/MVTec/HALCON-13.0/examples/images/bicycle',['files','follow_links'],ImageFiles)*篩選指定格式的圖像tuple_regexp_select(ImageFiles,['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png)$','ignore\_case'],ImageFiles)*依次讀取圖像forIndex:=0to|ImageFiles|-1by1read_image(Image,ImageFiles[Index])*顯示圖像dev_display(Image)endforHALCON編程基礎(chǔ)與工程應(yīng)用1.HALCON圖像讀取算子講解:(1)list_image_files(::ImageDirectory,Extensions,Options:ImageFiles)作用:遍歷文件夾;ImageDirectory:文件夾路徑;Extensions:文件擴(kuò)展名,如tif|tiff|gif|bmp|jpg|jpeg|jp2|png等;Options:搜索選項(xiàng),如表2-1所示。
表2-1搜索選項(xiàng)files指定搜索的格式為文件directories指定搜索格式為文件夾recursive指定可以遍歷文件夾下的文件max_depth5指定遍歷的深度max_files1000指定遍歷的最大文件數(shù)目表2-1搜索選項(xiàng)ImageFiles:文件名數(shù)組。HALCON編程基礎(chǔ)與工程應(yīng)用1.HALCON圖像讀?。?)tuple_regexp_select(::Data,Expression:Selection)作用:篩選指定格式的圖像;Data:輸入的文件名數(shù)組;Expression:文件篩選規(guī)則表達(dá)式;Selection:篩選出的文件名數(shù)組。HALCON編程基礎(chǔ)與工程應(yīng)用2.HALCON圖像顯示1.圖形窗口默認(rèn)的圖形窗口尺寸為512*512,因此當(dāng)圖像尺寸不同時(shí)顯示在圖像窗口上會(huì)變形,要看到無變形的圖像的步驟為:菜單欄>可視化>圖像尺寸>適應(yīng)窗口,即可自動(dòng)調(diào)整窗口。通常使用HDevelop算子dev_open_window(::Row,Column,Width,Height,Background:WindowHandle)來新增一個(gè)圖形窗口。算子參數(shù)Row、Column為窗口起始坐標(biāo)(默認(rèn)值都為零),參數(shù)Width、Height是指窗口的寬度和高度(默認(rèn)值都為512),Background為窗口的背景顏色(默認(rèn)為“black”),WindowHandle是指窗口句柄。新建窗口時(shí)如果不知道窗口的確定尺寸,可將窗口的高度和寬度都設(shè)置為"-1",設(shè)置為"-1"表示窗口大小等于最近打開的圖像大小,具體算子為:dev_open_window(0,0,-1,-1,‘black’,WindowHandle)。HALCON編程基礎(chǔ)與工程應(yīng)用2.HALCON圖像顯示打開HDevelop的變量窗口,雙擊圖像變量目錄下已存在的圖像,圖像就會(huì)顯示在圖形窗口。圖形窗口顯示的圖像可以進(jìn)行縮放,直接把鼠標(biāo)放到要進(jìn)行縮放的區(qū)域,滑動(dòng)鼠標(biāo)中間滾輪進(jìn)行縮放操作,要恢復(fù)原有尺寸只需要在圖形窗口點(diǎn)擊“適應(yīng)窗口”。我們也可以通過菜單欄>可視化>設(shè)置參數(shù)>縮放,對(duì)顯示的圖像進(jìn)行縮放,在想要放大的區(qū)域點(diǎn)擊放大或者縮小按鈕,要回復(fù)原有尺寸直接點(diǎn)擊“重置”按鈕。2.圖像顯示HDevelop中顯示圖像通常使用dis_display算子,格式為:dev_display(Object:::)。運(yùn)行模式下運(yùn)行算子時(shí)圖形窗口會(huì)實(shí)時(shí)更新,如果只想通過圖像顯示算子在圖形窗口顯示某些圖像(image,region或xld)就可以關(guān)閉窗口的更新。我們可以通過調(diào)用dev_update_window(‘off')語句關(guān)閉窗口的更新。也可以HALCON編程基礎(chǔ)與工程應(yīng)用2.HALCON圖像顯示通過菜單欄>可視化>更新窗口>單步模式>清空并顯示命令,關(guān)閉窗口的更新。如果關(guān)閉了窗口的更新,則只能手動(dòng)調(diào)用dev_display()操作來顯示圖像。3.顯示文字顯示文字常用的disp_message算子與write_string算子。(1)disp_message為外部算子,算子格式為:disp_message(::WindowHandle,String,CoordSystem,Row,Column,Color,Box:)。算子作用:在窗口中顯示字符串。WindowHandle為窗口句柄;String為要顯示的字符;CoordSystem為當(dāng)前的操作系統(tǒng);Row、Column為窗口中顯示的起始坐標(biāo);HALCON編程基礎(chǔ)與工程應(yīng)用2.HALCON圖像顯示Color為字體顏色;Box為是否顯示白色的底紋。(2)write_string算子格式為:write_string(::WindowHandle,String:)算子作用:在窗口已設(shè)定的光標(biāo)位置顯示字符串。write_string一般與set_tposition配合使用,先使用set_tposition算子設(shè)置光標(biāo)位置,然后使用write_string在光標(biāo)位置處輸出字符串。顯示文字必須適合右側(cè)窗口邊界(字符串的寬度可由get_string_extents算子查詢)。HALCON編程基礎(chǔ)與工程應(yīng)用2.HALCON圖像顯示【例2-10】圖像顯示實(shí)例*關(guān)閉窗口dev_close_window()*打開新窗口dev_open_window(0,0,400,400,'white',WindowID)*設(shè)置顏色dev_set_color('red')*畫箭頭disp_arrow(WindowID,255-20,255-20,255,255,1)*在窗口中顯示字符串disp_message(WindowID,'顯示文字1','window',20,20,'black','true')dev_set_color('blue')*設(shè)置光標(biāo)位置HALCON編程基礎(chǔ)與工程應(yīng)用2.HALCON圖像顯示set_tposition(WindowID,40,40)*在窗口已設(shè)定光標(biāo)位置顯示字符串write_string(WindowID,'顯示文字2')*設(shè)置光標(biāo)位置set_tposition(WindowID,255,255)*讀取字符串read_string(WindowID,'Default',32,OutString)程序執(zhí)行,結(jié)果如圖2-36所示。圖2-36顯示文字處理結(jié)果HALCON編程基礎(chǔ)與工程應(yīng)用3.HALCON圖像轉(zhuǎn)換HALCON編程基礎(chǔ)與工程應(yīng)用1.RGB圖像轉(zhuǎn)換成灰度圖RGB圖像轉(zhuǎn)換成灰度圖可以使用rgb1_to_gray算子,其格式為:rgb1_to_gray(RGBImage:GrayImage::)很明顯,RGBImage與GrayImage分別是輸入、輸出圖像參數(shù)。如果輸入圖像是三通道圖像,RGB圖像的三個(gè)通道可以根據(jù)以下公式轉(zhuǎn)化成灰度圖?;疑?0.299*紅色值+0.587*綠色值+0.114*藍(lán)色值如果RGBImage中輸入圖像是單通道圖像,GrayImage灰度圖將直接復(fù)制RGBImage進(jìn)行輸出?!纠?-11】RGB圖轉(zhuǎn)灰度圖實(shí)例*讀取圖像read_image(Earth,'earth.png')*RGB圖像轉(zhuǎn)換成灰度圖像rgb1_to_gray(Earth,GrayImage)程序執(zhí)行,圖像變量如圖2-37所示。3.HALCON圖像轉(zhuǎn)換HALCON編程基礎(chǔ)與工程應(yīng)用圖2-37RGB圖像轉(zhuǎn)換成灰度圖3.HALCON圖像轉(zhuǎn)換2.區(qū)域與圖像的平均灰度值求區(qū)域與圖像的平均灰度值可以使用算子region_to_mean,其格式為:region_to_mean(Regions,Image:ImageMean::)通過此算子繪制ImageMean圖像,將其灰度值設(shè)置為Regions和Image的平均灰度值。【例2-12】求區(qū)域與圖像平均灰度值實(shí)例*讀取圖像read_image(Image,'fabrik')*區(qū)域生長(zhǎng)regiongrowing(Image,Regions,3,3,6,100)*得到區(qū)域與圖像的平均灰度值region_to_mean(Regions,Image,Disp)dev_open_window(0,0,400,400,'black',WindowHandle)*顯示圖像dev_display(Disp)程序執(zhí)行,結(jié)果如圖2-38所示。3.HALCON圖像轉(zhuǎn)換HALCON編程基礎(chǔ)與工程應(yīng)用圖2-38圖像與區(qū)域平均灰度圖3.HALCON圖像轉(zhuǎn)換HALCON編程基礎(chǔ)與工程應(yīng)用3.將區(qū)域轉(zhuǎn)換為二進(jìn)制圖像或label圖像(1)將區(qū)域轉(zhuǎn)換為二進(jìn)制圖像
使用region_to_bin算子能夠?qū)^(qū)域轉(zhuǎn)換為二進(jìn)制圖像,格式為:region_to_bin(Region:BinImage:ForegroundGray,BackgroundGray,Width,Height:)使用算子將區(qū)域轉(zhuǎn)換為“byte”圖像,如果輸入?yún)^(qū)域大于生成的圖像就會(huì)在圖像邊界處進(jìn)行剪切。(2)將區(qū)域轉(zhuǎn)換為L(zhǎng)abel圖像
使用算子region_to_label能夠?qū)^(qū)域轉(zhuǎn)換為L(zhǎng)abel圖像,格式為:region_to_label(Region:ImageLabel:Type,Width,Height:)算子可以根據(jù)索引(1..n)將輸入?yún)^(qū)域轉(zhuǎn)換為標(biāo)簽圖像,即第一區(qū)域被繪制為灰度值1,第二區(qū)域被繪制為灰度值2等。對(duì)于比生成的圖像灰度值大的區(qū)域?qū)?huì)被適當(dāng)?shù)丶羟小?.HALCON圖像轉(zhuǎn)換HALCON編程基礎(chǔ)與工程應(yīng)用【例2-13】區(qū)域轉(zhuǎn)換為二進(jìn)制圖或label圖實(shí)例*讀取圖像read_image(Image,'a01.png')*復(fù)制圖像copy_image(Image,DupImage)*區(qū)域生長(zhǎng)regiongrowing(DupImage,Regions,3,3,1,100)*將區(qū)域轉(zhuǎn)化成二進(jìn)制圖像region_to_bin(Regions,BinImage,255,0,512,512)*將區(qū)域轉(zhuǎn)化成label圖像region_to_label(Regions,ImageLabel,'int4',512,512)程序執(zhí)行,圖像變量如圖2-39所示。3.HALCON圖像轉(zhuǎn)換HALCON編程基礎(chǔ)與工程應(yīng)用圖2-39區(qū)域轉(zhuǎn)換的圖像變量本章小結(jié)
HALCON編程基礎(chǔ)與工程應(yīng)用本章首先介紹了HALCON軟件交互式的編程環(huán)境Hdevelop及其界面和窗口,然后對(duì)HALCON的控制語句進(jìn)行介紹,主要介紹了HALCON算子的基本操作,HALCON所有算子(函數(shù))的參數(shù)均以相同的方式來排列:輸入圖像,輸出圖像,輸入控制,輸出控制。最后在HALCON編程環(huán)境下進(jìn)行了圖像讀取,圖像顯示,圖像轉(zhuǎn)換的實(shí)例分析。3.4HALCONImage圖像
HALCONRegion區(qū)域
HALCONXLD輪廓
Handle句柄第3章 HALCON數(shù)據(jù)結(jié)構(gòu)HALCON編程基礎(chǔ)與工程應(yīng)用3.1 HALCONImage圖像HALCON編程基礎(chǔ)與工程應(yīng)用3.1.1Image的分類
根據(jù)每個(gè)像素信息不同,通常將圖像分為:二值圖像,灰度圖像,RGB圖像。這部分已經(jīng)在2.2節(jié)進(jìn)行了詳細(xì)地介紹。3.1.2Image的通道(1)append_channel(MultiChannelImage,Image:ImageExtended::)作用:將Image圖像的通道與MultiChannelImage圖像的通道疊加得到新圖像。MultiChannelImage:多通道圖像;Image:要疊加的圖像;ImageExtended:疊加后得到的圖像。
(2)decompose3(MultiChannelImage:Image1,Image2,Image3::)作用:轉(zhuǎn)換三通道彩色圖像為三個(gè)單通道灰度圖像;MultiChannelImage:要進(jìn)行轉(zhuǎn)換的三通道彩色圖像;Image1:轉(zhuǎn)換得到第一個(gè)通道的灰度圖像,對(duì)應(yīng)Red通道;Image2:轉(zhuǎn)換得到第二個(gè)通道的灰度圖像,對(duì)應(yīng)Green通道;Image3:轉(zhuǎn)換得到第三個(gè)通道的灰度圖像,對(duì)應(yīng)Blue通道。讀取一幅紅色的三通道彩色圖像后利用decompose3算子分解成三個(gè)單通道圖像,其中得到的紅色通道是一幅白色圖像,得到的綠色和藍(lán)色通道是黑色圖像。所以我們能夠知道紅色在R通道中比較明顯,同理綠色和藍(lán)色分別在G和B通道中比較明顯。3.1 HALCONImage圖像HALCON編程基礎(chǔ)與工程應(yīng)用3.2
HALCONRegion區(qū)域
HALCON編程基礎(chǔ)與工程應(yīng)用Region的特征可以使用特征檢測(cè)對(duì)話框查看region的特征。通過工具欄>特征檢測(cè)>彈出的對(duì)話框選擇region,可以看到Region的不同特征屬性及相對(duì)應(yīng)的數(shù)值,如圖所示。Region特征主要有以下三個(gè)部分:(1)基礎(chǔ)特征:region的面積、中心、寬高、左上角與右下角坐標(biāo)、長(zhǎng)半軸、短半軸、橢圓方向、粗糙度、連通數(shù)、最大半徑、方向等;(2)形狀特征:外接圓半徑、內(nèi)接圓半徑、圓度、緊密度、矩形度、凸性、偏心率、外接矩形的方向等;(3)幾何矩特征:二階矩、三階矩、主慣性軸等。3.2
HALCONRegion區(qū)域
HALCON編程基礎(chǔ)與工程應(yīng)用Region的點(diǎn)線1.生成點(diǎn)線區(qū)域圖像最基本的構(gòu)成元素是像素點(diǎn),在HALCON里面點(diǎn)可以用坐標(biāo)(Row,Column)表示,圖像窗口左上角為坐標(biāo)原點(diǎn),向下為行(Row)增加,向右為列(Column)增加。首先生成一個(gè)點(diǎn)區(qū)域,生成點(diǎn)區(qū)域的算子為:gen_region_points(:Region:Rows,Columns:)3.2
HALCONRegion區(qū)域
HALCON編程基礎(chǔ)與工程應(yīng)用2.區(qū)域的方向方向是區(qū)域的基本特征,下面幾個(gè)算子與區(qū)域方向有關(guān)。(1)line_orientation(::RowBegin,ColBegin,RowEnd,ColEnd:Phi)(2)orientation_region(Regions:::Phi)(3)angle_ll(::RowA1,ColumnA1,RowA2,ColumnA2,RowB1,ColumnB1,RowB2,ColumnB2:Angle)(4)line_position(::RowBegin,ColBegin,RowEnd,ColEnd:RowCenter,ColCenter,Length,Phi)作用:計(jì)算線段的中心、長(zhǎng)度、方向。3.2
HALCONRegion區(qū)域
HALCON編程基礎(chǔ)與工程應(yīng)用Region的行程1.區(qū)域行程的理論基礎(chǔ)行程編碼(又稱游程編碼)是相對(duì)簡(jiǎn)單的編碼技術(shù)。行程編碼的主要思路是將一個(gè)相同值的連續(xù)串用一個(gè)代表值和串長(zhǎng)來代替。例如,有一個(gè)字符串“aaabccddddd”,行程編碼可以用“3a1b2c5d”來表示。圖4-19是區(qū)域,表4-2是根據(jù)圖4-19的區(qū)域得到的行程編碼表。3.2
HALCONRegion區(qū)域
HALCON編程基礎(chǔ)與工程應(yīng)用3.2.4Region的區(qū)域特征1.區(qū)域的面積與中心特征1)區(qū)域的面積2)區(qū)域的中心區(qū)域的中心坐標(biāo)是計(jì)算區(qū)域內(nèi)所有像素點(diǎn)坐標(biāo)的平均值。中心點(diǎn)行坐標(biāo)等于區(qū)域內(nèi)所有像素點(diǎn)行坐標(biāo)相加的和除以面積,中心點(diǎn)列坐標(biāo)等于區(qū)域內(nèi)所有像素點(diǎn)列坐標(biāo)相加的和除以面積。2.區(qū)域特征距特征矩特征主要表征圖像區(qū)域的幾何特征,又稱為幾何距。由于其具有旋轉(zhuǎn)、平移、尺度等不變特征又稱為不變距。在圖像處理中不變距可以作為一個(gè)重要的特征來表示區(qū)域。3.2
HALCONRegion區(qū)域
HALCON編程基礎(chǔ)與工程應(yīng)用3.區(qū)域等效橢圓特征
二階中心距的一個(gè)重要應(yīng)用就是可以定義一個(gè)區(qū)域的方向與范圍,而區(qū)域的方向和范圍可以用等效橢圓來表示。4.區(qū)域凸性特征區(qū)域內(nèi)任意兩點(diǎn)進(jìn)行連線,連線上的所有點(diǎn)都在區(qū)域內(nèi)就稱這個(gè)區(qū)域?yàn)橥辜?。凸包則是包含區(qū)域內(nèi)所有點(diǎn)構(gòu)成的最小凸集。5.區(qū)域輪廓長(zhǎng)度特征區(qū)域輪廓長(zhǎng)度是區(qū)域的另一個(gè)特征,區(qū)域輪廓是跟蹤區(qū)域邊界獲得一個(gè)輪廓,然后將區(qū)域邊界上的全部點(diǎn)連接到一起。輪廓長(zhǎng)度是歐幾里德長(zhǎng)度,平行于坐標(biāo)軸與垂直坐標(biāo)軸的兩個(gè)相鄰輪廓點(diǎn)之間的距離為1。3.3
HALCONXLD輪廓
HALCON編程基礎(chǔ)與工程應(yīng)用3.3.1XLD的初步介紹1.XLD定義圖像中Image和區(qū)域Region這些數(shù)據(jù)結(jié)構(gòu)是像素精度的,在實(shí)際工業(yè)應(yīng)用中,需要比圖像像素分辨率更高的精度,這時(shí)就需要提取亞像素精度數(shù)據(jù),亞像素精度數(shù)據(jù)可以通過亞像素閾值分割或者亞像素邊緣提取來獲得。3.3.2XLD的數(shù)據(jù)結(jié)構(gòu)分析1.XLD數(shù)據(jù)結(jié)構(gòu)介紹XLD輪廓的很多屬性存儲(chǔ)在XLD的數(shù)據(jù)結(jié)構(gòu)中,為了描述不同的邊緣輪廓,HALCON規(guī)定了幾種不同的XLD數(shù)據(jù)結(jié)構(gòu),對(duì)于不同的數(shù)據(jù)結(jié)構(gòu)一般是通過不同的算子獲得的。區(qū)域或多邊形轉(zhuǎn)換成亞像素輪廓的算子(1)gen_contour_region_xld(Regions:Contours:Mode:)3.3
HALCONXLD輪廓
HALCON編程基礎(chǔ)與工程應(yīng)用(3)gen_contour_polygon_xld(:Contour:Row,Col:)(2)get_contour_xld(Contour:::Row,Col)(4)gen_polygons_xld(Contours:Polygons:Type,Alpha:)(5)gen_ellipse_contour_xld(:ContEllipse:Row,Column,Phi,Radius1,Radius2,StartPhi,EndPhi,PointOrder,Resolution:)(6)gen_circle_contour_xld(:ContCircle:Row,Column,Radius,StartPhi,EndPhi,PointOrder,Resolution:)3.XLD輪廓附加屬性圖像進(jìn)行邊緣信息提取時(shí)XLD會(huì)附帶其他屬性,通過算子可以獲得這些屬性,屬性包括角度、邊緣方向等。通過query_contour_attribs_xld算子可以查詢XLD包含哪些屬性。3.3
HALCONXLD輪廓
HALCON編程基礎(chǔ)與工程應(yīng)用3.3.3XLD的特征分析1.XLD與XLD點(diǎn)云本節(jié)主要講解XLD的特征及其形狀轉(zhuǎn)換。XLD的很多特征同Region的特征相似。XLD的點(diǎn)都是浮點(diǎn)級(jí),精度可以達(dá)到亞像素級(jí)別。3.3
HALCONXLD輪廓
HALCON編程基礎(chǔ)與工程應(yīng)用2.XLD其他特征在講解XLD其他特征之前,需要使用test_self_intersection_xld算子判斷XLD是否自相交。只有在XLD不自相交的時(shí)候有些特征參數(shù)才有意義。3.4
Handle句柄HALCON編程基礎(chǔ)與工程應(yīng)用句柄是一個(gè)是用來標(biāo)識(shí)對(duì)象或者項(xiàng)目的標(biāo)識(shí)符,可以用來描述窗體、文件等,值得注意的是句柄不能是常量。Windows之所以要設(shè)立句柄根本上源于內(nèi)存管理機(jī)制的問題,即虛擬地址。簡(jiǎn)而言之?dāng)?shù)據(jù)的地址需要變動(dòng),變動(dòng)以后就需要有人來記錄管理變動(dòng),因此系統(tǒng)用句柄來記載數(shù)據(jù)地址的變更。在程序設(shè)計(jì)中,句柄是一種特殊的智能指針,當(dāng)一個(gè)應(yīng)用程序要引用其他系統(tǒng)(如數(shù)據(jù)庫(kù)、操作系統(tǒng))所管理的內(nèi)存塊或?qū)ο髸r(shí),就要使用句柄。句柄與普通指針的區(qū)別在于,指針包含的是引用對(duì)象的內(nèi)存地址,而句柄則是由系統(tǒng)所管理的引用標(biāo)識(shí),該標(biāo)識(shí)可以被系統(tǒng)重新定位到一個(gè)內(nèi)存地址上。這種間接訪問對(duì)象的模式增強(qiáng)了系統(tǒng)對(duì)引用對(duì)象的控制。4.1圖像采集硬件4.1.1相機(jī)4.1.2鏡頭4.1.3光源4.2圖像采集算子4.2.1工業(yè)相機(jī)連接4.2.2同步采集4.2.3異步采集4.3圖像采集助手第4章 HALCON圖像采集HALCON編程基礎(chǔ)與工程應(yīng)用4.1圖像采集硬件HALCON編程基礎(chǔ)與工程應(yīng)用4.1.1工業(yè)相機(jī)按照芯片類型可以分為CCD相機(jī)、CMOS相機(jī)按照傳感器的結(jié)構(gòu)特性可以分為線陣相機(jī)、面陣相機(jī)按照掃描方式可以分為隔行掃描相機(jī)、逐行掃描相機(jī)按照分辨率大小可以分為普通分辨率相機(jī)、高分辨率相機(jī)按照輸出信號(hào)方式可以分為模擬相機(jī)、數(shù)字相機(jī)按照輸出色彩可以分為單色(黑白)相機(jī)、彩色相機(jī)按照輸出信號(hào)速度可以分為普通速度相機(jī)、高速相機(jī)按照響應(yīng)頻率范圍可以分為可見光(普通)相機(jī)、紅外相機(jī)、紫外相機(jī)等工業(yè)相機(jī)的主要參數(shù)4.1圖像采集硬件
HALCON編程基礎(chǔ)與工程應(yīng)用工業(yè)相機(jī)的主要參數(shù)分辨率(Resolution)像素深度(PixelDepth)曝光方式(Exposure)和快門速度(Shutter)像元尺寸(PixelSize)光譜響應(yīng)特性(SpectralRange)工業(yè)相機(jī)噪聲信噪比(SNR)工業(yè)相機(jī)的主要輸出接口USB接口1394a/1394b接口Gige接口CameraLink接口4.1圖像采集硬件
HALCON編程基礎(chǔ)與工程應(yīng)用工業(yè)相機(jī)的選型選擇工業(yè)相機(jī)的分辨率分辨率=視野范圍/理論精度選擇工業(yè)相機(jī)的芯片CCD/CMOS選擇彩色相機(jī)還是黑白相機(jī)要處理的與圖像顏色有關(guān),采用彩色相機(jī),否則建議黑白相機(jī)工業(yè)相機(jī)的幀率選擇相機(jī)的幀率一定要大于或等于物體運(yùn)動(dòng)速度選擇線陣相機(jī)還是面陣相機(jī)相機(jī)和圖像采集卡的匹配包括:視頻信號(hào)的匹配;分辨率的匹配;特殊功能的匹配;接口的匹配工業(yè)相機(jī)的CCD/CMOS靶面選擇CCD/CMOS尺寸時(shí),要結(jié)合鏡頭的焦距、視場(chǎng)角一起選擇4.1圖像采集硬件HALCON編程基礎(chǔ)與工程應(yīng)用典型的工業(yè)相機(jī)供應(yīng)商costar工業(yè)相機(jī)Lumenera數(shù)字工業(yè)相機(jī)Sony(日本)東芝泰力(日本)Dalsa(加拿大)BASLER(德國(guó))UNIQ(美國(guó))Redlake(美國(guó))Atmel(美國(guó))Olynpus(日本)4.1圖像采集硬件HALCON編程基礎(chǔ)與工程應(yīng)用4.1.2鏡頭鏡頭的相關(guān)參數(shù)焦距(f):鏡頭到焦點(diǎn)之間的距離,常見的工業(yè)鏡頭焦距有:5mm、8mm、12mm、25mm、35mm、50mm、75mm等,其計(jì)算公式為:光圈系數(shù)(相對(duì)孔徑):其倒數(shù)就是光圈系數(shù),常用的光圈系數(shù)為1.4、2、2.8、4、5.6、8、11、16、22等幾個(gè)等級(jí)。對(duì)應(yīng)最大CCD尺寸:鏡頭成像直徑可覆蓋的最大CCD芯片尺寸。接口:鏡頭與相機(jī)的連接方式。常用的包括C、CS、F、V、T2等。像差(比如畸變、場(chǎng)曲等):畸變會(huì)影像測(cè)量結(jié)果,特別是在精密測(cè)量中,必通過軟件的方法進(jìn)行標(biāo)定和補(bǔ)償。分辨率(Resolution):指在成像平面上1毫米間距內(nèi)能分辨開的黑白相間的線條對(duì)數(shù),單位是“線對(duì)/毫米”。不能和相機(jī)的分辨率混為一談。數(shù)值孔徑(NA):數(shù)值孔徑直接決定了鏡頭的分辨率,數(shù)值孔徑越大,分辨率越高,否則反之。其計(jì)算公式為:視場(chǎng)(FOV):鏡頭實(shí)際拍到的區(qū)域的范圍。其計(jì)算公式為:光學(xué)放大倍數(shù)(M):即芯片尺寸除以視場(chǎng)。即:工作距離(WD):即物距,鏡頭最下端機(jī)械面到被測(cè)物體的距離。4.1圖像采集硬件HALCON編程基礎(chǔ)與工程應(yīng)用4.1圖像采集硬件HALCON編程基礎(chǔ)與工程應(yīng)用后背焦(FlangeDistance):即后焦距,指相機(jī)接口平面到芯片的距離。景深(DOF):表示滿足圖像清晰要求的最遠(yuǎn)位置與最近位置的差值。4.1圖像采集硬件HALCON編程基礎(chǔ)與工程應(yīng)用鏡頭的分類按鏡頭接口分類:C接口、CS接口、F接口等按焦距類型分類:定焦鏡頭和可變焦距鏡頭按焦距、視場(chǎng)角大小分類:標(biāo)準(zhǔn)鏡頭長(zhǎng)、焦距鏡頭、廣角鏡頭、魚眼鏡頭、微距鏡頭按光圈分類:固定光圈式、手動(dòng)光圈式、自動(dòng)光圈式等按鏡頭伸縮調(diào)整方式分類:電動(dòng)伸縮鏡頭、手動(dòng)伸縮鏡頭等遠(yuǎn)心鏡頭遠(yuǎn)心鏡頭(Telecentric),主要是為糾正傳統(tǒng)工業(yè)鏡頭視差而設(shè)計(jì),它可以在一定的物距范圍內(nèi),使得到的圖像放大倍率不會(huì)變化。4.1圖像采集硬件HALCON編程基礎(chǔ)與工程應(yīng)用遠(yuǎn)心鏡頭根據(jù)原理分為:物方遠(yuǎn)心光路:將孔徑光闌放置在光學(xué)系統(tǒng)的像方焦平面上,物方主光線平行于光軸主光線的會(huì)聚中心位于物方無限遠(yuǎn)。其作用為:可以消除物方由于調(diào)焦不準(zhǔn)確帶來的讀數(shù)誤差。像方遠(yuǎn)心光路:將孔徑光闌放置在光學(xué)系統(tǒng)的物方焦平面上,像方主光線平行于光軸主光線的會(huì)聚中心位于像方無限遠(yuǎn)。其作用為:可以消除像方調(diào)焦不準(zhǔn)引入的測(cè)量誤差。兩側(cè)遠(yuǎn)心光路:綜合了物方/像方遠(yuǎn)心的雙重作用,主要用于視覺測(cè)量檢測(cè)領(lǐng)域4.1圖像采集硬件HALCON編程基礎(chǔ)與工程應(yīng)用遠(yuǎn)心鏡頭技術(shù)參數(shù):高影像分辨率近乎零失真度無透視誤差遠(yuǎn)心設(shè)計(jì)與超寬景深遠(yuǎn)心鏡頭的選擇:
其靶面的規(guī)格大于或等于相機(jī)的靶面即可,當(dāng)檢查物體遇到以下6中情況時(shí),最好選用遠(yuǎn)心鏡頭:當(dāng)需要檢測(cè)有厚度的物體時(shí)(厚度>1/10FOV直徑);需要檢測(cè)不在同一平面的物體時(shí);當(dāng)不清楚物體到鏡頭的距離究竟是多少時(shí);當(dāng)需要檢測(cè)帶孔徑、三維的物體時(shí);當(dāng)需要低畸變、圖像效果亮度幾乎完全一致時(shí);當(dāng)缺陷只在同一方向平行照明下才能檢測(cè)到時(shí)。4.1圖像采集硬件HALCON編程基礎(chǔ)與工程應(yīng)用工業(yè)鏡頭的選擇
工業(yè)相機(jī)鏡頭的選擇過程,是將工業(yè)相機(jī)鏡頭各項(xiàng)參數(shù)逐步明確化的過程。作為成像器件,工業(yè)相機(jī)鏡頭通常與光源、相機(jī)一起構(gòu)成一個(gè)完整的圖像采集系統(tǒng),因此工業(yè)相機(jī)鏡頭的選擇受到整個(gè)系統(tǒng)要求的制約。一般地可以按以下幾個(gè)方面來進(jìn)行分析考慮。波長(zhǎng)、是否變焦特殊要求優(yōu)先考慮估算工作距離和焦距像面大小和像質(zhì)光圈和接口相機(jī)接口CMountCSMountFMount可配鏡頭接口C/F+轉(zhuǎn)接器CS/C+節(jié)圈F4.1圖像采集硬件HALCON編程基礎(chǔ)與工程應(yīng)用4.1.3光源衡量光源的好壞對(duì)比度亮度魯棒性光源的控制機(jī)器視覺應(yīng)用的光源控制的訣竅歸結(jié)到一點(diǎn)就是如何控制光源反射。影響反射效果的因素有:光源的位置物體表面的紋理物體表面的幾何形狀光源的均勻性4.1圖像采集硬件HALCON編程基礎(chǔ)與工程應(yīng)用光源的種類常用的光源按發(fā)光機(jī)理分主要有:LED光源鹵素?zé)簦ü饫w光源)高頻熒光燈常用的光源按形狀分主要有:環(huán)形光源背光源條形光源同軸光源AOI專用光源球積分光源線形光源點(diǎn)光源組合條形光源對(duì)位光源4.1圖像采集硬件HALCON編程基礎(chǔ)與工程應(yīng)用光源的照明方式直接照明:光直接射向物體,得到清楚的影像。暗場(chǎng)照明:暗場(chǎng)照明是相對(duì)于物體表面提供低角度照明。背光照明:從物體背面射過來均勻視場(chǎng)的光。漫射照明:應(yīng)用于物體表面的反射性或者表面有復(fù)雜的角度。4.1圖像采集硬件HALCON編程基礎(chǔ)與工程應(yīng)用同軸照明:通過垂直墻壁出來的發(fā)散光,射到一個(gè)使光向下的分光鏡上,相機(jī)從上面通過分光鏡看物體。光源的選型了解項(xiàng)目需求,明確要檢測(cè)或者測(cè)量的目標(biāo);分析目標(biāo)與背景的區(qū)別,找出兩者之間的光學(xué)現(xiàn)象;根據(jù)光源與目標(biāo)之間的配合關(guān)系以及物體的材質(zhì),初步確定光源的發(fā)光類型和光源顏色;拿實(shí)際光源測(cè)試,以確定滿足要求的照明方式。4.2圖像采集算子HALCON編程基礎(chǔ)與工程應(yīng)用4.2.1工業(yè)相機(jī)連接工業(yè)相機(jī)連接
首先下載相應(yīng)的相機(jī)驅(qū)動(dòng),如果可以看到硬件識(shí)別出來,證明相機(jī)和電腦連接成功。然后打開HALCON采集助手,點(diǎn)擊“自動(dòng)檢測(cè)接口”,就會(huì)顯示與電腦相連的相應(yīng)的相機(jī)接口。主要算子open_framegrabber:連接相機(jī)并設(shè)置相關(guān)參數(shù)set_framegrabber_param:設(shè)置相機(jī)額外參數(shù)close_framegrabber:關(guān)閉圖像采集設(shè)備4.2圖像采集算子HALCON編程基礎(chǔ)與工程應(yīng)用同步采集
同步采集是采集到圖片之后才返回繼續(xù)執(zhí)行,簡(jiǎn)單來說就是上一張圖像處理結(jié)束以后才會(huì)再次采集圖像,采集圖像的速率受處理速度影響。主要算子grab_image:讀取同步采集的圖像異步采集異步采集是一幅圖像采集完成后相機(jī)馬上采集下一幅圖像,即在上一副圖像還在處理的時(shí)候就開始下一張圖像的采集。主要算子grab_image_start:異步采集開始grab_image_async:讀取異步采集的圖像4.3圖像采集助手HALCON編程基礎(chǔ)與工程應(yīng)用使用采集助手步驟打開采集助手:點(diǎn)擊“菜單欄”中的“助手”,選中“打開新的ImageAcquisition”。4.3圖像采集助手HALCON編程基礎(chǔ)與工程應(yīng)用檢測(cè)接口:點(diǎn)擊“自動(dòng)檢測(cè)接口”,右邊下拉欄就會(huì)顯示與電腦相連的相機(jī)接口。4.3圖像采集助手HALCON編程基礎(chǔ)與工程應(yīng)用采集助手之“連接”設(shè)置:接口庫(kù):指當(dāng)前連接中使用的HALCON圖像采集的接口庫(kù)設(shè)備(D):指板卡、相機(jī)或邏輯設(shè)備的ID號(hào)端口(P):輸入端口的ID相機(jī)類型:指相機(jī)配置或者信號(hào)類型觸發(fā)(r):選中之后可外觸發(fā)控制采集分辨率:即圖像的寬高顏色空間:可以選擇獲得RGB圖或者灰度圖(gray)場(chǎng)(F):隔行掃描相機(jī)圖像選擇位深度(B):圖像單個(gè)通道的位數(shù)一般:對(duì)于每個(gè)設(shè)備都不同,可以使用HDevelop語法中的任意類型或Tuple來表示。
點(diǎn)擊“連接”按鈕可以連接圖像采集接口,再點(diǎn)擊“斷開”可以關(guān)閉圖像采集接口;點(diǎn)擊“采集”可以獲取單張圖像;點(diǎn)擊“實(shí)時(shí)”可以實(shí)時(shí)采集圖像,再點(diǎn)擊“停止”可以停止實(shí)時(shí)采集;點(diǎn)擊“檢測(cè)”可以嘗試對(duì)當(dāng)前采集接口檢測(cè)參數(shù)有效性;點(diǎn)擊“所有重置”可以將界面內(nèi)的所有參數(shù)重置為初始值。4.3圖像采集助手HALCON編程基礎(chǔ)與工程應(yīng)用采集助手之“參數(shù)”設(shè)置:grab_timeout:設(shè)置采集超時(shí)終止的時(shí)間;brightness:設(shè)置亮度值(-64到64)contrast:設(shè)置對(duì)比度值(0到95)hue:設(shè)置色調(diào)值(-2000到2000)saturation:設(shè)置飽和度(0到100)sharpness:設(shè)置銳度值(1到7)gama:設(shè)置gama值(100到300)white_balance:設(shè)置白平衡值(2800到6500)backlight_compensation:是否打開背光補(bǔ)償能力frame_rate:設(shè)置所需的幀速率(以幀每秒為單位)external_trigger:是否有外部觸發(fā)disconnect_graph:是否延遲顯示4.3圖像采集助手HALCON編程基礎(chǔ)與工程應(yīng)用采集助手之“檢測(cè)”設(shè)置:“顯示圖像”一般情況下都設(shè)置為正常,除非你要測(cè)量速度,則設(shè)置為快速;“圖像顯示窗口”設(shè)置為激活,這樣采集到的圖像將顯示在選中的窗口中。4.3圖像采集助手HALCON編程基礎(chǔ)與工程應(yīng)用采集助手之“代碼生成”設(shè)置:控制流(F):插入代碼的通用結(jié)構(gòu),有“僅初始化”、“采集單幅圖像”、“在循環(huán)中采集圖像”三種選擇,對(duì)應(yīng)的代碼都不一樣。采集模式(M):有“異步采集”和“同步采集”兩種模式。連接句柄(H):存儲(chǔ)采集連接句柄的變量。圖像對(duì)象(O):圖像采集變量。循環(huán)計(jì)數(shù)(L):采集循環(huán)中使用的變量。圖像文件(I):文件名tuple數(shù)組的存儲(chǔ)變量。
選中“自動(dòng)斷開連接”,在代碼插入時(shí)自動(dòng)關(guān)閉連接并釋放設(shè)備,以產(chǎn)生代碼;點(diǎn)擊“代碼預(yù)覽”的下拉鍵,可以預(yù)覽代碼。最后點(diǎn)擊“插入代碼”,就會(huì)在程序窗口顯示相應(yīng)的代碼??偨Y(jié)HALCON編程基礎(chǔ)與工程應(yīng)用本章從相機(jī)、鏡頭和光源三個(gè)方面闡述了機(jī)器視覺的硬件選型,簡(jiǎn)單介紹了相機(jī)的同步、異步采集,并說明了采集助手的設(shè)置及其用法。硬件的選型必須根據(jù)實(shí)際情況來決定,不同的環(huán)境下,相機(jī)和鏡頭的搭配、光源的選擇和打光的方式肯定不同。要想做好一個(gè)項(xiàng)目,圖像采集是關(guān)鍵,采集到的圖像質(zhì)量不行,后面的處理都是空談。熟悉采集助手,圖像的采集會(huì)事半功倍?;叶茸儞Q直方圖處理幾何變換圖像的平滑圖像的銳化圖像的彩色增強(qiáng)第5章HALCON圖像預(yù)處理HALCON編程基礎(chǔ)與工程應(yīng)用
圖像預(yù)處理的主要目的是消除圖像中無關(guān)的信息,恢復(fù)有用的真實(shí)信息,增強(qiáng)有關(guān)信息的可檢測(cè)性和最大限度地簡(jiǎn)化數(shù)據(jù),從而改進(jìn)特征提取、圖像分割、匹配和識(shí)別的可靠性。第5章HALCON圖像預(yù)處理HALCON編程基礎(chǔ)與工程應(yīng)用5.1 灰度變換
由于成像系統(tǒng)限制或噪聲等影響,獲取的圖像往往因?yàn)閷?duì)比度不足、動(dòng)態(tài)范圍小等原因存在視覺效果不好的缺點(diǎn)?;叶茸儞Q是指根據(jù)某種目標(biāo)條件按一定變換關(guān)系逐像素點(diǎn)改變?cè)瓐D像中灰度值的方法?;叶茸儞Q常用的方法有3種:線性灰度變換、分段線性灰度變換和非線性灰度變換。HALCON編程基礎(chǔ)與工程應(yīng)用1、線性灰度變換HALCON編程基礎(chǔ)與工程應(yīng)用為了突出圖像中感興趣的目標(biāo)或灰度區(qū)間,相對(duì)抑制那些不感興趣的灰度區(qū)間,可采用分段線性變換,它將圖像灰度區(qū)間分成兩段乃至多段分別作線性變換。2、分段線性灰度變換HALCON編程基礎(chǔ)與工程應(yīng)用
單純的線性灰度變換可以在一定程度上解決視覺上的圖像整體對(duì)比度問題,但是對(duì)圖像細(xì)節(jié)部分的增強(qiáng)較為有限,結(jié)合非線性變換技術(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 疫情 物資交付方案
- 二零二五年度國(guó)際學(xué)校物業(yè)管理承包合同3篇
- 茂名工地綠化景觀施工方案
- 二零二五年度廢金屬包裝物回收與環(huán)保處理合同3篇
- 二零二五版物業(yè)服務(wù)公司合同終止及解除操作流程規(guī)范3篇
- 2025版暑期兼職學(xué)生實(shí)習(xí)安全協(xié)議與責(zé)任劃分3篇
- 室外磚砌污水井施工方案
- 二零二五年度股權(quán)代持風(fēng)險(xiǎn)防范及收益分配協(xié)議4篇
- 二零二五年度智能電網(wǎng)個(gè)人工程承包合同范本2篇
- 二零二五年度環(huán)保產(chǎn)業(yè)個(gè)人勞務(wù)派遣合作協(xié)議4篇
- 2025至2030年中國(guó)減肥肽數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024內(nèi)蒙古公務(wù)員省直行測(cè)、行政執(zhí)法、省考行測(cè)考試真題(5套)
- 2025年安徽馬鞍山市兩山綠色生態(tài)環(huán)境建設(shè)有限公司招聘筆試參考題庫(kù)附帶答案詳解
- 山東省濱州市濱城區(qū)2024-2025學(xué)年九年級(jí)上學(xué)期期末考試化學(xué)試題
- 貨運(yùn)企業(yè)2025年度安全檢查計(jì)劃
- 2025年焊工安全生產(chǎn)操作規(guī)程(2篇)
- 《事故快速處理協(xié)議書》電子版
- 檔案工作管理情況自查表
- 蘇科版九年級(jí)(初三)物理下冊(cè)全套課件
- 100個(gè)超高難度繞口令大全
- 畢業(yè)論文-基于51單片機(jī)的智能LED照明燈的設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論