Halcon傅里叶变换,算法加速,格式转换

前言

傅里叶变换常用于缺陷检测项目,对于一些背景偏暗,对比度不明显的场景,傅里叶变换可以起到提升对比度的效果。
傅里叶变换从频域角度来处理,对于一些图像像素尺寸大的图像,算法时间往往时间达到1s以上,对于一些快速检测场景而言,此方法需要进一步改进

算法加速

首先将提取的ROI区域

reduce_domian
crop_domian

这样的话ROI区域变成了图像,整体图像尺寸进一步减小
另外,halcon提供了一个针对实值傅里叶变换的算子

optimize_rft_speed (700,700, 'standard')

通过这个算子,先根据裁剪后的图像像素尺寸的宽高,再加上这个优化算子,再运行傅里叶变换相关算子时,整体算法时间只有几十毫秒了。

主要代码片段

* 优化实值FFT的运行时间
optimize_rft_speed (700,700, 'standard')
*生成高斯滤波器,然后相减得到一个滤波器图像
Sigma1 := 180.0 
Sigma2 :=0.5
gen_gauss_filter (GaussFilter1, Sigma1, Sigma1, 0.0, 'none', 'rft',680, 680) 
gen_gauss_filter (GaussFilter2, Sigma2, Sigma2, 0.0, 'none', 'rft',680, 680) 
sub_image (GaussFilter1, GaussFilter2, Filter, 1, 0) 
*将图像傅里叶变换,生成一个复杂矩阵图像,to_freq正向转换
rft_generic (ImagePart, ImageFFT, 'to_freq', 'none', 'complex', 680) 
*将傅里叶变换图像与滤波器图像卷积
convol_fft (ImageFFT, Filter, ImageConvol) 
*将卷积后的傅里叶变换图像再次变换,from_freq反向转换
rft_generic (ImageConvol, ImageFiltered, 'from_freq', 'n', 'real', 680) 
****将灰度在0-255内拉伸变换
scale_image_max (ImageFiltered, ImageScaleMax)

格式转换

傅里叶变换后的图像ImageFiltered并不是常用的灰度在0到255的byte型图像,需要使用scale_image_max转换成常用类型图像,以便后续进一步处理。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

手写不期而遇

感谢你的打赏,也欢迎一起学习

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值