OpenCV-Python学习------------直方图处理------------傅里叶变换

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(原始数据)
在这里插入图片描述

在这里插入图片描述

2.2.3 低通滤波示例

在这里插入图片描述

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值