Halcon学习之频域-频域的基础介绍

前面介绍完一些常规项目所需要用的内容知识:一维码二维码读取,OCR识别,测量,定位等。其中大部分的思路或者说是套路是:
一、获取图像(获取信息)
二、预处理
预处理主要是从两方面进行:提高对比度、去噪。
提高对比度的算子:scale_image、emphasize、gray_range_rectangle(模板矩阵对应的最大值最小值的差替代中心点像素值)、equ_histo_image等。
去噪的算子:均值滤波mean_image、中值滤波median_image、高斯滤波gauss_image、频域滤波。

三、分割图像
图像分割就是要提取出感兴趣区域。
分割的算子:threshold、binary_threshold、dyn_threshold、var_threshold等等。

四、形态学处理
腐蚀,膨胀之类的

五、特征提取
提取出图像或区域的特征,作为判断的依据。
特征包括:面积、宽度、高度、矩形度、圆度等等。

六、输出结果

基本掌握这些流程之后,我们就能对付大部分的图像处理的情况。但在我们实际工作中,碰到的这种常规项目还是比较少的,现在大部分都是缺陷检测,这一类水浅水深只有自己经历过才知道,当然了不是所有缺陷检测都是很难的,也有很简单的就比如正反面辨别啊之类的,做这类项目没有固定的章法,主要视情况而定。接下来我在着重讲解下预处理部分的频域内容,这个在处理一些缺陷类的项目中还是比较实用的。
下面我就介绍下频域的基础内容:
**1.**空间域与频域
  空间域:对像素的灰度处理
  频域:傅里叶变换和小波变换
  频域检测缺陷的思路是先从空间域到频域,在频域中进行适当滤波,选择自己想要的频段,然后再返回到空间域中去。
**2.**频谱(频率谱):频率密度的分布
  纵坐标表示幅度值
  横坐标表示频率
  在频谱中用亮暗来表示  
**3.**频率高低
  灰度变化大的地方:高频,一般是边缘小细节
  灰度变化小的地方:低频,一般是背景
**4.**频域与傅里叶变换
  4.1傅里叶变换是有对称性的,频谱图像一般以图像中心为原点,左上与右下对称,右上与左下对称
  4.2频域图像中间一般为低频,由中心向外频率逐渐增加,每点越亮表示该频率特征突出,亮点越多表示频率成分越多,一般图像中心设置成低频,低频就是背景,背景的频率肯定大,所以中心亮
  4.3空间域原图中某方向变化剧烈,那么对应频谱中该方向就会出现相应的亮点,傅里叶反变换是从频域到空间域,一般实在频域中滤波后再反变换到时域空间域
**5.**傅里叶变换的四个性质
  对称性、平移性、共轭性、周期性
6. fft_image 快速傅里叶变化,频谱原点在中心 空间域到频域
fft_generic 参数可选在中心还是四个角上
rft_generic 原点在四个角上
简单的代码演示下:

read_image (Image1, 'F:/频域的基本/频域图形解析/1.png')
fft_image (Image1, ImageFFT)

原图:
Halcon学习之频域-频域的基础介绍_第1张图片
快速傅里叶变换后的图像:
Halcon学习之频域-频域的基础介绍_第2张图片
长方形横向部分相较于竖向部分在同一时间内明暗变化比较长(缓慢),也就是竖直方向的变换会剧烈一点,所以傅里叶变换后的竖直方向的亮点更加明显。

read_image (Image2, '/频域的基本/频域图形解析/2.png')
fft_generic (Image2, ImageFFT1, 'to_freq', -1, 'sqrt', 'dc_center', 'complex')

原图如下:
Halcon学习之频域-频域的基础介绍_第3张图片
傅里叶变换:
Halcon学习之频域-频域的基础介绍_第4张图片
由于是圆,各个方向的变化趋势都是一样的。

read_image (Image3, 'F:/频域的基本/频域图形解析/3.png')
fft_image (Image3, ImageFFT2)

原图如下:
Halcon学习之频域-频域的基础介绍_第5张图片
傅里叶变换后:
Halcon学习之频域-频域的基础介绍_第6张图片

你可能感兴趣的:(机器视觉,图像处理,计算机视觉,图像识别,图像处理)