目录
1. 直方图处理
1.1 绘制直方图
1.1.1 使用Numpy绘制直方图
1.1.2 使用OpenCV绘制直方图
1.1.3 使用掩模绘制直方图
1.2 直方图均衡化
1.3 pyplot模块介绍
1.3.1 subplot函数
matplotlib.pyplot.subplot(nrows,ncols,index)
. nrows为行数
. ncols为列数
. index为窗口序号
1.3.2 imshow()
matplotlib.pyplot.imshow(x,cmap=None)
. x为图像信息,可以是各种形式的数值
. cmap表示色彩空间,默认使用RGB色彩空间
2.傅里叶变换
2.1 Numpy实现傅里叶变换
2.1.1 实现傅里叶变换
返回值=numpy.fft.fft2(原始图像)
. 原始图像是一个灰度图像
. 返回值是一个复数数组
返回值=numpy.fft.fftshift(原始频谱)
. 图像频谱中的零频率分量会被移到频域图像的中心位置
对图像进行傅里叶变换后,得到的是一个复数数组,为了显示为图像,需要将他们的值调整到[0,255]的灰度空间内,使用的公式为:
像素新值 =20*np.log(np.abs(频谱值))
2.1.2 实现逆傅里叶变换
调整后的频谱=numpy.fft.ifftshift(原始频谱)
返回值=numpy.fft.ifft2(频域数据)
. 返回值仍旧是一个复数数组
逆傅里叶变换得到的空域信息是一个复数数组,需要将该信息调整至[0,255]灰度空间内,使用的公式为:
iimg=np.abs(逆傅里叶变换结果)
2.1.3 高通滤波器
. 允许低频信号通过的滤波器称为低通滤波器。低通滤波器使高频信号衰减而对低频信号放行,会使图像变模糊。
. 允许高频信号通过的滤波器称为高通滤波器。高通滤波器使低频信号衰减而让高频信号通过,将增强图像中尖锐的细节,但是会导致图像的对比度降低。
2.2 OpenCV实现傅里叶变换
2.2.1 实现傅里叶变换
返回结果=cv.dft(原始图像,转换标识)
. “原始图像”,首先使用np.float32()函数将图像转换成np.float32格式。
. “转换标识”的值通常为“cv.DEF_COMPLEX_OUTPUT",用来输出一个复数阵列
dftshift=np.fft.fftshift(dft)
返回值=cv.magnitude(参数1,参数2) #计算频谱信息的幅度
. 参数1:浮点型x坐标值,实部
. 参数2:浮点型y坐标值,虚部(他和参数1具有相同的size大小)
. 返回值是参数1和参数2的平方和的平方根
result=20*np.log(cv.magnitude(实部,虚部))#将幅度值映射到灰度图像的灰度空间[0,255]内
2.2.2 实现逆傅里叶变换
返回结果=cv.idft(原始数据)