最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于Python卷積函數(shù)詳解

 更新時間:2023年04月20日 08:45:20   作者:微小冷  
這篇文章主要介紹了Python關(guān)于卷積的理解,文中有詳細(xì)的代碼示例,具有很好的參考價值,希望對大家有所幫助

卷積函數(shù)

python提供了多種卷積方案,相比之下,定義在ndimage中的卷積函數(shù),在功能上比numpysignal中的卷積要稍微復(fù)雜一些,這點僅從輸入?yún)?shù)的多少就可略窺一二

numpy.convolve(a, v, mode='full')
scipy.ndimage.convolve1d(input, weights, axis=-1, output=None, mode='reflect', cval=0.0, origin=0)

scipy.signal.convolve(in1, in2, mode='full', method='auto')
scipy.ndimage.convolve(input, weights, output=None, mode='reflect', cval=0.0, origin=0)

前兩者為1維卷積函數(shù),且ndimage可對多維數(shù)組沿著單個坐標(biāo)軸進(jìn)行卷積操作,后兩者為多維卷積。

numpy和signal中的卷積函數(shù),其mode都有三種,用以調(diào)節(jié)卷積后的邊緣特性,如果輸入的兩個卷積對象的維度分別是N NN和M MM,則這三種模式的輸出結(jié)果為

  • full: 輸出維度N + M − 1 N+M-1N+M−1,其最后一點的信號完全不交疊,故而邊緣效應(yīng)明顯。
  • same:輸出維度max ? ( M , N ) \max(M,N)max(M,N),邊緣效應(yīng)仍然可見
  • valid:輸出維度∣ M − N ∣ |M-N|∣M−N∣,只返回完全交疊的區(qū)域,相當(dāng)于把存在邊緣效應(yīng)的點都率除掉了

 ndimage中的convolve針對邊緣效應(yīng),對圖像進(jìn)行擴(kuò)展,而其mode決定的就是擴(kuò)展之后的填充格式,設(shè)待濾波數(shù)組為a b c d,則在不同的模式下,對邊緣進(jìn)行如下填充

左側(cè)填充數(shù)據(jù)右側(cè)填充
reflectd c b aa b c dd c b a
constantk k k ka b c dk k k k
nearesta a a aa b c dd d d d
mirrord c ba b c dc b a
wrapa b c da b c da b c d

其中,k通過參數(shù)cval設(shè)定。

這五種修改邊界的方法,在scipy.ndimage的函數(shù)中十分普遍,尤其是涉及到卷積的濾波函數(shù),堪稱標(biāo)配。

對比測試

接下來針對這些不同的卷積函數(shù),做一下性能測試,用5 × 5的卷積模板,對1000 × 1000的矩陣進(jìn)行卷積計算,來看一下不同實現(xiàn)方案的卷積,其速度如何

import numpy as np
import scipy.signal as ss
import scipy.ndimage as sn
from timeit import timeit


A = np.random.rand(1000,1000)
B = np.random.rand(5,5)

timeit(lambda : ss.convolve(A, B), number=10)
# 0.418
timeit(lambda : sn.convolve(A, B), number=10)
# 0.126

相比之下,ndimage中的卷積顯然是更高效的。

接下來測試一下一維卷積的表現(xiàn)

A = np.random.rand(10000)
B = np.random.rand(15)

timeit(lambda : np.convolve(A, B), number=1000)
# 0.15256029999727616
timeit(lambda : ss.convolve(A, B), number=1000)
# 0.1231262000001152
timeit(lambda : sn.convolve(A, B), number=1000)
# 0.09218210000108229
timeit(lambda : sn.convolve1d(A, B), number=1000)
# 0.03915820000111125

相比之下,convolve1d不愧是寫明了1d的卷積函數(shù),速度最快,而numpy中提供的函數(shù)速度最慢。

卷積應(yīng)用

卷積操作經(jīng)常被作用在圖像濾波以及邊緣提取上,例如,通過類似下面這樣的矩陣,可以將圖像的縱向的邊緣提取出來。

下面做一個簡單的測試

from scipy.misc import ascent
import matplotlib.pyplot as plt
img = ascent()
temp = np.zeros([3,3])
temp[:,0] = -1
temp[:,2] = 1

edge = sn.convolve(img, temp)

fig = plt.figure()
ax = fig.add_subplot(121)
ax.imshow(img)
ax = fig.add_subplot(122)
ax.imshow(edge)
plt.show()

效果如下,非常明顯

到此這篇關(guān)于關(guān)于Python卷積函數(shù)詳解的文章就介紹到這了,更多相關(guān)Python卷積詳解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python寫的Tkinter程序屏幕居中方法

    Python寫的Tkinter程序屏幕居中方法

    這篇文章主要介紹了Python寫的Tkinter程序屏幕居中方法,Tkinter是一個python模塊,是一個調(diào)用Tcl/Tk的接口,它是一個跨平臺的腳本圖形界面接口,需要的朋友可以參考下
    2015-03-03
  • Python?isdigit()函數(shù)使用詳解

    Python?isdigit()函數(shù)使用詳解

    這篇文章主要介紹了Python?isdigit()函數(shù)使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • python如何實現(xiàn)圖片轉(zhuǎn)文字

    python如何實現(xiàn)圖片轉(zhuǎn)文字

    這篇文章主要介紹了python如何實現(xiàn)圖片轉(zhuǎn)文字問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 對pandas的行列名更改與數(shù)據(jù)選擇詳解

    對pandas的行列名更改與數(shù)據(jù)選擇詳解

    今天小編就為大家分享一篇對pandas的行列名更改與數(shù)據(jù)選擇詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • PyTorch線性回歸和邏輯回歸實戰(zhàn)示例

    PyTorch線性回歸和邏輯回歸實戰(zhàn)示例

    這篇文章主要介紹了PyTorch線性回歸和邏輯回歸實戰(zhàn)示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Python命令行參數(shù)argv和argparse該如何使用

    Python命令行參數(shù)argv和argparse該如何使用

    這篇文章主要介紹了Python命令行參數(shù)argv和argparse該如何使用,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-02-02
  • Python+turtle繪制對稱圖形的示例代碼

    Python+turtle繪制對稱圖形的示例代碼

    這篇文章主要是帶大家寫一個利用Turtle庫繪制一些有趣的對稱圖形,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定幫助,感興趣的可以了解一下
    2022-07-07
  • 詳細(xì)解讀python操作json文件的詳細(xì)

    詳細(xì)解讀python操作json文件的詳細(xì)

    這篇文章主要為大家介紹了python操作json文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • Python光學(xué)仿真學(xué)習(xí)Gauss高斯光束在空間中的分布

    Python光學(xué)仿真學(xué)習(xí)Gauss高斯光束在空間中的分布

    這篇文章主要介紹了Python光學(xué)仿真學(xué)習(xí)中Gauss高斯光束在空間中的分布理解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2021-10-10
  • Pygame實現(xiàn)游戲最小系統(tǒng)功能詳解

    Pygame實現(xiàn)游戲最小系統(tǒng)功能詳解

    這篇文章主要介紹了Pygame實現(xiàn)游戲最小系統(tǒng),Pygame是一個專門用來開發(fā)游戲的 Python 模塊,主要為開發(fā)、設(shè)計 2D 電子游戲而生,具有免費、開源,支持多種操作系統(tǒng),具有良好的跨平臺性等優(yōu)點
    2022-11-11

最新評論

徐水县| 修武县| 芦溪县| 鞍山市| 许昌市| 芷江| 万州区| 乐至县| 平阳县| 通州市| 桂阳县| 大城县| 达日县| 扶沟县| 通渭县| 辉县市| 郁南县| 北京市| 南昌县| 乡城县| 宾阳县| 东源县| 北海市| 北碚区| 清水县| 巴里| 海晏县| 东阳市| 禹城市| 石柱| 志丹县| 静乐县| 达拉特旗| 新化县| 西峡县| 嘉祥县| 辉县市| 布尔津县| 东至县| 石嘴山市| 临城县|