数字图像处理:python对图像做傅里叶变换,理想低通滤波器,理想高通滤波器
对Lena图像进行以下处理(可使用编程语言自带函数,以实验报告形式提交word文件):
(1)做傅里叶变换,并显示频谱图像;
(2)使用理想低通滤波器,截止频率半径分别选取10、20、50、80,分别显示对应的滤波后图像,并做简要分析;
(3)使用理想高通滤波器,截止频率半径分别选取10、20、50、80,分别显示对应的滤波后图像,并做简要分析。
累了,自己看吧
高通滤波:边缘提取与增强
低通滤波:边缘平滑
边缘区域的灰度变换加大,也就是频率较高。所以,对于高通滤波,边缘部分将被保留,非边缘部分将被过滤;对于低通滤波,边缘区域将被平滑过渡。
import numpy as np
import cv2
import matplotlib.pyplot as plt
#(1)做傅里叶变换,并显示频谱图像
Lena = cv2.imread('Lena_gray.jpg')
img = cv2.cvtColor(Lena, cv2.COLOR_BGR2GRAY)
dft = cv2.dft(np.float32(img), flags=cv2.DFT_COMPLEX_OUTPUT)
dftshift = np.fft.fftshift(dft)
result = 20 * np.log(cv2.magnitude(dftshift[:, :, 0], dftshift[:, :, 1]))
plt.subplot(121), plt.imshow(img, cmap='gray')
plt.title('original'), plt.axis('off')
plt.subplot(122), plt.imshow(result, cmap='gray')
plt.title('original'), plt.axis('off')
plt.show()#(2)理想高通滤波器(3)理想低通滤波器
def IdealHighPassFiltering(f_shift):# 设置滤波半径D0 = 80# 初始化m = f_shift.shape[0]n = f_shift.shape[1]h1 = np.zeros((m, n))x0 = np.floor(m / 2)y0 = np.floor(n / 2)for i in range(m):for j in range(n):D = np.sqrt((i - x0) ** 2 + (j - y0) ** 2)if D >= D0:h1[i][j] = 1result = np.multiply(f_shift, h1)return resultdef IdealLowPassFiltering(f_shift):# 设置滤波半径D0 = 80# 初始化m = f_shift.shape[0]n = f_shift.shape[1]h1 = np.zeros((m, n))x0 = np.floor(m / 2)y0 = np.floor(n / 2)for i in range(m):for j in range(n):D = np.sqrt((i - x0) ** 2 + (j - y0) ** 2)if D <= D0:h1[i][j] = 1result = np.multiply(f_shift, h1)return resultf = np.fft.fft2(img)
f_shift = np.fft.fftshift(f)# 理想高通滤波
IHPF = IdealHighPassFiltering(f_shift)
new_f1 = np.fft.ifftshift(IHPF)
new_image1 = np.uint8(np.abs(np.fft.ifft2(new_f1)))
plt.subplot(1, 2, 1)
plt.imshow(new_image1, 'gray')
# 理想低通滤波
GLPF = IdealLowPassFiltering(f_shift)
new_f2 = np.fft.ifftshift(GLPF)
new_image2 = np.uint8(np.abs(np.fft.ifft2(new_f2)))
plt.subplot(1, 2, 2)
plt.imshow(new_image2, 'gray')
plt.show()
数字图像处理:python对图像做傅里叶变换,理想低通滤波器,理想高通滤波器相关推荐
- 数字图像处理实验八图像的傅里叶变换
自选一幅灰度图像,编写MATLAB程序,完成图像的傅里叶变换并显示图像傅里叶变换谱. 1.快速图像傅里叶变换函数 Y = fft2(X) 2.将图像频谱零频分量移动到图像频谱中心 Y = fftshi ...
- Win8 Metro(C#)数字图像处理--2.52图像K均值聚类
原文:Win8 Metro(C#)数字图像处理--2.52图像K均值聚类 [函数名称] 图像KMeans聚类 KMeansCluster(WriteableBitmap src,int ...
- Win8Metro(C#)数字图像处理--2.3图像反色
原文:Win8Metro(C#)数字图像处理--2.3图像反色 [函数名称] 图像反色函数ContraryProcess(WriteableBitmap src) [算法说明] 反色公式如下: ...
- Win8 Metro(C#)数字图像处理--3.3图像直方图计算
原文:Win8 Metro(C#)数字图像处理--3.3图像直方图计算 /// <summary>/// Get the array of histrgram./// </summa ...
- Win8Metro(C#)数字图像处理--2.7图像伪彩色
Win8Metro(C#)数字图像处理--2.7图像伪彩色 原文:Win8Metro(C#)数字图像处理--2.7图像伪彩色 2.7图像伪彩色函数 [函数名称] 图像伪彩色函数PseudoCol ...
- Python数字图像处理---1.1图像的像素格式与图像读写
目录 前言 图像像素格式 图像读写 前言 本专栏面向所有希望或有兴趣从事数字图像处理工作.学习或研究的朋友,编程语言采用了当下最火的Python语言. Python是一种跨平台的计算机设计语言,也是一 ...
- 数字图像处理实验四图像频域增强
一.实验目的 (1)了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学的图像增强的理论知识和相关算法. (2)熟练掌握低通.高通.带通.同态滤波器的使用方法,明确不同性质的滤波器对图像的影响 ...
- 数字图像处理python实现-形态学处理
内容简介 腐蚀膨胀 开闭运算 轮廓提取 击中与击不中 骨架提取 细化骨架提取 细化 裁剪 距离变换骨架提取 Hilditch算法骨架提取 首先明确一点形态学操作都是针对与二值图像,在灰度图像的形态学处 ...
- c++ opencv数字图像处理:频率域滤波--低通滤波--理想低通滤波
文章目录 前言 一.理想低通滤波器(ILPF) 二.代码 三.说明 前言 数字图像处理c++ opencv(VS2019 opencv4.53)持续更新 一.理想低通滤波器(ILPF) 通过设置频率半 ...
最新文章
- 飞越难关,飞书生态「战疫工具箱」来驰援!
- 动车废票二维码将泄露个人信息 暂无防止破解法
- Spring实现热加载MyBatis 的XML配置文件
- IDEA打包成可执行的JAR包
- 环境变量空格符号带来的坑
- CMake1:HelloWorld
- 与其感慨路难行,不如马上出发
- auto.js小案例
- 2016美国计算机研究生,2016美国留学:美国大学研究生计算机工程专业排名
- Git笔记(22) 项目贡献要点
- python绘制3d机械图_使用python绘制3d的图形
- .NET应用程序与数据库交互的若干问题
- 一个web项目web.xml的配置中context-param配置作用
- mysql免费版稳定吗_mysql免费版好用么
- 大学物理复盘 | 简明大学物理学第一章——质点运动学思维导图梳理(复习专用)
- iphone禁止自动连接wifi操作方法「苹果教程」
- 大数据和Hadoop培训能否满足市场需求
- c52传感器温度显示c语言编程,单片机中使用DS18B20温度传感器C语言程序
- 知乎视频下载(爬虫)
- 电容式咪头气动感应开关工作原理及优点