同时在同一数据集上使用不同内核的多个二维卷积数

问题描述 投票:0回答:1

我有一个图像,我想用不同的内核在其上计算多个卷积。一个最小的工作示例如下:

from scipy import signal
import numpy as np

kernels = np.zeros((8,9))
kernels[:,4] = 1
for i in range(len(kernels)):
    kernels[i,np.floor(i*5/4).astype(int)] = -1
kernels = kernels.reshape((8,3,3))

A = np.array([[0,0,0,0,0],[0,0,0,0,0],[0,0,1,0,0],[0,0,0,0,0],[0,0,0,0,0]])

np.array([signal.convolve2d(A,kernels[i],'same') for i in range(8)])

返回一个包含所有(在本例中为8)卷积的数组。由于numpy和scipy都不接受2d卷积的3d内核,所以除了上述:(

之外,我没有更好的方法。

[我正在尝试使用numba优化功能,因此我想最小化代码的“ python”部分,并且想知道是否有numpy-y的方式,最好是少用尽可能多的电话通话:D

亲切的问候,

谢谢

python numpy scipy convolution
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.