4-halcon簡介教學(xué)課件_第1頁
4-halcon簡介教學(xué)課件_第2頁
4-halcon簡介教學(xué)課件_第3頁
4-halcon簡介教學(xué)課件_第4頁
4-halcon簡介教學(xué)課件_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、機(jī)器視覺及應(yīng)用第四章halcon簡介3/ Halcon介紹主要內(nèi)容 界面認(rèn)識(shí)菜單欄工具欄子窗口 Halcon數(shù)據(jù)類型Image圖像Region區(qū)域XLD輪廓Tuple元組 Halcon機(jī)器視覺程序示例 Halcon控制語句If條件語句While循環(huán)語句For循環(huán)語句Switch分支語句中斷語句4/halcon是德國慕尼黑MVTec公司開發(fā)的機(jī)器視覺軟件。1996年成立至今,只關(guān)注于機(jī)器視覺算法與軟件的研究與開發(fā),是世界知名的視覺軟件世界知名的視覺軟件開發(fā)公司。halcon源自學(xué)術(shù)界,它是由一千多個(gè)各自獨(dú)立的函一千多個(gè)各自獨(dú)立的函數(shù)數(shù),以及底層的數(shù)據(jù)管理核心構(gòu)成的一套圖像處理庫。halcon中這

2、些圖像處理函數(shù)稱為算子算子。只要用得到圖像處理的地方,就可以用halcon提供的算子進(jìn)行處理。Halcon的應(yīng)用涵蓋了幾乎所有范圍所有范圍,包括常見的工業(yè)應(yīng)用,也包括醫(yī)學(xué),遙感探測,監(jiān)控等各方面的應(yīng)用。5/Image是halcon中用于表示圖像圖像的數(shù)據(jù)數(shù)據(jù)類型。Image對(duì)應(yīng)各種格式的圖像,如BMP、JPG、PNG、TIFF等,也可以直接從相機(jī)獲取圖像數(shù)據(jù)。有三種打開方式。第一種,選擇選擇“文件文件”菜單的“讀取圖像”菜單;第二種,直接利用算子算子read_imageread_image讀取圖像;第三種,利用圖像獲取助手圖像獲取助手打開圖像。例例 讀取Image圖像數(shù)據(jù)并獲取圖像信息以及通道

3、分解、合并、彩色模式轉(zhuǎn)換、灰度圖轉(zhuǎn)換等操作。 *打開圖像文件read_image (Image,E:/示例/例4-1.bmp)*得到圖像的寬高信息get_image_size (Image, Width, Height)*得到圖像的數(shù)據(jù)類型get_image_type (Image, Type)*得到圖像的通道數(shù),結(jié)果在控制變量Channels中count_channels (Image, Channels)*將彩色圖像分解為多個(gè)單通道圖像decompose3 (Image,ImageR,ImageG,ImageB)*打開圖像文件read_image (Image,E:/示例/例4-1.bmp

4、)*得到圖像的寬高信息get_image_size (Image, Width, Height)*得到圖像的數(shù)據(jù)類型get_image_type (Image, Type)*得到圖像的通道數(shù),結(jié)果在控制變量Channels中count_channels (Image, Channels)*將彩色圖像分解為多個(gè)單通道圖像decompose3 (Image,ImageR,ImageG,ImageB)*將多個(gè)單通道圖像合并為一個(gè)多通道圖像compose3 (ImageR, ImageG, ImageB, MultiChannelImage)*將RGB圖像轉(zhuǎn)換成hsv制式圖像trans_from_rg

5、b (ImageR,ImageG,ImageB,ImageH,ImageS,ImageV,hsv)*將hsv制式的三個(gè)單通道圖H、S、V轉(zhuǎn)成RGB格式的R、G、Btrans_to_rgb (ImageH,ImageS,ImageV,R,G,B,hsv)*將三個(gè)單通道的R、G、B圖像合并為一個(gè)多通道圖像compose3 (R, G, B, MultiChannelImage1)*從一個(gè)多通道圖像轉(zhuǎn)換成灰度圖像rgb1_to_gray (MultiChannelImage1, GrayImage)*將三個(gè)單通道圖像R、G、B轉(zhuǎn)成一個(gè)灰度圖像rgb3_to_gray(R,G,B,ImageGray1

6、)halcon中,用RegionRegion來表示圖像中的某個(gè)區(qū)域區(qū)域。Region可以通過交互式繪制交互式繪制得到,也可以通過圖像處理算法自動(dòng)生成自動(dòng)生成。如二值化算法、區(qū)域分割算法等。圖像生成Region之后,可以只對(duì)Region部分包含的圖像數(shù)據(jù)進(jìn)行處理。在halcon中,用類似于游程編碼的方式來表示Region。Region是一個(gè)幾何形狀幾何形狀,如點(diǎn)、直線、矩形、圓、橢圓以及任意形狀等。繪制的Region幾何形狀的邊界可以超越圖像邊界超越圖像邊界,但是生成Region之后超過圖像邊界部分自動(dòng)忽略。Region之間可以進(jìn)行交集、并集、補(bǔ)集交集、并集、補(bǔ)集等操作,每個(gè)Region區(qū)域是用

7、戶自定義的或算法自動(dòng)生成的圖像中的連通域。每個(gè)Region代表一幅圖像中的某塊子圖像。Region附帶多種圖像特征信息圖像特征信息,可以通過統(tǒng)計(jì)每個(gè)Region特征信息實(shí)現(xiàn)對(duì)不同Region的區(qū)分。 例例對(duì)Region進(jìn)行操作示意。*讀取圖像read_image (Image,E:/示例/例4-3.bmp)*得到圖像大小get_image_size (Image, Width, Height)*對(duì)圖像進(jìn)行二值化處理,得到Regionthreshold (Image, Regions, 111, 255)*得到Rgions中的每個(gè)聯(lián)通Regionconnection (Regions, Conn

8、ectedRegions)*根據(jù)每個(gè)Region的面積大小篩選Regionselect_shape (ConnectedRegions, SelectedRegions, area, and, 23526.9, 50000)*將篩選出來的每個(gè)Region組合成一個(gè)Regionunion1 (SelectedRegions, RegionUnion)*根據(jù)組合后的Region從原圖像中取出Region包含的圖像reduce_domain (Image, RegionUnion, ImageReduced)*得到Region包含的圖像的大小,該大小與原圖像一樣大get_image_size (Im

9、ageReduced, Width1, Height1)*將Region包含的圖像從原圖像中單獨(dú)取出來作為一幅獨(dú)立的圖像crop_domain (ImageReduced, ImagePart)*得到取出的圖像的大小,該圖像大小與原圖像不相同get_image_size (ImagePart, Width2, Height2)*組合后的Region再次分解為每個(gè)連通域Regionconnection (RegionUnion, ConnectedRegions1)*統(tǒng)計(jì)每個(gè)連通域Region的面積和中心位置area_center (ConnectedRegions1, Area, Row, C

10、olumn)可以將XLD理解為圖像中某個(gè)區(qū)域的輪廓區(qū)域的輪廓。輪廓是不同區(qū)域之間的邊界邊界。通過對(duì)輪廓的不同特征的統(tǒng)計(jì),可以區(qū)分圖像中不同的區(qū)域。XLDXLD代表亞像素精度的輪廓代表亞像素精度的輪廓。亞像素精度是指相鄰兩像素之間的細(xì)分情況,通常為二分之一,三分之一或四分之一,這意味著每個(gè)像素將被分為更小的單元從而對(duì)這些更小的單元實(shí)施插值算法。因此,XLD代表的不是圖像中每個(gè)像素點(diǎn),而是亞像素精度的點(diǎn)集而是亞像素精度的點(diǎn)集。采用亞像素精度表示提高了輪廓表達(dá)的精度。與Region類似,XLD也附帶了多種特征,可以利用這些特征信息實(shí)現(xiàn)對(duì)圖像中不同區(qū)域的分割。XLD的特征分為四類:基本特征、形狀特征、

11、點(diǎn)特征和基本特征、形狀特征、點(diǎn)特征和矩特征矩特征。 例例4-44-4 對(duì)XLD進(jìn)行操作示意*讀取圖像read_image (Image, E:/示例/例4-4.bmp)*以亞像素精度從圖像中提取水平交叉點(diǎn)作為XLD輪廓邊界threshold_sub_pix (Image, Border, 128)*計(jì)算輪廓邊界的面積和中心中心area_center_xld (Border, Area, Row, Column, PointOrder)*利用XLD的面積特征刷選輪廓select_shape_xld (Border, SelectedXLD, area, and, 25000, 100000)*利

12、用XLD的等效橢圓方向刷選輪廓select_shape_xld (SelectedXLD, SelectedXLD1, phi, and, 0.8519, 2)*從XLD輪廓生成Regiongen_region_contour_xld (SelectedXLD1, Region, filled)*從Region生成XLD輪廓gen_contour_region_xld (Region, Contours, border)*計(jì)算XLD輪廓的面積和中心area_center_xld (SelectedXLD1, Area1, Row1, Column1, PointOrder1)Halcon中的T

13、uple元組與其他語言如C語言中的數(shù)組類似??梢灾苯訉uple理解為數(shù)組數(shù)組。其數(shù)據(jù)類型可以是intint、stringstring等各種類型等各種類型。Tuple元組的索引值從從0 0開始開始,最后一個(gè)索引是Tuple的長度減去1。Tuple有多個(gè)操作函數(shù)多個(gè)操作函數(shù)。包括基本的數(shù)學(xué)運(yùn)算、指數(shù)與對(duì)數(shù)運(yùn)算、字符串運(yùn)算、三角函數(shù)運(yùn)算、位運(yùn)算、比較運(yùn)算等。例例 Tuple基本操作*定義一個(gè)空元組Tuple1 :=* 將一個(gè)Tuple元組賦值給變量Tuple1 := 1,2,3,4,5,6,7,8,9*給Tuple元組指定元素賦值Tuple11 := 0* 批量改變元組元素的值Tuple11,3,

14、5 := hello* 批量給Tuple元組賦值,其值為0到100連續(xù)數(shù)值Tuple2 := 0:100* 批量給Tuple元組賦值,其值為1到100連續(xù)數(shù)值,步長為2Tuple3 := 1: 2: 100Tuple4 := 100: -10: -100* 對(duì)兩個(gè)Tuple元組進(jìn)行合并操作TupleInt1 := 1,2,3,4,5TupleInt2 := 6,7,8,9,10tuple_union (TupleInt1, TupleInt2, UnionInt)* 對(duì)兩個(gè)Tuple元組進(jìn)行交集操作TupleInt3 := 1,2,3,4,5TupleInt4 := 3,4,5,6,7tupl

15、e_intersection (TupleInt3, TupleInt4, IntersectionInt)* 對(duì)Tuple元組元素進(jìn)行替換OriginalTuple := 0,1,2,3,4,5tuple_replace (OriginalTuple, 0, 1, x, y, Replaced)* 向Tuple元組插入數(shù)值OriginalTuple := 0,1,2,3,4,5tuple_insert (OriginalTuple, 3, x, InsertSingleValueA) if條件語句條件語句(1)if (表達(dá)式) 滿足if條件后執(zhí)行的語句 endif (2)if (表達(dá)式) 滿

16、足if條件后執(zhí)行的語句 else 不滿足if條件后執(zhí)行的語句 endif(3)if (表達(dá)式) 滿足if條件后執(zhí)行的語句 elseif 不滿足if條件后執(zhí)行的語句 else 不滿足以上條件后執(zhí)行的語句 endif while循環(huán)循環(huán)語句語句while(條件)循環(huán)語句Endwhile例例 while循環(huán)語句示意,計(jì)算從1到100的累加和。*定義初始值a等于1,thesun等于0a := 1theSum := 0*while循環(huán)While (a = 100) theSum := theSum + a a := a + 1endwhile for循環(huán)循環(huán)語句語句for (index := start

17、 to end by step) 循環(huán)體endfor例例利用for循環(huán)計(jì)算從1到100的累加和。theSum := 0for Index := 1 to 100 by 1 theSum := theSum + Indexendfor switch分支條件分支條件語句語句switch(條件) case 常量表達(dá)式1: 執(zhí)行語句1breakcase 常量表達(dá)式2: 執(zhí)行語句2breakcase 常量表達(dá)式n: 執(zhí)行語句nbreakdefault:執(zhí)行語句Endswitch例例 switch語句使用示意。a := 2switch (a) case 2: b := 1 break case 1: b

18、:= 0 break case 0: b := -1 break default: b := -2 endswitch 中斷中斷語句語句在halcon中,中斷語句有兩種,一種是continue,另一種是break。continue用于跳出當(dāng)前循環(huán)體余下的語句執(zhí)行下一次循環(huán);break用于跳出當(dāng)前循環(huán)或switch分支。例例 continue和break使用示意。theSum := 0for Index := 1 to 10 by 1 if (Index =5) continue elseif (Index = 8) break endif theSum := theSum + Indexendfor第一個(gè)機(jī)器視覺第一個(gè)機(jī)器視覺例子例子例例 提取回形針的位置和方向*讀取圖像read_image (Clip, E:/示例/clip.png)*設(shè)置顏色dev_set_color (green)*一種二值化算法,分割出回形針與背景binary_threshold (Clip,

溫馨提示

  • 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論