亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python scipy卷積運(yùn)算的實現(xiàn)方法

 更新時間:2019年09月16日 15:21:56   作者:劉知昊  
這篇文章主要介紹了python scipy卷積運(yùn)算的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

scipy的signal模塊經(jīng)常用于信號處理,卷積、傅里葉變換、各種濾波、差值算法等。

*兩個一維信號卷積

>>> import numpy as np
>>> x=np.array([1,2,3])
>>> h=np.array([4,5,6])
>>> import scipy.signal
>>> scipy.signal.convolve(x,h) #卷積運(yùn)算
array([ 4, 13, 28, 27, 18])

卷積運(yùn)算大致可以分成3步,首先先翻轉(zhuǎn),讓兩個信號列反過來,如上面就是1,2,3和6,5,4。然后作平移,6,5,4最開始在1,2,3的左邊,沒有重疊,現(xiàn)在向右移動,4和1就重疊了。對于重疊的部分,作乘積求和。也就是1x4得到第一個結(jié)果1,然后再移動后5x1+4x2得到第二個結(jié)果13以此類推。

卷積運(yùn)算可以用來做大整數(shù)的乘法(數(shù)組表示數(shù)的乘法),比如在上面的例子中,要求123乘以456,可以先得到它的卷積序列,然后從后往前,18將8保留,進(jìn)位1給27;然后27變成28,把8保留進(jìn)位2給28;然后28變成30,把0保留進(jìn)位3給13;然后13變成16,把6保留進(jìn)位1給4;4變成5即是最高位。也就是乘法的結(jié)果是56088。

*對白噪聲卷積

>>> import numpy as np
>>> from scipy import signal
>>> import matplotlib.pyplot as plt
>>> sig=np.random.randn(1000) #生成隨機(jī)數(shù)
>>> autocorr=signal.fftconvolve(sig,sig[::-1],mode='full') #fft算法實現(xiàn)卷積
>>> fig,(ax_orig,ax_mag)=plt.subplots(2,1) #建立兩行一列圖形
>>> ax_orig.plot(sig) #在第一行把原始的隨機(jī)數(shù)序列sig畫出來
[<matplotlib.lines.Line2D object at 0x0000000006E1DC88>]
>>> ax_orig.set_title('White noise') #設(shè)置標(biāo)題'白噪聲'
<matplotlib.text.Text object at 0x0000000006931860>
>>> ax_mag.plot(np.arange(-len(sig)+1,len(sig)),autocorr) #卷積后的圖像
[<matplotlib.lines.Line2D object at 0x0000000006E1DB00>]
>>> ax_mag.set_title('Autocorrelation') #設(shè)置標(biāo)題
<matplotlib.text.Text object at 0x0000000006DFE8D0>
>>> fig.tight_layout() #此句可以防止圖像重疊
>>> fig.show() #顯示圖像

fftconvolve只是用fft算法(快速傅立葉變換)實現(xiàn)的卷積,其結(jié)果應(yīng)當(dāng)和普通的convolve一樣。

這里寫圖片描述

*二維圖像卷積運(yùn)算

>>> import numpy as np
>>> from scipy import signal
>>> from scipy import misc
>>> import matplotlib.pyplot as plt
>>> face=misc.face(gray=True) #創(chuàng)建一個灰度圖像
>>> scharr=np.array([[-3-3j,0-10j,+3-3j],
    [-10+0j,0+0j,+10+0j],
     [-3+3j,0+10j,+3+3j]]) #設(shè)置一個特殊的卷積和
>>> grad=signal.convolve2d(face,scharr,boundary='symm',mode='same') #把圖像的face數(shù)組和設(shè)計好的卷積和作二維卷積運(yùn)算,設(shè)計邊界處理方式為symm
>>> fig,(ax1,ax2)=plt.subplots(1,2,figsize=(10,6)) #建立1行2列的圖fig
>>> ax1.imshow(face,cmap='gray') #顯示原始的圖
<matplotlib.image.AxesImage object at 0x00000000078FC198>
>>> ax1.set_axis_off() #不顯示坐標(biāo)軸
>>> ax2.imshow(np.absolute(grad),cmap='gray') #顯示卷積后的圖
<matplotlib.image.AxesImage object at 0x00000000078FCE48>
>>> ax2.set_axis_off() #不顯示坐標(biāo)軸
>>> fig.show() #顯示繪制好的畫布

二維的卷積需要用上面的signal.convolve2d()。

之所以要對卷積后的圖像數(shù)組grad作np.absolute()求絕對值運(yùn)算是因為灰度圖像的值都是正值,沒有負(fù)的,為了防止出現(xiàn)負(fù)值所以才這樣做。

這里寫圖片描述 

二維的卷積運(yùn)算還有一種函數(shù),是signal.sepfir2d(),它可以傳入三個參數(shù),后兩個參數(shù)指定行和列的卷積和(兩個方向上的卷積是可以不同的,分別指定卷積和序列)。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python 動態(tài)導(dǎo)入對象,importlib.import_module()的使用方法

    Python 動態(tài)導(dǎo)入對象,importlib.import_module()的使用方法

    今天小編就為大家分享一篇Python 動態(tài)導(dǎo)入對象,importlib.import_module()的使用方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • 利用Python提取PDF文本的簡單方法實例

    利用Python提取PDF文本的簡單方法實例

    日常工作中我們經(jīng)常會用到pdf格式的文件,大多數(shù)情況下是瀏覽或者編輯pdf信息,但有時候需要提取pdf中的文本,下面這篇文章主要給大家介紹了關(guān)于利用Python提取PDF文本的簡單方法,需要的朋友可以參考下
    2022-07-07
  • Django商城項目注冊功能的實現(xiàn)

    Django商城項目注冊功能的實現(xiàn)

    注冊功能是網(wǎng)頁項目必備的需求,本文提供了一個Django項目實現(xiàn)注冊功能的示例,有此需求的同學(xué)可以參考下
    2021-06-06
  • python中xrange用法分析

    python中xrange用法分析

    這篇文章主要介紹了python中xrange用法,實例分析了xrange的功能、作用以及與range在使用中的區(qū)別,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04
  • 基于Python實現(xiàn)加強(qiáng)版煙花

    基于Python實現(xiàn)加強(qiáng)版煙花

    這篇文章主要為大家詳細(xì)介紹了如何利用Python制作一個加強(qiáng)版煙花景,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下
    2022-02-02
  • Python實現(xiàn)的用戶登錄系統(tǒng)功能示例

    Python實現(xiàn)的用戶登錄系統(tǒng)功能示例

    這篇文章主要介紹了Python實現(xiàn)的用戶登錄系統(tǒng)功能,涉及Python流程控制及字符串判斷等相關(guān)操作技巧,需要的朋友可以參考下
    2018-02-02
  • python爬取m3u8連接的視頻

    python爬取m3u8連接的視頻

    這篇文章主要為大家詳細(xì)介紹了python如何爬取m3u8連接的視頻,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Python GUI之tkinter詳解

    Python GUI之tkinter詳解

    今天帶大家學(xué)習(xí)Python GUI之tkinter的相關(guān)知識,文中對如何使用tkinter作了非常詳細(xì)的介紹及代碼示例,對正在學(xué)習(xí)python的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-10-10
  • Django ManyToManyField 跨越中間表查詢的方法

    Django ManyToManyField 跨越中間表查詢的方法

    今天小編就為大家分享一篇Django ManyToManyField 跨越中間表查詢的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python實現(xiàn)將SQLite中的數(shù)據(jù)直接輸出為CVS的方法示例

    Python實現(xiàn)將SQLite中的數(shù)據(jù)直接輸出為CVS的方法示例

    這篇文章主要介紹了Python實現(xiàn)將SQLite中的數(shù)據(jù)直接輸出為CVS的方法,涉及Python連接、讀取SQLite數(shù)據(jù)庫及轉(zhuǎn)換CVS格式數(shù)據(jù)的相關(guān)操作技巧,需要的朋友可以參考下
    2017-07-07

最新評論