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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

python for i in range 三维_python中的三维卷积

發布時間:2023/11/27 生活经验 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python for i in range 三维_python中的三维卷积 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

雖然循環可以工作,但跟蹤嵌套循環也很困難。您可以考慮調用卷積定理來更容易地執行卷積。見here。在

使用numpy的fft模塊,您可以計算原始圖像堆棧的n維離散Fourier變換,并將其乘以大小相同的核的n維Fourier變換(文檔可找到here)。因為你的2D內核是一個3x3數組,它是一個3x3xz正方形的“支柱”,你可以用0填充這個數組來相應地增加維數。在

試試這個:import numpy as np

import math

radius = 2

r2 = np.arange(-radius, radius+1)**2

sphere = r2[:, None, None] + r2[:, None] + r2

sphere -= np.max(sphere)

sphere = -sphere*2

array_len = 10*radius

array = np.zeros((array_len, array_len, array_len))

center = slice(array_len//2-radius,

array_len//2+radius+1), slice(array_len//2-radius,

array_len//2+radius+1),slice(array_len//2-radius,

array_len//2+radius+1)

array[center] = sphere

k_len = 3

kernel_2D = np.ones((k_len,k_len))

kernel = np.zeros_like(array)

center_k = slice(array_len//2-math.ceil(k_len/2),

array_len//2+k_len//2), slice(array_len//2-math.ceil(k_len/2),

array_len//2+k_len//2)

for i in range(kernel.shape[2]):

kernel[center_k+(i,)] = kernel_2D

def fft(array):

fft = np.fft.ifftshift(np.fft.fftn(np.fft.fftshift(array)))

return fft

def ifft(array):

ifft = np.fft.fftshift(np.fft.ifftn(np.fft.ifftshift(array)))

return ifft

def conv_3D(array, kernel):

conv = np.abs(ifft(fft(array)*fft(kernel)))

return conv

conv = conv_3D(array, kernel)

這將半徑為2的球體與邊長為3的支柱卷積在一起。在

總結

以上是生活随笔為你收集整理的python for i in range 三维_python中的三维卷积的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。