【数据分析与可视化】Scipy中的图像处理信号处理讲解与实战(附源码 超详细)

简介: 【数据分析与可视化】Scipy中的图像处理信号处理讲解与实战(附源码 超详细)

需要源码和图片集请点赞关注收藏后评论区留言私信~~~

一、Scipy的图像处理

简单的介绍一下SciPy在图像处理方面的应用,如果专业做图像处理当然还是建议使用OpenCV

1 图像平滑

图像平滑是指用于突出图像的宽大区域、低频成分、主干部分或抑制图像噪声和干扰高频成分,使图像亮度平缓渐变,减小突变梯度,改善图像质量的图像处理方法

图像平滑的方法包括:插值方法,线性平滑方法,卷积法等

ndimage.median_filter实现中值滤波

import numpy as np
from scipy import ndimage
from scipy import misc
import matplotlib.pyplot as plt
%matplotlib inline
image = misc.ascent()
aa = plt.subplot(1,3,1)
plt.title("title")
plt.imshow(image)
plt.axis('off')
plt.subplot(1,3,2)
plt.title("medi_filter")
filter = ndimage.median_filter(image,size=10)
#使用SciPy的中值滤波处理图片
plt.imshow(filter)
plt.axis('off')
plt.subplot(1,3,3)
plt.title("gausfilter")
blurred_face = ndimage.gaussian_filter(image, sigma = 7)#高斯滤波
plt.imshow(blurred_face)
plt.axis('off')

2 图像旋转和锐化

图像旋转是指图像以某一点为中心旋转一定的角度,形成一幅新的图像的过程

图像锐化就是补偿图像的轮廓,增强图像的边缘及灰度跳变的部分,使图像变得清晰。图像锐化处理的目的是为了使图像的边缘、轮廓线以及图像的细节变的清晰

经过平滑的图像变得模糊的根本原因是因为图像受到了平均或积分运算,因此可以对其进行逆运算(如微分运算)就可以使图像变的清晰。从频域来考虑,图像模糊的实质是因为其高频分量被衰减,因此可以用高通滤波器来使图像清晰

图像的旋转和锐化

image = misc.ascent() #显示全部图片
plt.subplot(131)
plt.title("title")
plt.imshow(image)
plt.axis('off')
plt.subplot(132)
rotate = ndimage.rotate(image,60)
plt.title("rotate")
plt.imshow(rotate)
plt.axis('off') #边缘检测
plt.subplot(133)
prewitt = ndimage.prewitt(image)
plt.title("prewitt")
plt.imshow(prewitt)
plt.axis('off')

二、Scipy的信号处理

信号处理(signal processing)是指对信号进行提取、变换、分析、综合等处理,以便抽取出有用信息的过程。信号处理基本的内容有变换、滤波、调制、解调、检测以及谱分析和估计等

Python中的scipy.signal模块专门用于信号处理

1 数据重采样

重采样指将数据序列从一个频率转化为另一个频率进行处理的过程。将高频率数据转化为低频率数据为降采样,低频率转化为高频率为升采样。SciPy中的signal.resample()函数可以将信号重采样成n个点

信息采样

import numpy as np
import matplotlib.pyplot as plt
from scipy import signal
t = np.linspace(0, 5, 100)
x = np.sin(t)
x_resampled = signal.resample(x, 20)
plt.plot(t, x)
plt.plot(t[::5], x_resampled, 'k*')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()

2 信号的卷积

卷积是两个变量在某范围内相乘后求和的结果。一维卷积常用于序列模型,如自然语言处理领域。二维卷积常用于计算机视觉、图像处理领域

import numpy as np
import matplotlib.pyplot as plt
digital=np.concatenate((np.zeros(20),np.ones(20),np.zeros(20)))
print(digital)
norm_h=np.hamming(80)/np.sum(np.hamming(80))
print(norm_h)
res=np.convolve(digital,norm_h)
plt.plot(digital,color='k',label='digital')
plt.plot(norm_h,color='b',label='normal_hamming')
plt.plot(res,color='g',label='convolve_result')
plt.legend()
plt.show()

3 信号的时频分析

信号的表示是信息分析与处理的核心问题之一。在信号分析中,最基本的变量是时间和频率。信号一般用时间作为自变量表示,通过时频变换,信号也可以使用频率作为自变量表示。常用的变换方法有傅里叶变换、小波变换等

SciPy中利用fft方法将信号从时域变换到频率,用ifft方法将频域信号逆变换回时域

信号的傅里叶变换

import numpy as np
import matplotlib.pyplot as plt
from scipy.fftpack import fft,ifft
np.random.seed(971)
x=np.arange(200)
res=fft(data)
data_new=ifft(res)
data=np.random.randn(200)+np.sin(x)
plt.figure(figsize=(12,5))
plt.subplot(1,3,1)
plt.plot(data,linewidth=1,color='k',alpha=0.8)
plt.xlabel('orignal signal')
plt.subplot(1,3,2)
plt.plot(res,linewidth=1,color='k',alpha=0.8)
plt.xlabel('FFT signal')
plt.subplot(1,3,3)
plt.plot(data_new,linewidth=1,color='k',alpha=0.8)
plt.xlabel('construct signal')
plt.show()

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
4天前
|
数据可视化 数据挖掘
R语言生存分析数据分析可视化案例(下)
R语言生存分析数据分析可视化案例
12 0
|
18天前
|
机器学习/深度学习 数据采集 数据可视化
Python中的数据分析与可视化技术探索
数据分析与可视化在当今信息化时代扮演着愈发重要的角色。Python作为一种强大的编程语言,提供了丰富的库和工具,使得数据分析与可视化变得更加高效和灵活。本文将探讨Python中常用的数据分析与可视化技术,包括数据准备、数据分析和可视化展示等方面,并结合实例演示其应用,帮助读者更好地理解和运用这些技术。
|
1天前
|
数据可视化 前端开发 数据挖掘
数据分析可视化神器---streamlit框架,各种图表绘制,布局以及生产综合案例剖析
数据分析可视化神器---streamlit框架,各种图表绘制,布局以及生产综合案例剖析
|
4天前
|
数据可视化 数据挖掘
R语言生存分析数据分析可视化案例(上)
R语言生存分析数据分析可视化案例
|
11天前
|
机器学习/深度学习 数据挖掘 计算机视觉
python数据分析工具SciPy
【4月更文挑战第15天】SciPy是Python的开源库,用于数学、科学和工程计算,基于NumPy扩展了优化、线性代数、积分、插值、特殊函数、信号处理、图像处理和常微分方程求解等功能。它包含优化、线性代数、积分、信号和图像处理等多个模块。通过SciPy,可以方便地执行各种科学计算任务。例如,计算高斯分布的PDF,需要结合NumPy使用。要安装SciPy,可以使用`pip install scipy`命令。这个库极大地丰富了Python在科学计算领域的应用。
13 1
|
13天前
|
数据采集 数据可视化 数据挖掘
SciPy在数据分析中的应用:从数据清洗到可视化
【4月更文挑战第17天】# SciPy在数据分析中的应用:从数据清洗到可视化。文章探讨了SciPy在数据清洗(使用NumPy处理缺失值和异常值)、数据分析(描述性统计和模型拟合)以及数据可视化(结合Matplotlib和Seaborn进行图表绘制)中的作用。SciPy与其他Python库结合,为完整的数据分析流程提供了强大支持。
|
14天前
|
供应链 搜索推荐 数据挖掘
Pandas实战案例:电商数据分析的实践与挑战
【4月更文挑战第16天】本文通过一个电商数据分析案例展示了Pandas在处理销售数据、用户行为分析及商品销售趋势预测中的应用。在数据准备与清洗阶段,Pandas用于处理缺失值、重复值。接着,通过用户购买行为和商品销售趋势分析,构建用户画像并预测销售趋势。实践中遇到的大数据量和数据多样性挑战,通过分布式计算和数据标准化解决。未来将继续深入研究Pandas与其他先进技术的结合,提升决策支持能力。
|
14天前
|
存储 数据可视化 数据挖掘
实战案例:Pandas在金融数据分析中的应用
【4月更文挑战第16天】本文通过实例展示了Pandas在金融数据分析中的应用。案例中,一家投资机构使用Pandas加载、清洗股票历史价格数据,删除无关列并重命名,将日期设为索引。接着,数据被可视化以观察价格走势,进行基本统计分析了解价格分布,以及计算移动平均线来平滑波动。Pandas的便捷功能在金融数据分析中体现出高效率和实用性。
|
14天前
|
存储 数据可视化 数据挖掘
数据分析与可视化:Pandas与Matplotlib/Seaborn的完美结合
【4月更文挑战第16天】本文探讨了Python中的Pandas、Matplotlib和Seaborn如何协同进行数据分析与可视化。Pandas提供高效的数据结构DataFrame,便于数据处理和清洗;Matplotlib是基础绘图库,支持自定义图表;Seaborn则在Matplotlib基础上提供美观的统计图形。通过这三个库的无缝结合,数据分析师可以从数据处理直达可视化,提高效率并呈现更具吸引力的分析结果。掌握这些工具将助力深入理解数据并揭示其中的故事。
|
22天前
|
人工智能 数据可视化 数据挖掘
【python】Python国内GDP经济总量数据分析可视化(源码+报告)【独一无二】
【python】Python国内GDP经济总量数据分析可视化(源码+报告)【独一无二】