日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

傅里叶变换进行缺陷检测detect_indent_fft.hdev(源代码与详细解析)

發(fā)布時(shí)間:2023/12/10 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 傅里叶变换进行缺陷检测detect_indent_fft.hdev(源代码与详细解析) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • 簡(jiǎn)介
    • 程序解析
    • 處理結(jié)果預(yù)覽
    • 算法講解

簡(jiǎn)介

detect_indent_fft.hdev是halcon的示例程序,是傅里葉變換進(jìn)行缺陷檢測(cè)的一個(gè)例子,主要是傅里葉變換在復(fù)雜背景下的缺陷檢測(cè)

這個(gè)程序展示了如何利用快速傅里葉變換(FFT)對(duì)塑料制品的表面進(jìn)行缺陷檢測(cè),大致分為三步:

1、用高斯濾波器構(gòu)造一個(gè)合適的濾波器(將原圖通過(guò)高斯濾波器濾波);

2、將原圖和構(gòu)造的濾波器進(jìn)行快速傅里葉變換;

3、利用形態(tài)學(xué)進(jìn)行缺陷檢測(cè)。

程序解析

關(guān)于顯示類函數(shù)解釋https://blog.csdn.net/cashmood/article/details/93999690
dev_updata_off()

dev_close_window() //關(guān)閉活動(dòng)的圖像窗口
讀入圖片
read_image(Image,’plastics/plastics_01’)
獲取圖片的長(zhǎng)寬
//參數(shù)說(shuō)明:讀入的圖片(Image); 圖片的寬(Width);圖片的高(Height)
get_image_size(Image,Width,height)

dev_open_window(0,0,Width,Height,’Black’,WindowHandle)
設(shè)置顯示字體
set_display_font (WindowHandle,14,’mono’,’ture’,’false’)

dev_set_draw(‘Margin’)

dev_set_line_width(3)

dev_set_color(’red’)

(根據(jù)圖像大小進(jìn)行fft速度最優(yōu)化)
對(duì)指定大小的圖片的fft速度進(jìn)行優(yōu)化
//參數(shù)說(shuō)明:圖片大小(Width,Height);優(yōu)化模式(’standard’);
optimize_rft_speed(Width,Height,’standard’)

(結(jié)合兩個(gè)高斯濾波器構(gòu)造一個(gè)合適的濾波器)

定義兩個(gè)常量
Sigma1 := 10.0 Sigma2 := 3.0

在頻域生成兩個(gè)高斯濾波器
//參數(shù)說(shuō)明:生成的高斯濾波器(GaussFilter); 空域中高斯在主方向上的標(biāo)準(zhǔn)差(Sigma); 空域中高斯在正交于主方向的方向上的標(biāo)準(zhǔn)差(Sigma);濾波器主方向的角度(0.0); 濾波器的規(guī)范(’none’);直流項(xiàng)在頻域的位置(’rft’);圖片的大小(Width,Height)
gen_gauss_filter(GaussFilter1,Sigma1,Sigma1,0.0,’none’,’rft’,Width,Height)

gen_gauss_filter(GaussFilter2,Sigma2,Sigma2,0.0,’none’,’rft’,Width,Height) //

兩圖片相減生成一個(gè)帶通低頻濾波器
//函數(shù)原型以及運(yùn)算公式: sub_image(ImageMinuend, ImageSubtrahend : ImageSub : Mult, Add : )
//g’ := (g1 - g2) * Mult + Add

sub_image(GaussFilter1,GaussFilter2,Filter,1,0) //兩圖片相減(灰度)

(開始進(jìn)行圖像檢測(cè))
NumImages := 11
for循環(huán)從1到NumImages,步長(zhǎng)為1
for Index := 1 to NumImages by 1

read_image(Image,’plastics/plastics_’+Index$’02’)

將圖片轉(zhuǎn)化為灰度圖,第一個(gè)參數(shù)為原圖
rgb1_to_gray(Image,Image)

*Perform the convolution in the frequency domain
對(duì)一幅圖片進(jìn)行快速傅里葉變換
//參數(shù)說(shuō)明:輸入的圖片(Image);傅里葉變換后輸出的圖片(ImageFFT);變換方向(’to_freq’或’from_freq’);變換因子的規(guī)范(’none’);輸出圖片的數(shù)據(jù)類型(’complex’);圖片的寬(Width)
rft_generic(Image,ImageFFT,’to_freq’,’none’,’complex’,Width)

圖片用一個(gè)濾波器在頻域進(jìn)行卷積運(yùn)算
//參數(shù)說(shuō)明:輸入的圖片(ImageFFT);頻域?yàn)V波器(Filter);運(yùn)算后輸出的結(jié)果
convol_fft(ImageFFT,Filter,ImageConvol) //對(duì)圖片用一個(gè)濾波器在頻域進(jìn)行卷積運(yùn)算

對(duì)濾波后的圖片進(jìn)行快速傅里葉反變換
rft_generic(ImageConcol,ImageFiltered,’from_freq’,’n’,’real’,Width)

用一個(gè)矩形掩膜計(jì)算像素點(diǎn)的灰度范圍
//參數(shù)說(shuō)明:輸入的圖片(ImageFiltered); 輸出的灰度范圍圖(ImageResult);矩形掩膜大小(10,10)
灰度范圍計(jì)算方法:矩形掩膜內(nèi)的最大灰度值-最小灰度值

gray_range_rect(ImageFiltered,ImageResult,10,10)

求圖片灰度值的最大和最小值和變換范圍
//參數(shù)說(shuō)明:待分析圖片區(qū)域(ImageResult); 圖片(ImageResult);被去除的直方圖兩邊像素點(diǎn)所;占總像素?cái)?shù)的百分比(0);得到的最小值最大值及灰度值范圍(Min,Max,Range)
min_max_rect(ImageResult,ImageResult,0,Min,Max,Range)//判斷區(qū)域內(nèi)灰度值的最大和最小值

利用全局閾值對(duì)圖像進(jìn)行分割
//參數(shù)說(shuō)明:輸入的圖片(ImageResult);分割后得到的區(qū)域(RegionDynThresh);閾值(max([5.55,Max0.8]),255);公式:MinGray <= g <= MaxGray
threshold(ImageResult,RegionDynThresh,max([5.55,Max0.8]),255)//

分割連通域
//參數(shù)說(shuō)明:輸入的區(qū)域(RegionDynThresh);分割連通域后的區(qū)域(ConnectedRegions)
connection(RegionDynThresh,ConnectedRegions)

根據(jù)面積篩選區(qū)域
select_shape (ConnectedRegions,SelectedRegions,’area’,’and’,4,99999)

合并區(qū)域
union1(SelectedRegions,RegionUnion)

使用圓形元素對(duì)區(qū)域進(jìn)行閉運(yùn)算
closeing_circle(RegionUnion,RegionClosing,10)

分割連通域
connection(RegionClosing,ConnectedRegions1)

根據(jù)面積篩選區(qū)域
select_shape(ConnectedRegions1,SelectedRegions1,’area’,’and’,10,99999)

計(jì)算區(qū)域的面積以及中心位置
area_center(SelectedRegions1,Area,Row,Column)

顯示結(jié)果

dev_display(Image)

定義一個(gè)變量統(tǒng)計(jì)區(qū)域的個(gè)數(shù)
//參數(shù)說(shuō)明:在halcon中“||”代表求數(shù)組內(nèi)元素的個(gè)數(shù)
Number := |Area|

判斷是否存在缺陷區(qū)域
if(Number)

如果存在缺陷區(qū)域,畫出缺陷區(qū)域

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)ResultMessage := [‘Not OK’,Number + ‘defect(s) found’]Color := [‘red’,’black’]dev_display(ContCircle) else ResultMessage := ‘OK’Color := ‘forest green’

如果不存在缺陷區(qū)域,顯示OK
endif

disp_message(WindowHandle,ResultMessage,’window’,12,12,Color,’ture’) if(Index#NumImages)disp_continue_message(WindowHandle,’black’,’ture’)stop()endif

endfor

處理結(jié)果預(yù)覽








算法講解

在實(shí)際的表面缺陷檢測(cè)系統(tǒng)中,針對(duì)的檢測(cè)表面很多是具有一定紋理的比如:布匹、皮革、塑料等,針對(duì)這一類表面的檢測(cè)就不能單純依靠幀差或者背景差來(lái)完成,因?yàn)楸尘暗募y理不可能和當(dāng)前圖像的紋理完全相同。因此,本例程的算法通過(guò)將圖像變換到頻域進(jìn)行處理,提取缺陷分量后反變換到時(shí)域,獲得缺陷的具體位置。
在本算法中,在一開始就構(gòu)造了兩個(gè)高斯濾波器,高斯濾波器是一種線性平滑濾波器,適用于消除高斯噪聲。濾波器的實(shí)質(zhì)是對(duì)信號(hào)進(jìn)行濾波,濾除不需要的部分,得到想要的部分。一個(gè)低通的濾波器可以濾除高頻信號(hào),對(duì)于圖像來(lái)說(shuō),噪聲和邊緣往往集中在高頻分量,因此低通能夠降噪,但是也能造成圖像的模糊。
關(guān)鍵就是使用兩個(gè)低通濾波器,進(jìn)行相減后構(gòu)造了一個(gè)帶阻濾波器來(lái)提取缺陷分量。這就需要保證在實(shí)際的待檢測(cè)表面中缺陷所處的頻率范圍要和背景以及噪聲有明顯的差異,并且?guī)ё璧念l率選擇要合適。通過(guò)帶阻濾波后獲得的頻率成分對(duì)背景中的紋理要有明顯的抑制,并且突出缺陷成分,進(jìn)行傅里葉反變換后重構(gòu)的圖像就是缺陷圖像,經(jīng)過(guò)簡(jiǎn)單的分割就能很容易得到缺陷了。

總結(jié)

以上是生活随笔為你收集整理的傅里叶变换进行缺陷检测detect_indent_fft.hdev(源代码与详细解析)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人午夜在线播放 | 日本乳汁视频 | www.欧美一区二区三区 | 精品无码国产污污污在线观看 | 又大又粗弄得我出好多水 | 久久av网站| 在线播放国产一区 | 日韩中文字幕观看 | 91午夜剧场| 日本一级淫片免费放 | 欧美黄色录像片 | 在线播放亚洲 | 日本丰满熟妇hd | 成人短视频在线播放 | 西西久久| 精品一区二区视频在线观看 | 国产爽视频| 国产一二在线观看 | 免费在线观看网址入口 | 国产一区二三区 | www亚洲成人 | 国产熟妇一区二区三区aⅴ网站 | 亚洲男性天堂 | 精品国产户外野外 | www.av成人 | av色在线 | 黄91在线观看 | 日韩激情av在线 | 影音先锋蜜桃 | 老色批网站 | 日韩在线资源 | 日韩高清专区 | 午夜视频久久久 | 日韩毛片网站 | 美女扒开尿口给男人看 | 免费看一级黄色片 | 91免费在线看 | 呦呦av| 欧美成人生活片 | 国产三级精品在线观看 | 国产美女明星三级做爰 | 奴性白洁会所调教 | 欧美浓毛大泬视频 | 国产激情视频一区二区三区 | 国产精品久久久久久亚洲伦 | 黄色特级片 | 在线视频观看国产 | 一级特黄a | 亚洲av人无码激艳猛片服务器 | 暖暖av在线 | 国产精品成人免费视频 | 亚欧美日韩 | 污污的视频网站在线观看 | a一级网站| 爆操网站 | 无码精品在线观看 | 亚洲福利网站 | 日本一区二区三区精品 | 日韩一级高清 | 人人澡人人插 | 亚洲黄色免费看 | 免费在线一区二区三区 | 日皮视频网站 | 国产午夜视频在线 | 亚洲成熟丰满熟妇高潮xxxxx | 黄色三级网络 | 野外性满足hd| 丝袜美腿亚洲综合 | 久操成人 | 婷婷二区 | 男女羞羞在线观看 | 国产成人精品视频ⅴa片软件竹菊 | 精品无码三级在线观看视频 | 中文字幕在线导航 | 翔田千里一区二区三区av | 日韩av影视大全 | 国产人澡人澡澡澡人碰视频 | 国产女人叫床高潮大片免费 | 欧美亚洲另类小说 | 日本一二三视频 | 国产主播专区 | 精品国产精品三级精品av网址 | 粉嫩aⅴ一区二区三区四区五区 | 午夜影院在线播放 | 高级家教课程在线观看 | 日韩亚洲在线 | 午夜影院黄| 国产亚洲一区在线 | 亚洲欧洲色 | 91亚洲一区| 国产色一区二区 | 久久成人福利视频 | 日朝毛片| 免费观看久久久 | 亚洲国产精品免费 | 美乳人妻一区二区三区 | 国产专区一区二区 | 男女性高潮免费网站 | 综合激情久久 |