资源描述:
《基于halcon进行塑料制品表面缺陷检测的源程序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于Halcon进行塑料制品表面缺陷检测的源程序例程:detectjndent_fft.hdev说明:这个程序展示了如何利用快速傅里叶变换(FFT)对塑料制品的表面进行目标(缺陷)的检测,大致分为三步:首先,我们用高斯滤波器构造一个合适的滤波器(将原图通过高斯滤波器滤波);然后,将原图和构造的滤波器进行快速傅里叶变换;最后,利用形态学算子将缺陷表示在滤波后的图片上(在缺陷注:代码中绿色部分为个人理解和注释,其余为例程中原有代码initialization(初始化)dev_updata_off()
2、//这一句包含如下三个算子://dev_updata_pc(‘off’)关闭更新程序计数器//dev_updata_var(‘off’)关闭更新变量窗口//dev_updata_window(‘off’)关闭更新图像窗口(即通过命令来显示想要在图像窗口显示的图片)devclosewindow()//关闭活动的图像窗口read_image(Image,plasticsplastics_01’)//载入图片//参数说明:为读入图片命名(Image)//文件名(’plastics/plastics_0
3、1’)get_image一size(Image,Width,height)//获取图片的长宽;//参数说明:之前读入或生成的图片(Image)//图片的宽(Width)//图片的高(Height)devopenwindow(0,0,Width,Height,’Black’,WindowHandle)//打开一个新的图像窗门//参数说明:起始坐标(0,0)//大小(Width,Height)//背景颜色(’Black’)//窗口句柄(WindowHandle)setdisplay_font(Win
4、dowHandle,14,’mono’,’true’,’false’)"设置不依赖操作系统的字体//参数说明:窗口句柄(WindowHandle)//字体大小(14)//字体类型(’mono’)//是否黑体(’ture’)//是否倾斜(’false?)dcv_sct_draw(‘Margin’)//定义区域填充模式//参数说明:填充模式(’Margin’或者’Fill’)dev_set_line_width(3)//设置输出区域轮廓线的线宽//可以修改参数来看最后缺陷区域标示的区别devsetc
5、olor(’red’)//设置一种或者多种输出颜色^Optimizethefftspeedforthespecificimagesize(根据指定图像人小进行fft速度最优化)optimizerftspeed(Width,Height,’standard’)//对指定大小的图片的fft速度进行优化//参数说明:图片大小(Width,Height)//优化模式(’standard’)氺氺ConstructasuitablefilterbycombiningtwoGaussianfiIters(结合
6、两个高斯滤波器构造一*个合适的滤波器)Sigmal:=10.0Sigma2:=3.0//定义两个常量gcn_gauss_fiIter(GaussFiltcrl,Sigmal,Sigmal,0.0,’none’,’rft’,Width,Height)gcngauss_fi1ter(GaussFilter2,Sigma2,Sigma2,0.0,none’,’rft’,Width,Height)//在频域生成两个高斯滤波器//参数说明:生成的高斯滤波器(GaussFilter)//空域中高斯在主方向上
7、的标准差(Sigma)//空域中高斯在正交于主方向的方向上的标准差(Sigma)//滤波器主方向的角度(0.0)//滤波器的规范(’none,)//直流项在频域的位置(’rft’)//图片的大小(Width,Height)subimage(GaussFilterl,GaussFilter2,Filter,1,0)//两图片相减(灰度)//sub_image(TmagcMinucnd,ImagcSubtrahcnd:TmagcSub:Mult,Add:)//g’:=(gl—g2)*Mult+Add
8、//以上为函数原型以及运算公式^Processtheimagesiteratively(对图像进行迭代运算)NumImages:=11ForIndex:=1toNumlmagesby1//for循环从1到NumTmages,步长力1氺氺Readanimageandconvertittograyvaluesreadimage(Image,’plastics/plastics」+Index$,02’)rgbl_to_gray(Tmage,Image)//将原图转化力灰度图,第一个参数力原图氺Perf