基于halcon进行塑料制品表面缺陷检测的源程序

基于halcon进行塑料制品表面缺陷检测的源程序

ID:6825213

大小:28.00 KB

页数:0页

时间:2018-01-27

基于halcon进行塑料制品表面缺陷检测的源程序_第页
预览图正在加载中,预计需要20秒,请耐心等待
资源描述:

《基于halcon进行塑料制品表面缺陷检测的源程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于Halcon进行塑料制品表面缺陷检测的源程序例程:detect_indent_fft.hdev说明:这个程序展示了如何利用快速傅里叶变换(FFT)对塑料制品的表面进行目标(缺陷)的检测,大致分为三步:首先,我们用高斯滤波器构造一个合适的滤波器(将原图通过高斯滤波器滤波);然后,将原图和构造的滤波器进行快速傅里叶变换;最后,利用形态学算子将缺陷表示在滤波后的图片上(在缺陷上画圈)。注:代码中绿色部分为个人理解和注释,其余为例程中原有代码*Initialization(初始化)dev_updata_off()//这一句包含如下三个算子://dev_updata_pc(‘o

2、ff’)关闭更新程序计数器//dev_updata_var(‘off’)关闭更新变量窗口//dev_updata_window(‘off’)关闭更新图像窗口(即通过命令来显示想要在图像窗口显示的图片)dev_close_window()//关闭活动的图像窗口read_image(Image,’plastics/plastics_01’)//载入图片//参数说明:为读入图片命名(Image)//文件名(’plastics/plastics_01’)get_image_size(Image,Width,height)//获取图片的长宽;//参数说明:之前读入或生成的图片(Im

3、age)//图片的宽(Width)//图片的高(Height)dev_open_window(0,0,Width,Height,’Black’,WindowHandle)//打开一个新的图像窗口//参数说明:起始坐标(0,0)//大小(Width,Height)//背景颜色(’Black’)//窗口句柄(WindowHandle)set_display_font(WindowHandle,14,’mono’,’true’,’false’)//设置不依赖操作系统的字体//参数说明:窗口句柄(WindowHandle)//字体大小(14)//字体类型(’mono’)//是否黑

4、体(’ture’)//是否倾斜(’false’)dev_set_draw(‘Margin’)//定义区域填充模式//参数说明:填充模式(’Margin’或者’Fill’)dev_set_line_width(3)//设置输出区域轮廓线的线宽//可以修改参数来看最后缺陷区域标示的区别dev_set_color(’red’)//设置一种或者多种输出颜色**Optimizethefftspeedforthespecificimagesize(根据指定图像大小进行fft速度最优化)optimize_rft_speed(Width,Height,’standard’)//对指定大小

5、的图片的fft速度进行优化//参数说明:图片大小(Width,Height)//优化模式(’standard’)**ConstructasuitablefilterbycombiningtwoGaussianfilters(结合两个高斯滤波器构造一*个合适的滤波器)Sigma1:=10.0Sigma2:=3.0//定义两个常量gen_gauss_filter(GaussFilter1,Sigma1,Sigma1,0.0,’none’,’rft’,Width,Height)gen_gauss_filter(GaussFilter2,Sigma2,Sigma2,0.0,’no

6、ne’,’rft’,Width,Height)//在频域生成两个高斯滤波器//参数说明:生成的高斯滤波器(GaussFilter)//空域中高斯在主方向上的标准差(Sigma)//空域中高斯在正交于主方向的方向上的标准差(Sigma)//滤波器主方向的角度(0.0)//滤波器的规范(’none’)//直流项在频域的位置(’rft’)//图片的大小(Width,Height)sub_image(GaussFilter1,GaussFilter2,Filter,1,0)//两图片相减(灰度)//sub_image(ImageMinuend,ImageSubtrahend:Im

7、ageSub:Mult,Add:)//g':=(g1-g2)*Mult+Add//以上为函数原型以及运算公式**Processtheimagesiteratively(对图像进行迭代运算)NumImages:=11ForIndex:=1toNumImagesby1//for循环从1到NumImages,步长为1**Readanimageandconvertittograyvaluesread_image(Image,’plastics/plastics_’+Index$’02’)rgb1_to_gray(Image,Image

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。