【数据分析与可视化】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月前
|
数据采集 数据可视化 搜索推荐
Python数据分析全流程指南:从数据采集到可视化呈现的实战解析
在数字化转型中,数据分析成为企业决策核心,而Python凭借其强大生态和简洁语法成为首选工具。本文通过实战案例详解数据分析全流程,涵盖数据采集、清洗、探索、建模、可视化及自动化部署,帮助读者掌握从数据到业务价值的完整技能链。
529 0
|
9月前
|
SQL JSON 数据可视化
基于 DIFY 的自动化数据分析实战
本文介绍如何使用DIFY搭建数据分析自动化流程,实现从输入需求到查询数据库、LLM分析再到可视化输出的全流程。基于经典的employees数据集和DIFY云端环境,通过LLM-SQL解析、SQL执行、LLM数据分析及ECharts可视化等模块,高效完成数据分析任务。此方案适用于人力资源分析、薪酬管理等数据密集型业务,显著提升效率并降低成本。
13219 16
|
8月前
|
人工智能 数据可视化 前端开发
Probly:开源 AI Excel表格工具,交互式生成数据分析结果与可视化图表
Probly 是一款结合电子表格功能与 Python 数据分析能力的 AI 工具,支持在浏览器中运行 Python 代码,提供交互式电子表格、数据可视化和智能分析建议,适合需要强大数据分析功能又希望操作简便的用户。
995 2
|
9月前
|
存储 分布式计算 大数据
基于阿里云大数据平台的实时数据湖构建与数据分析实战
在大数据时代,数据湖作为集中存储和处理海量数据的架构,成为企业数据管理的核心。阿里云提供包括MaxCompute、DataWorks、E-MapReduce等在内的完整大数据平台,支持从数据采集、存储、处理到分析的全流程。本文通过电商平台案例,展示如何基于阿里云构建实时数据湖,实现数据价值挖掘。平台优势包括全托管服务、高扩展性、丰富的生态集成和强大的数据分析工具。
|
12月前
|
存储 数据可视化 数据挖掘
使用Python进行数据分析和可视化
本文将引导你理解如何使用Python进行数据分析和可视化。我们将从基础的数据结构开始,逐步深入到数据处理和分析的方法,最后通过实际的代码示例来展示如何创建直观的数据可视化。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。让我们一起探索数据的世界,发现隐藏在数字背后的故事!
358 5
|
12月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析和可视化
【10月更文挑战第42天】本文将介绍如何使用Python进行数据分析和可视化。我们将从数据导入、清洗、探索性分析、建模预测,以及结果的可视化展示等方面展开讲解。通过这篇文章,你将了解到Python在数据处理和分析中的强大功能,以及如何利用这些工具来提升你的工作效率。
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
804 4
|
数据采集 数据可视化 数据挖掘
数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
在数字化时代,数据分析至关重要,而Python凭借其强大的数据处理能力和丰富的库支持,已成为该领域的首选工具。Python作为基石,提供简洁语法和全面功能,适用于从数据预处理到高级分析的各种任务。Pandas库则像是神兵利器,其DataFrame结构让表格型数据的处理变得简单高效,支持数据的增删改查及复杂变换。配合Matplotlib这一数据可视化的魔法棒,能以直观图表展现数据分析结果。掌握这三大神器,你也能成为数据分析领域的高手!
246 2
|
机器学习/深度学习 算法 数据挖掘
2023 年第二届钉钉杯大学生大数据挑战赛初赛 初赛 A:智能手机用户监测数据分析 问题二分类与回归问题Python代码分析
本文介绍了2023年第二届钉钉杯大学生大数据挑战赛初赛A题的Python代码分析,涉及智能手机用户监测数据分析中的聚类分析和APP使用情况的分类与回归问题。
324 0
2023 年第二届钉钉杯大学生大数据挑战赛初赛 初赛 A:智能手机用户监测数据分析 问题二分类与回归问题Python代码分析
|
12月前
|
机器学习/深度学习 算法 数据挖掘
数据分析的 10 个最佳 Python 库
数据分析的 10 个最佳 Python 库
1011 4
数据分析的 10 个最佳 Python 库