以登月图片为例,通过使用Scipy 傅立叶变换,实现图片消噪

scipy.fftpack模块用来计算快速傅里叶变换
速度比传统傅里叶变换更快,是对之前算法的改进
图片是二维数据,注意使用fftpack的二维转变方法

一、导包

import numpy as np
import scipy as sp # ifft2 inverse 反转 fft2 处理二维数据
from scipy.fftpack import fft2,ifft2 # 绘图工具
import matplotlib.pyplot as plt
%matplotlib inline

二、图片处理

 # 图片载入
moon = plt.imread('./moonlanding.png') # 设置展示尺寸大小
plt.figure(figsize=(12,9)) # 图片展示 cmap=plt.cm.gray (设置展示颜色)
plt.imshow(moon,cmap=plt.cm.gray)
 # 随时查看图片数据,指导操作
display(moon,moon.shape)
 # 将图片进行傅立叶转换
moon_fft2 = fft2(moon) # 查看傅立叶转换后的数据
display(moon_fft2,moon_fft2.shape) # 计算所有数据波动频率的平均值
np.abs(moon_fft2).mean()
 # 开始消噪:大于10倍平均值波动,波动比较大,过滤掉
cond = np.abs(moon_fft2) > 510 # 过滤:重新赋值为平均值
moon_fft2[cond] = 51 # 查看图片数据
display(moon_fft2,moon_fft2.shape)
 # 将频域----逆变换--->时域(即肉眼可见的图片)
moon_result = ifft2(moon_fft2) display(moon_result,moon_result.shape) # 去掉虚数
moon2 = np.real(moon_result) display(moon2,moon2.shape)
 # 展示图片
plt.figure(figsize=(12,9)) plt.imshow(moon2,cmap=plt.cm.gray)
 # 图片保存
plt.imsave('./moonlanding_fft2_result.png',moon2)

三、处理前后的图片对比

处理前:

处理后:

图片降噪(Scipy)的更多相关文章

  1. 读入图片显示scipy.misc module has no attribute imread?

    >>> import scipy >>> scipy.misc <module 'scipy.misc' from 'C:\Python27\lib\site ...

  2. opencv 图片降噪

    —— # -*- coding: utf-8 -* import numpy as np import cv2 cap = cv2.VideoCapture(0) while True: _ , fr ...

  3. Scipy实现图片去噪

    先贴要处理的图片如下 由图片显示可知: # 图片中存在噪声点,白色的圆环# 圆环上的数据和圆环里面和外面不同,所以可以显示出肉眼可识别的图片# 波动# 存在噪声的地方,波动比较大 # 傅里叶变换可以将 ...

  4. 1.5 Scipy:高级科学计算

    sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&am ...

  5. Python下尝试实现图片的高斯模糊化

    资源下载 #本文PDF版下载Python下尝试实现图片的高斯模糊化#本文代码下载高斯模糊代码下载 高斯模糊是什么? (先来看一下维基百科对它的定义) 高斯模糊是模糊图像的结果.它是一种广泛使用的图形软 ...

  6. 数据分析之scipy常用方法(五)

    1 Scipy简介 Scipy依赖于Numpy Scipy提供了真正的矩阵 Scipy包含的功能:最优化.线性代数.积分.插值.拟合.特殊函数.快速傅里叶变换.信号处理.图像处理.常微分方程求解器等 ...

  7. Scipy的应用

    首先总体概括一下Scipy的用处 >>> #Scipy依赖于numpy>>> #Scipy提供了真正的矩阵>>> #Scipy包含的功能:最优化, ...

  8. (转)scipy详解

    原文:https://www.cnblogs.com/ws0751/p/8361353.html#top 登月图片消噪   scipy.fftpack模块用来计算快速傅里叶变换速度比传统傅里叶变换更快 ...

  9. scipy详解

    登月图片消噪   scipy.fftpack模块用来计算快速傅里叶变换速度比传统傅里叶变换更快,是对之前算法的改进图片是二维数据,注意使用fftpack的二维转变方法   import numpy a ...

随机推荐

  1. Java Object类中的equals方法

    Object类中的equals方法用于检测一个对象是否等于另外一个对象.在Object类中,这个方法将判断两个对象是否具有相同的引用.如果两个对象具有相同的引用,它们一定是相等的.从这点上看,将其作为 ...

  2. Git 撤销更改

    一.未使用 git add 缓存代码时 可以使用 git checkout -- filepathname (比如: git checkout -- readme.md  ,不要忘记中间的 “--” ...

  3. Horse Pro(带负坐标的bfs搜索)

    Horse Pro bfs搜索,但图中存在负值坐标,两种方法解决. 用数组标记,将原点设为300,300 用map标记 http://oj.jxust.edu.cn/contest/Problem?i ...

  4. 从0到1:开启CAN通信学习(一)

    1  初识CAN通信 说起CAN通信,可能很多人都比较陌生,但实际上我们却一直在和它打交道.随着家用汽车的普及,我们开车过程中的每次刹车.每次踩油门,甚至每次的开车门.开车窗,其实都是CAN通信的应用 ...

  5. E CF R 85 div2 1334E. Divisor Paths

    LINK:Divisor Paths 考试的时候已经想到结论了 可是质因数分解想法错了 导致自闭. 一张图 一共有D个节点 每个节点x会向y连边 当且仅当y|x,x/y是一个质数. 设f(d)表示d的 ...

  6. 实践录丨如何在鲲鹏服务器OpenEuler操作系统中快速部署OpenGauss数据库

    本文适合需要快速了解OpenGauss基本使用和操作的单机用户,可以短时间内完成安装体验.对于企业级生产使用或者需要部署多台服务器的,不适合本文. 因为业务需要,要在鲲鹏架构里安装单机版的OpenGa ...

  7. Idea debug报错Command line is too long

    问题: 使用idea开发Java项目,写单元测试,debug时,会有红字报错:Command line is too long 解决方法: 在项目的目录下,找到/.idea/workspace.xml ...

  8. Linux 下使用 killall 命令终止进程的 8 大用法

    Linux 的命令行提供很多命令来杀死进程.比如,你可以向 kill 命传递一个PID来杀死进程:pkill 命令使用一个正则表达式作为输入,所以和该模式匹配的进程都被杀死. 但是还有一个命令叫 ki ...

  9. 【SCOI2008】奖励关 题解(状压DP+期望)

    题目链接 题目大意:给定$n$个宝物,每次随机抛出一个宝物,奖励分数为$p_i$.但如果选这个宝物必须选过它的前置宝物集合.共进行$K$轮问最优策略下的期望. $n\leq 15,-10^6\leq ...

  10. TF签名为什么这么稳定?TF签名找微导流!

      TF签名作为目前最稳定的签名方式收到了业界开发者们的认可,而在如今鱼龙混杂的签名平台中,应该如何选择客厅的TF签名平台呢?下面就一起来看看TF签名为什么这么稳定?TF签名找微导流!   TF签名的 ...