Python低通滤波如何实现?Python怎么写低通滤波代码

python可以通过很多不同的算法、模块、库方法来实现对图像的处理操作,而使用算法加方法是效率比较高且可以自定义的一种图像处理方式。那么这一篇文章主要介绍的内容就是低通滤波的作用以,以及python该怎么写实现低通滤波的代码

一、低通滤波作用

这里的滤波指的就是图像滤波,是通过对图像噪声进行抑制或者提高来在少破坏图像本身的前提下对其进行修改。那么低通滤波就是将高于某一个点,或者说是阈值的星号给去除掉,这样得出来的效果就是让图像的清晰度降低,添加一种模糊和朦胧的效果

二、python实现低通滤波代码

1.python中编写低通滤波实现代码需要用到opencv、numpy、matplotlib这三个第三方库,首先需要使用opencv之中的imread()方法将待处理的图像读取进来,并且通过参数设置来将其转为灰度图像方便后续操作,代码示例如下:

import cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread('./moon.jpg', flags = cv2.IMREAD_GRAYSCALE)

2.因为图像上的色彩上限为255,在读取完图像之后将其除以这个数就可以把他转为单精度float32的数据。之后调用dft()方法来实现傅里叶变换将低频滤波位置移动到中心,在通过shape属性获取到分辨率并且除以二得到中心点,代码如下:

img1 = img/255
dtf = cv2.dft(img1, flags = cv2.DFT_COMPLEX_OUTPUT)  
dft_shift = np.fft.fftshift(dtf)  
h,w = img.shape
h2, w2 = h//2, w//2 
mask = np.zeros((h,w,2), dtype=np.uint8)

3.因为低通滤波是需要去掉高于某个点的信号,而现在所要做的事情就是只保留低频部分并且再进行傅里叶变换。这个时候就是已经得到了低通滤波处理过后的图像,调用plt模块创建窗口并且显示图像即可,详细代码如下所示:

mask[h2-50:h2+50,w2-50:w2+50] = 1 
dft_shift*=mask  
ifft_shift2 = np.fft.ifftshift(dft_shift)  
result = cv2.idft(ifft_shift2)
plt.subplot(122)
plt.imshow(result[:,:,0], cmap='gray')
plt.show()

以上就是关于“Python低通滤波如何实现?Python怎么写低通滤波代码”的全部内容了,希望对你有所帮助。

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...