网站首页 > 技术教程 正文
傅里叶变换(FFT)常被用来分析滤波器的频率特性, 我们可用2维离散傅里叶变换 (DFT) 分析图像频域特性。至于FFT的定义和意义我就不在这里展开, 了大家可以自己去了解一下。其中,opencv中FFT的涉及到 cv2.dft(),cv2.idft()等函数。
我们先来看看, 如果对图像的高频和低频部分进行过滤,产生的图像有什么特性呢?我们可以从下面的图像感受一下:
def get_low_high_f(img, radius_ratio):
"""
获取低频和?频部分图像
"""
# 傅?叶变换
# np.fft.fftn
f = np.fft.fftn(img) # Compute the N-dimensional discrete Fourier Transform. 零频率分量位于频谱图像的左上?
fshift = np.fft.fftshift(f) # 零频率分量会被移到频域图像的中?位置,即低频
# 获取低频和?频部分
hight_parts_fshift = filter_low_f(img, fshift.copy(), radius_ratio=radius_ratio) # 过滤掉中?低频
low_parts_fshift = filter_high_f(img, fshift.copy(), radius_ratio=radius_ratio)
low_parts_img = ifft(low_parts_fshift) # 先sift回来,再反傅?叶变换
high_parts_img = ifft(hight_parts_fshift)
# 显?原始图像和?通滤波处理图像
img_new_low = (low_parts_img - np.amin(low_parts_img)) / (np.amax(low_parts_img) - np.amin(low_parts_img) + 0.00001)
img_new_high = (high_parts_img - np.amin(high_parts_img) + 0.00001) / (np.amax(high_parts_img) - np.amin(high_parts_img) + 0.00001)
# uint8
img_new_low = np.array(img_new_low*255, np.uint8)
img_new_high = np.array(img_new_high * 255, np.uint8)
return img_new_low, img_new_high
def ifft(fshift):
"""
傅?叶逆变换
"""
ishift = np.fft.ifftshift(fshift) # 把低频部分sift回左上?
iimg = np.fft.ifftn(ishift) # 出来的是复数,?法显?
iimg = np.abs(iimg) # 返回复数的模
return iimg
def fft(img):
"""
傅?叶变换
"""
f = np.fft.fft2(img)
fshift = np.fft.fftshift(f)
magnitude_spectrum = 20*np.log(np.abs(fshift))
return magnitude_spectrum
例子2:
例子3:
我们有没有发现比较有趣的现象? 例子2和1及3相比,低频分量更多一些,轮廓边界也不清晰, 这就为后期图像增强和处理提高了思路。
图像模糊和增强处理后效果:
- 上一篇: 让傅里叶给你讲讲拉普拉斯变换「附拉氏变换终值定理和常用性质」
- 下一篇: 傅里叶级数→傅里叶变换
猜你喜欢
- 2024-11-26 连续与离散信号的傅里叶级数和傅里叶变换比较
- 2024-11-26 傅里叶变换、拉普拉斯变换、Z 变换的联系是什么?为什么要进行这些变换?
- 2024-11-26 连续与离散时间域各种傅里叶变换的联系与区别
- 2024-11-26 一文读懂傅立叶变换处理图像的原理
- 2024-11-26 傅里叶变换(DFT)是酉变换的证明
- 2024-11-26 正弦函数傅里叶变换的意义及频谱泄露原因的理论分析
- 2024-11-26 在离散时间域对于傅里叶变换的深度理解
- 2024-11-26 OpenCV(31)——傅里叶变换原理
- 2024-11-26 OpenCV (之七)离散傅里叶变换
- 2024-11-26 傅里叶变换的相位来源
你 发表评论:
欢迎- 07-09比斯特星人玩具系列图鉴列表(比斯特官网)
- 07-09Jenkins使用Docker插件动态构建Docker镜像的方法
- 07-09精度延迟两不误,移动端性能新SOTA,谷歌TF开源轻量级EfficientNet
- 07-09TED演讲:少抱怨外部因素、多思考如何解决问题(中英文)
- 07-09CBN丨China's growth target of 5% will be reached: PBOC quarterly report
- 07-09CBN Special丨Turning snow into gold: China's winter sports, tourism ignite consumption
- 07-09波音737着陆后起火,网友:波音你咋那么多事儿呢?
- 07-09梦工厂虚拟现实平台中的萌系企鹅会向你打招呼
- 最近发表
-
- 比斯特星人玩具系列图鉴列表(比斯特官网)
- Jenkins使用Docker插件动态构建Docker镜像的方法
- 精度延迟两不误,移动端性能新SOTA,谷歌TF开源轻量级EfficientNet
- TED演讲:少抱怨外部因素、多思考如何解决问题(中英文)
- CBN丨China's growth target of 5% will be reached: PBOC quarterly report
- CBN Special丨Turning snow into gold: China's winter sports, tourism ignite consumption
- 波音737着陆后起火,网友:波音你咋那么多事儿呢?
- 梦工厂虚拟现实平台中的萌系企鹅会向你打招呼
- 火腿大讨论一个外国火腿的苦恼丨离开电网,这电台咋供电?有啥好电源推荐?
- 1989年美国空军B-1B轰炸机无前轮迫降,命大没起火,多机位拍摄
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)