Halcon學(xué)習(xí)筆記之缺陷檢測二教學(xué)教材_第1頁
Halcon學(xué)習(xí)筆記之缺陷檢測二教學(xué)教材_第2頁
Halcon學(xué)習(xí)筆記之缺陷檢測二教學(xué)教材_第3頁
Halcon學(xué)習(xí)筆記之缺陷檢測二教學(xué)教材_第4頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、學(xué)習(xí)資料Halcon學(xué)習(xí)筆記之缺陷檢測(二)例程:detect_indent_fft.hdev說明:這個程序展示了如何利用快速傅里葉變換(FFT)對塑料制品的表面進(jìn)行目標(biāo)(缺陷)的檢測,大致分為三步:首先,我們用高斯濾波器構(gòu)造一個合適的濾波器(將原圖通過高斯濾波器濾波);然后,將原圖和構(gòu)造的濾波器進(jìn)行快速傅里葉變換;(在缺陷上畫最后,利用形態(tài)學(xué)算子將缺陷表示在濾波后的圖片上注:代碼中綠色部分為個人理解和注釋,其余為例程中原有代碼"Initialization(初始化)dev_updata_off()/這一句包含如下三個算子:/dev_updata_pc( 'off '

2、)閉更新變量窗口/dev_updata_window( 'off ')關(guān)閉更新程序計數(shù)器/dev_updata_var( 'off ')關(guān)關(guān)閉更新圖像窗口(即通過命令來顯示想要在圖像窗口顯示的圖片)dev_close_window() /關(guān)閉活動的圖像窗口read_image(Image, ' plasticsplastics_01')/ 載入圖片參數(shù)說明:為讀入圖片命名(Image ) /文件名('plastics/plastics_01')get_image_size(Image,Width,height)成的圖片(Image

3、 ) /獲取圖片的長寬;參數(shù)說明:之前讀入或生圖片的寬(Width ) /圖片的高(Height )dev_open_window(0,0,Width,Height,/參數(shù)說明:起始坐標(biāo)(0,0 ) /Black ' ,WindowHandle) /打開一個新的圖像窗口大?。╓idth,Height ) /背景顏色('Black ' ) /窗 口句柄(WindowHandle )set_display_font(WindowHandle,14, ' mono' , ture ' , ' false ' ) / 設(shè)置不依賴操作系統(tǒng)的

4、字體/參數(shù)說明:窗口句柄(WindowHandle )僅供學(xué)習(xí)與參考學(xué)習(xí)資料/dev_set_draw(者'Fill ') dev_set_line_width的區(qū)別dev_set_color字體大小(14 )字體類型Cmono ')是否黑體('ture ') 是否傾斜('false ') 'Margin ' )/定義區(qū)域填充模式(3)/ 設(shè)置輸出區(qū)域輪廓線的線寬('red ' )/設(shè)置一種或者多種輸出顏色/參數(shù)說明:填充模式M Margin '或/可以修改參數(shù)來看最后缺陷區(qū)域標(biāo)示*Optimize

5、 the fft speed for the specific image size( 優(yōu)化) optimize_rft_speed(Width,Height,standard )/優(yōu)化參數(shù)說明:圖片大小( Width,Height ) / *Construct a suitable filter by combining two Gaussian filters器構(gòu)造一 *個合適的濾波器)Sigma1 := 10.0Sigma2 := 3.0/定義兩個常量gen_gauss_filter(GaussFilter1,Sigma1,Sigma1,0.0,gen_gauss_filter(Gaus

6、sFilter2,Sigma2,Sigma2,0.0,/在頻域生成兩個高斯濾波器參數(shù)說明:生成的高斯濾波器(根據(jù)指定圖像大小進(jìn)行fft 速度最對指定大小的圖片的fft速度進(jìn)行優(yōu)化模式('standard ')(結(jié)合兩個高斯濾波none ' , ' rft' ,Width,Height)none, rft ,Width,Height)GaussFilter ) /空域中高斯在主方向上的標(biāo)準(zhǔn)差(Sigma ) /空域中高斯在正交于主方向的方向上的標(biāo)準(zhǔn)差(Sigma ) /濾波器主方向的角度(0.0 ) /濾波器的規(guī)范(none ')/直流項在頻域的位

7、置(rft ') 圖片的大小(Width,Height )sub_image(GaussFilter1,GaussFilter2,Filter,1,0) /兩圖片相減(灰度)/sub_image(ImageMinuend,ImageSubtrahend : ImageSub : Mult, Add : )/g':= (g1-g2) * Mult + Add/以上為函數(shù)原型以及運算公式*Process the images iteratively(對圖像進(jìn)行迭代運算)Numimages := 11For Index := 1 to Numimages by 1 /for循環(huán)從 1

8、 至U Numimages ,步長為 1*Read an image and convert it to gray values read_image(Image, ' plastics/plastics_ rgb1_to_gray(Image,Image) /*Perform the convolution in the frequency domain rft_generic(Image,ImageFFT,' to_freq圖片實部進(jìn)行快速傅里葉變換后輸出的圖片(ImageFFT )變換因子的規(guī)范('none ') 圖片的寬(Width )convol_ff

9、t(ImageFFT,Filter,ImageConvol) /算/參數(shù)說明:輸入的圖片(ImageFFT )/+Index$ ' 02')將原圖轉(zhuǎn)化為灰度圖,第一個參數(shù)為原圖'none ' , ' complex ' ,Width)對計算一幅傅里葉變換 ')/ /對圖片用一個濾波器在頻域進(jìn)行卷積運頻域濾波器(Filter )/參數(shù)說明:輸入的圖片(Image )/變換方向('to_freq '或'from_freq/輸出圖片的數(shù)據(jù)類型('complex ')僅供學(xué)習(xí)與參考學(xué)習(xí)資料運算后輸出的結(jié)果

10、rft_generic(ImageConcol,ImageFiltered, real ' ,Width) / 對濾波后的圖片進(jìn)行傅里葉反變換 *Process the filtered imagegray_range_rect(ImageFiltered,ImageResult,10,10)/度范圍/ 參數(shù)說明:輸入的圖片(ImageFiltered )/(ImageResult )/矩形掩膜大小(10,10 )min_max_rect(ImageResult,ImageResult,0,Min,Max,Range)/和最小值/ 參數(shù)說明:待分析圖片區(qū)域(ImageResult )

11、/被去除的直方圖兩邊像素點所用一個矩形掩膜計算像素點的灰輸出的灰度范圍圖判斷區(qū)域內(nèi)灰度值的最大圖片(ImageResult )/占總像素數(shù)的百分比(0)/得到的最小值最大值及灰度值范圍(Min,Max,Range )threshold(ImageResult,RegionDynThresh,max(5.55,Max*0.8),255)利用全局閾值對圖像進(jìn)行分割/參數(shù)說明:輸入的圖片(ImageResult ) /分割后得到的區(qū)域(RegionDynThresh )/閾值(max(5.55,Max*0.8),255)/公式:MinGray <= g <= MaxGrayconnect

12、ion(RegionDynThresh,ConnectedRegions) /數(shù)說明:輸入的圖片(RegionDynThresh )/(ConnectedRegions )select_shape (ConnectedRegions,SelectedRegions,據(jù)指定的形態(tài)特征選擇區(qū)域/參數(shù)說明:輸入的圖片( ConnectedRegions )/滿足條件的區(qū)域(SelectedRegions)/將要計算的形態(tài)特征(' area ')/獨立特征間的連接關(guān)系('and ')/特征的最小限制(4)/特征的最大限制(99999)計算區(qū)域內(nèi)的連通部分參得到的連通區(qū)域

13、area ' , ' and ' ,4,99999)/ 根union1(SelectedRegions,RegionUnion) /返回包含所有區(qū)域的集合 參數(shù)說明:包含所有區(qū)域的待計算區(qū)域的圖片(tedRegions ) /所有輸入?yún)^(qū)域合(RegionUnion )closeing_circle(RegionUnion,RegionClosing,10)/用一個圓圈來封閉一個區(qū)域參數(shù)說明:將要被封閉的區(qū)域(RegionUnion )/被封閉的區(qū)域(RegionClosing )/圓圈的半徑(10) connection(RegionClosing,ConnectedR

14、egions1)select_shape(ConnectedRegions1,SelectedRegions1,area_center(SelectedRegions1,Area,Row,Column) /area ' , ' and ' ,10,99999)計算區(qū)域的面積以及中心位置/參數(shù)說明:待計算的區(qū)域(SelectedRegions1 )/區(qū)域的面積(Area )/區(qū)域中心的行(Row)/區(qū)域中心的列(Column )*Display the resultsdev_display(Image) /顯示原圖Number := |Area| /將區(qū)域面積賦給Numb

15、er用于后面檢查是否存在缺陷if(Number) gen_circle_contour_xld(ContCircle,Row,Column,gen_tuple_const(Number,30),gen_tuple_const(Number,0),gen_tuple_const(Number,rad(360),' positive ' ,1)/ 構(gòu)造一個與設(shè)定的圓弧或圓相一致的邊界/參數(shù)說明:生成的邊界(ContCircle )圓弧或圓僅供學(xué)習(xí)與參考學(xué)習(xí)資料的中心坐標(biāo)(Row,Cloumn ) /圓弧或圓的半徑(gen_tuple_const(Number,30)/圓弧或圓的起始

16、角度(gen_tuple_const(Number,0)/ /圓弧或圓的結(jié)束角度(gen_tuple_const(Number,rad(360) /不明白是什么意思/相鄰兩點間的距離(1)ResultMessage := 'Not OK ' ,Number +'defect(s) foundColor := ' red ' , ' black 'dev_display(ContCircle) elseResultMessage :=' OK'Color :=' forest green 'endifdisp

17、_message(WindowHandle,ResultMessage, if(Index#NumImages)disp_continue_message(WindowHandle,window ' ,12,12,Color,' ture ')black ' , ture ')stop() endifendfor算法講解:在實際的表面缺陷檢測系統(tǒng)中,針對的檢測表面很多是 具有一定紋理的比如:布匹、皮革、塑料等,針對這一類表面的檢測就 不能單純依靠幀差或者背景差來完成,因為背景的紋理不可能和當(dāng)前圖 像的紋理完全相同。因此,本例程的算法通過將圖像變換到頻域進(jìn)行處 理,提取缺陷分量后反變換到時域,獲得缺陷的具體位置。高斯濾波器:在本算法中,在一開始就構(gòu)造了兩個高斯濾波器,高 斯濾波器是一種線性平滑濾波器,適用于消除高斯噪聲。濾波器的實質(zhì) 是對信號進(jìn)行濾波,濾除不需要

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論