ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

傅里叶变换的高通滤波

2021-12-03 19:32:36  阅读:186  来源: 互联网

标签:gray plt img 变换 30 np 傅里叶 cv 通滤波


import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt

img = cv.imread('E:/tuxiangku/cat.jpg')# 读入图片并灰度化
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)

gray_f=np.float32(gray) ##float类型

h,w=gray.shape #获得长宽
a=int(h/2)# 计算图片中心位置
b=int(w/2)

dst=np.ones((h,w,2),np.uint8) #生成一个中间白两边黑的图片
dst[a-30:b-30,a+30:b+30]=0


dft=cv.dft(gray_f,flags=cv.DFT_COMPLEX_OUTPUT)#傅里叶变换
fshift = np.fft.fftshift(dft)#移动低频到中间


f_shift=fshift*dst #两图片位置信息相乘,获得中间白两边黑的低通滤波器
ishift = np.fft.ifftshift(f_shift)#逆移动位置
img_b=cv.idft(ishift)
magnitude_b=cv.magnitude(img_b[:,:,0],fshift[:,:,1])


plt.subplot(121)## 例如:plt.subplot(222)表示将整个图像窗口分为2行2列, 当前位置为2.
plt.imshow(gray_f,cmap='gray')
plt.title('picture')
plt.axis('off') #关闭坐标轴


plt.subplot(122)
plt.imshow(magnitude_b,cmap='gray')#cmap: 颜色图谱
plt.title('result')
plt.axis('off')
plt.show()

标签:gray,plt,img,变换,30,np,傅里叶,cv,通滤波
来源: https://blog.csdn.net/xiaoqiuqiuyaha/article/details/121705440

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有