对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对图像做傅里叶变换,理想低通滤波器,理想高通滤波器相关推荐

  1. 数字图像处理实验八图像的傅里叶变换

    自选一幅灰度图像,编写MATLAB程序,完成图像的傅里叶变换并显示图像傅里叶变换谱. 1.快速图像傅里叶变换函数 Y = fft2(X) 2.将图像频谱零频分量移动到图像频谱中心 Y = fftshi ...

  2. Win8 Metro(C#)数字图像处理--2.52图像K均值聚类

    原文:Win8 Metro(C#)数字图像处理--2.52图像K均值聚类  [函数名称] 图像KMeans聚类      KMeansCluster(WriteableBitmap src,int ...

  3. Win8Metro(C#)数字图像处理--2.3图像反色

    原文:Win8Metro(C#)数字图像处理--2.3图像反色 [函数名称] 图像反色函数ContraryProcess(WriteableBitmap src) [算法说明] 反色公式如下:     ...

  4. Win8 Metro(C#)数字图像处理--3.3图像直方图计算

    原文:Win8 Metro(C#)数字图像处理--3.3图像直方图计算 /// <summary>/// Get the array of histrgram./// </summa ...

  5. Win8Metro(C#)数字图像处理--2.7图像伪彩色

    Win8Metro(C#)数字图像处理--2.7图像伪彩色 原文:Win8Metro(C#)数字图像处理--2.7图像伪彩色  2.7图像伪彩色函数 [函数名称] 图像伪彩色函数PseudoCol ...

  6. Python数字图像处理---1.1图像的像素格式与图像读写

    目录 前言 图像像素格式 图像读写 前言 本专栏面向所有希望或有兴趣从事数字图像处理工作.学习或研究的朋友,编程语言采用了当下最火的Python语言. Python是一种跨平台的计算机设计语言,也是一 ...

  7. 数字图像处理实验四图像频域增强

    一.实验目的 (1)了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学的图像增强的理论知识和相关算法. (2)熟练掌握低通.高通.带通.同态滤波器的使用方法,明确不同性质的滤波器对图像的影响 ...

  8. 数字图像处理python实现-形态学处理

    内容简介 腐蚀膨胀 开闭运算 轮廓提取 击中与击不中 骨架提取 细化骨架提取 细化 裁剪 距离变换骨架提取 Hilditch算法骨架提取 首先明确一点形态学操作都是针对与二值图像,在灰度图像的形态学处 ...

  9. c++ opencv数字图像处理:频率域滤波--低通滤波--理想低通滤波

    文章目录 前言 一.理想低通滤波器(ILPF) 二.代码 三.说明 前言 数字图像处理c++ opencv(VS2019 opencv4.53)持续更新 一.理想低通滤波器(ILPF) 通过设置频率半 ...

最新文章

  1. 飞越难关,飞书生态「战疫工具箱」来驰援!
  2. 动车废票二维码将泄露个人信息 暂无防止破解法
  3. Spring实现热加载MyBatis 的XML配置文件
  4. IDEA打包成可执行的JAR包
  5. 环境变量空格符号带来的坑
  6. CMake1:HelloWorld
  7. 与其感慨路难行,不如马上出发
  8. auto.js小案例
  9. 2016美国计算机研究生,2016美国留学:美国大学研究生计算机工程专业排名
  10. Git笔记(22) 项目贡献要点
  11. python绘制3d机械图_使用python绘制3d的图形
  12. .NET应用程序与数据库交互的若干问题
  13. 一个web项目web.xml的配置中context-param配置作用
  14. mysql免费版稳定吗_mysql免费版好用么
  15. 大学物理复盘 | 简明大学物理学第一章——质点运动学思维导图梳理(复习专用)
  16. iphone禁止自动连接wifi操作方法「苹果教程」
  17. 大数据和Hadoop培训能否满足市场需求
  18. c52传感器温度显示c语言编程,单片机中使用DS18B20温度传感器C语言程序
  19. 知乎视频下载(爬虫)
  20. 电容式咪头气动感应开关工作原理及优点

热门文章

  1. ubuntu 卡在waiting for unattended-upgr to exit的解决
  2. android 实现打印功能,Android通过OTG线连接打印机实现打印功能
  3. 合肥python儿童编程_合肥少儿编程学习中心
  4. 大学计算机专业实习报告
  5. 减少杠杆炒股风险的5种方法
  6. 2021充电必备:推荐一些免费的电子书网站及EPUB阅读器
  7. 最邻近差值算法(nearest)和双线性插值算法(bilinear)
  8. cropper截图插件(自定义像素的图片并保存本地)
  9. function and functionality
  10. 【特异性双端队列 | 最小调整顺序次数】