日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Scipy的应用

發(fā)布時(shí)間:2025/3/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Scipy的应用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

首先總體概括一下Scipy的用處

>>> #Scipy依賴于numpy
>>> #Scipy提供了真正的矩陣
>>> #Scipy包含的功能:最優(yōu)化,線性代數(shù),積分,插值,擬合,特殊函數(shù),快速傅里葉變換,信號(hào)處理,圖形處理,常微分方程求解器等
>>> #Scipy是高端科學(xué)計(jì)算工具包
>>> #Scipy由一些特殊功能的子模塊組成
>>> #圖片消噪

下面介紹一些具體的應(yīng)用

1:求圓周率

從圖片易知道,圓周率為半徑為一的半圓的面積的兩倍,所以只需要求解半圓的面積即可,可通過(guò)積分的形式求解

具體過(guò)程如下

>>>x=np.linspace(-1,1,1000)#-1到1分成1000份來(lái)進(jìn)行積分

>>> f=lambda x:(1-x**2)**0.5

>>>plt.plot(x,f(x))#畫出該圖形

>>> plt.figure(figsize=(4,2))#設(shè)置圖形大小

>>> plt.show()

?

>>> #使用scipy.integrate進(jìn)行積分,調(diào)用quad()方法
>>> import scipy.integrate as integrate
>>> integrate.quad (f,-1,1)#求積分
(1.5707963267948983, 1.0002354500215915e-09, 1.5707963267948983, 1.0002354500215915e-09)

>>> sq,err=integrate.quad (f,-1,1)#sq是半圓的面積,err是誤差
>>> pi=sq*2#圓的面積是圓周率
>>> pi

3.1415926535897967

2:文件處理

>>> #Scipy文件輸入輸出
>>> #隨機(jī)生成數(shù)組,使用Scipy中的io.savement()保存
>>> #文件格式是.mat,標(biāo)準(zhǔn)的二進(jìn)制文件
>>> import scipy.io as spio
>>> nd=np.random.randint(0,150,size=10)
>>> spio.savemat('nd',{'data':nd})#保存文件,文件名為nd
>>> spio.loadmat('nd')['data']#讀取文件
array([[ 92, 67, 50, 145, 81, 101, 144, 101, 92, 106]])
>>> #讀取scipy中的misc.imread()/imsave()
>>> import scipy.misc as misc
>>> cat_data=misc.imread ('C:/a/a.jpg')#對(duì)圖片進(jìn)行操作
>>> misc.imshow(cat_data)

>>> misc.imshow(misc.imrotate(cat_data,angle=90))#旋轉(zhuǎn)90度

>>> a=misc.imresize(cat_data,size=0.5)
>>> misc.imshow(a)#縮小一倍

>>> q=misc.imfilter(cat_data,'blur')#給圖片添加一種模糊效果,smooth是平滑效果,當(dāng)然還有許多其他的效果
>>> misc.show(q)

>>> misc.imshow(q)

3:操作圖片

>>> #使用scipy.misc.face(gray=True)獲取圖片,使用ndimage移動(dòng)坐標(biāo),旋轉(zhuǎn)圖片,切割圖片縮放圖片

>>> import numpy as np

>>> import scipy.misc as misc

>>> import scipy.ndimage as ndimage

>>> face=misc.face(gray=True)#圖片設(shè)置為黑白色了

>>> misc.imshow(face)

?

>>> import matplotlib.pyplot as plt

>>> ndimage.shift(face,[200,0])#圖片向下移動(dòng)200個(gè)單位

array([[ ?0, ??0, ??0, ..., ??0, ??0, ??0],

???????[ ?0, ??0, ??0, ..., ??0, ??0, ??0],

???????[ ?0, ??0, ??0, ..., ??0, ??0, ??0],

???????...,

???????[203, 207, 210, ..., 102, 100, 100],

???????[205, 208, 210, ..., 111, 109, 108],

???????[206, 210, 211, ..., 119, 117, 116]], dtype=uint8)

>>> ss=ndimage.shift(face,[200,0])#圖片向下移動(dòng)200個(gè)單位

>>> plt.imshow(ss)

<matplotlib.image.AxesImage object at 0x00000000110F8A58>

>>> plt.show()

?

>>> ss1=ndimage.shift(face,[350,0],mode='mirror')#圖片向下移動(dòng)350個(gè)單位,并產(chǎn)生鏡像效果

>>> plt.imshow(ss)

<matplotlib.image.AxesImage object at 0x000000001161C9B0>

>>> plt.show()

?

>>> plt.imshow(ss1)

<matplotlib.image.AxesImage object at 0x000000001180EFD0>

>>> plt.show()

>>> #mode 還可以指定為nearwrap

>>> r=ndimage.rotate(face,angle=180,axes=(0,1))

>>> plt.imshow(r)

<matplotlib.image.AxesImage object at 0x000000001D7A3470>

>>> plt.show()

?

>>> #旋轉(zhuǎn)

>>> #下面是縮放

>>> z=ndimage.zoom(face,zoom=0.5)

>>> plt.imshow(z)

<matplotlib.image.AxesImage object at 0x00000000117BE7B8>

>>> plt.show()

>>> #縮小一半

>>> face2=face[:512,-512:]

>>> plt.imshow(face2)

<matplotlib.image.AxesImage object at 0x000000001DA75B38>

>>> plt.show()

#

根據(jù)坐標(biāo)判斷縮小

>>> face_g =ndimage.gaussian_filter(face,sigma=1)

>>> plt.imshow(face_g)

<matplotlib.image.AxesImage object at 0x0000000010D15DA0>

>>> plt.show()

?

>>> #高斯濾波可以使圖片變得清晰些

>>> plt_m=ndimage.median_filter(face,size=2)

>>> plt.imshow(plt_m)

<matplotlib.image.AxesImage object at 0x000000001E2E58D0>

>>> plt.show()

>>> #中值濾波可以使圖片變得清晰些

>>> #signal維納濾波,濾鏡尺寸的標(biāo)量

>>> import scipy.signal ?as signal

>>> sw=signal.wiener(face,mysize=10)

>>> plt.imshow(sw)

<matplotlib.image.AxesImage object at 0x000000001DC1D278>

>>> plt.show()

?

轉(zhuǎn)載于:https://www.cnblogs.com/henuliulei/p/9374572.html

總結(jié)

以上是生活随笔為你收集整理的Scipy的应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。