虽然循环可以工作,但跟踪嵌套循环也很困难。您可以考虑调用卷积定理来更容易地执行卷积。见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中的三维卷积相关推荐

  1. Python基础_第3章_Python中的循环结构

    Python基础_第3章_Python中的循环结构 文章目录 Python基础_第3章_Python中的循环结构 Python中的循环结构 一.回顾分支练习题 1.判断是否为一个合法三角形 2.求世界 ...

  2. Python基础_第5章_Python中的数据序列

    Python基础_第5章_Python中的数据序列 文章目录 Python基础_第5章_Python中的数据序列 Python中的数据序列 一.字典--Python中的==查询==神器 1.为什么需要 ...

  3. python 获取用户的一个输入值_Python中,用于获取用户输入的命令为:

    [多选题]以下关于机器学习说法正确的是? [判断题]Python内置函数sum____用来返回数值型序列中所有元素之和. [单选题]关于自定义函数的下列说法不正确的是: [判断题]Python内置函数 ...

  4. python round(1234.5678、-2)_Python中你不知道的特性

    内置函数print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False) 本函数是实现对象以字符串表示的方式格式化输出到流文件对象fil ...

  5. python语句print(tuple(range(2)))_Python语句print(tuple(range(2)),list(range(2)))的运行结果是__________。...

    [单选题]( )是通信网中最早出现的一种交换方式,也是应用最普遍的一种交换方式,主要应用于电话通信网中,完成电话交换. [填空题]离心泵的流量调节实际上是改变泵的____点. [单选题]关于 的导数, ...

  6. python选取元音开头的单词_Python中的Regex,用于查找遵循以下模式的单词:元音、辅音、元音、辅音...

    如果将辅音有向图映射成单个辅音,则最长的单词是解剖病理学的10*VC字符串. 如果您正确映射y,那么您将得到完整的字符串,如乙酰丙酮作为8*VC,下胚轴作为8*CV. 如果不需要字符串是完整的,那么在 ...

  7. python for i in range(len())_Python for i in range ()用法详解

    for i in range ()作用: range()是一个函数, for i in range () 就是给i赋值: 比如 for i in range (1,3): 就是把1,2依次赋值给i r ...

  8. python中range 函数_Python中的range函数

    本篇介绍range函数的特点及如何灵活运用. 工具/原料 Python3.7.5 Windows7环境 方法/步骤 1 查看range函数的帮助信息, range(stop) range(start, ...

  9. python not in range1002无标题_Python中偶尔遇到的细节疑问(一):去除列名特殊字符、标准差出现nan、切片索引可超出范围、range步长、众数...

    1. Pandas读取csv或excel数据时,很可能遇到的columns中,列名会带有特殊字符,例如:空格. ..双空格.引号等等,如果不想手动修改的话,可以df.rename()来解决. df = ...

最新文章

  1. yii2 windows 安装
  2. CentOS 7 解决丢失 nginx.pid 1
  3. ESP32 + ESP-IDF |GPIO 01 - 驱动外部两个LED灯,以每300ms的时间间隔闪烁
  4. 复制书稿(信息学奥赛一本通-T1278)
  5. jquery:TypeError: $(...).on is not a function
  6. 华为云流媒体性能测试解决方案 轻松应对流量危机
  7. 解决npm npm does not support Node.js
  8. Git修改已提交的commit
  9. ansible之cron模块
  10. 谷歌最新模型pQRNN:效果接近BERT,参数量缩小300倍
  11. 算法设计与分析——概述
  12. 供应链金融业务基础模式、实施路径、服务对象深度解析
  13. python科技新闻爬取
  14. 爬虫小程序 - 单词量测试
  15. Error: ADB exited with exit code 1 Performing Streamed Install adb: failed to install D:\svn\app\sm
  16. Unity一个默认占用C盘空间的小坑
  17. LEX自动生成词法分析器
  18. 如何设置HttpClient请求的Content-Type标头?
  19. Unity 关于小地图的制作
  20. 套路(Jony J)

热门文章

  1. CSS3---6.文字阴影
  2. Linux 用户行为日志记录
  3. JMeter自学笔记3-创建自己的第一个测试用例
  4. Go 学习笔记(34)— Go 方法声明、方法调用、方法值、方法表达式、切片对象方法、指针对象方法
  5. [BZOJ1602] [Usaco2008 Oct] 牧场行走 (LCA)
  6. codeforces 165B(Burning Midnight Oil)
  7. 转 [JAVA] 使用 common-fileupload 实现文件上传
  8. ffmpeg解码视频存为BMP文件
  9. 深入.NET DataTable
  10. python xpath用法_Python--xpath的使用