Scipy

Scipy简介

  • Scipy依赖于Numpy(np.dot(nd1,nd2))
  • Scipy提供了真正的矩阵
  • Scipy包含的功能:最优化、线性代数、积分、插值、拟合、特殊函数、快速傅里叶变换、信号处理、图像处理、常微分方程求解器等
  • Scipy是高端科学计算工具包 matlab == python+numpy+scipy+pandas+matplotlib
  • Scipy由一些特定功能的子模块组成
    在这里插入图片描述

Scipy文件输入/输出

from scipy import io as spio
import numpy as np

a = np.ones((3,3))
#mat文件是标准的二进制文件
spio.savemat('./data/file.mat',mdict={'a':a})

#读取图片
from scipy import misc
data = misc.imread('./data/moon.png')

#读取保存的文件
data = spio.loadmat('./data/file.mat')
data['a']

#保存图片
misc.imsave('./data/save.png',arr=data)
scipy.misc

模糊,轮廓,细节,edge_enhance,edge_enhance_more, 浮雕,find_edges,光滑,smooth_more,锐化

图片处理ndimage

使用Scipy中的ndimage/misc进行处理
from scipy import misc,ndimage
#原始图片
face = misc.face(gray=True)

#移动图片坐标
shifted_face = ndimage.shift(face, (50, 50))

#移动图片坐标,并且指定模式
shifted_face2 = ndimage.shift(face, (-200, 0), mode='wrap')

#旋转图片
rotated_face = ndimage.rotate(face, -30)

#切割图片
cropped_face = face[10:-10, 50:-50]

#对图片进行缩放
zoomed_face = ndimage.zoom(face, 0.5)
faces = [shifted_face,shifted_face2,rotated_face,cropped_face,zoomed_face]
图片过滤
from scipy import misc,ndimage
import numpy as np
import matplotlib.pyplot as plt

face = misc.face(gray=True)

face = face[:512, -512:]  # 做成正方形

noisy_face = np.copy(face).astype(np.float)

#噪声图片
noisy_face += face.std() * 0.5 * np.random.standard_normal(face.shape)

#高斯过滤
blurred_face = ndimage.gaussian_filter(noisy_face, sigma=1)

#中值滤波
median_face = ndimage.median_filter(noisy_face, size=5)

#signal中维纳滤波
from scipy import signal
wiener_face = signal.wiener(noisy_face, (5, 5))
titles = ['noisy','gaussian','median','wiener']
faces = [noisy_face,blurred_face,median_face,wiener_face]

scipy.special

special库中的特殊函数都是超越函数,所谓超越函数是指变量之间的关系不能用有限次加、减、乘、除、乘方、开方 运算表示的函数。

scipy.linalg
  • scipy.linalg.det():计算方阵的行列式
  • scipy.linalg.inv():计算方阵的逆
  • scipy.linalg.svd():奇异值分解
scipy.fftpack使用:
  • scipy.fftpack.fftfreq():生成样本序列
  • scipy.fftpack.fft():计算快速傅立叶变换

你知道的越多,你不知道的越多。
有道无术,术尚可求,有术无道,止于术。
如有其它问题,欢迎大家留言,我们一起讨论,一起学习,一起进步

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值