概述
Halcon -表面瑕疵脏污检测
1、拿到一张图片,我们在看到Halcon例子中有一篇find_Scratches_bandpass_fft.dev。其中就讲到了核心的几个算子,用来对空间图像转变成频域的图像。即进行傅里叶变换。
例子中在读入一张图片,进行预处理使用gauss_filter图像平滑,然后进行的正弦带通滤波。gen_sin_bandpass(ImageFilter,Frequency,Norm,Mode,Width,Height)Frequency指的是频率0-1之间。Norm因子归一化方式:‘n’或‘none’。Mode决定滤波器的DC-trem在哪里或者滤波器是否可以在实数快速傅里叶变换中使用。剩下的参数是图片的宽和高。
一般还可以使用两个,注意是两个下面的算子,得到的输出图片相减,输出的图片,形成带通滤波。gen_gauss_filter(ImageGuass,sigma1,sigma1,0,‘none’,‘rft’,width,height)来代替正弦带通滤波。在halcon关于这个算子的介绍中,有这么一句话需要注意 If fft_image and fft_image_inv are used for filtering, Norm = ‘none’ and Mode = ‘dc_center’ must be used. If rft_generic is used, Mode = ‘rft’ must be used.
2、下面进行对图像做实数快速傅里叶变换
rft_generic(输入的byte图像即先前高斯平滑的图像,输出图像格式complex也就是ImageFFT, ‘to_freq’, ‘none’, ‘complex’, Width) 其中输出图片的大小是(w/2+1)h。与卷积后再反傅里叶变换图片大小相对应
3、根据一个滤波器对图像在频域做卷积。这里是对傅里叶变换后的图像用上面生成的正弦滤波器做一次卷积。convol_fft(ImageFFT,ImageBnadpass,ImageConvol)
4、反傅里叶变换,其中的参数改为‘from_freq’。此时输出图像大小计算为2w-2
5、下面就是熟悉的形态学分离出划痕。
最后
以上就是魔幻钢笔为你收集整理的Halcon -表面瑕疵脏污检测的全部内容,希望文章能够帮你解决Halcon -表面瑕疵脏污检测所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复