python 中的 Matlab filter2(filter, image, 'valid') 等价物
Equivalent of Matlab filter2(filter, image, 'valid') in python
我想知道 python OpenCV 或 scikit-image 库中 Matlab 的 filter2(filter, image, 'valid')
函数的等效项。我主要关注 valid
参数,它允许计算过滤器和图像的卷积而不用零填充图像。我知道这个论坛上发布了 ,但是没有正确描述带有 valid
参数的 filter2
函数的等价物。
filter2
的 documentation 表示 filter2(H, X, shape)
等同于 conv2(X,rot90(H,2),shape)
;
一个python equivalent到conv2
是signal.convolve2d
。所以你正在寻找的等价物是:
signal.convolve2d(X, np.rot90(H), mode='valid')
在 matlab 中
a=[[1, 2, 0, 0];[5, 3, 0, 4];[0, 0, 0, 7]; [9, 3, 0, 0]];
k=[[1,1,1];[1,1,0];[1,0,0]];
a_k=filter2(k, a, 'valid')
ak=conv2(a,rot90(k,2), 'valid')
a_k =
11 5
17 10
ak =
11 5
17 10
在python
a = np.array([[1, 2, 0, 0],[5, 3, 0, 4],[0, 0, 0, 7], [9, 3, 0, 0]])
k = np.array([[1,1,1],[1,1,0],[1,0,0]])
from scipy import signal
print(signal.convolve2d(a, np.rot90(k,2), mode='valid'))
[[11 5]
[17 10]]
我想知道 python OpenCV 或 scikit-image 库中 Matlab 的 filter2(filter, image, 'valid')
函数的等效项。我主要关注 valid
参数,它允许计算过滤器和图像的卷积而不用零填充图像。我知道这个论坛上发布了 valid
参数的 filter2
函数的等价物。
filter2
的 documentation 表示 filter2(H, X, shape)
等同于 conv2(X,rot90(H,2),shape)
;
一个python equivalent到conv2
是signal.convolve2d
。所以你正在寻找的等价物是:
signal.convolve2d(X, np.rot90(H), mode='valid')
在 matlab 中
a=[[1, 2, 0, 0];[5, 3, 0, 4];[0, 0, 0, 7]; [9, 3, 0, 0]];
k=[[1,1,1];[1,1,0];[1,0,0]];
a_k=filter2(k, a, 'valid')
ak=conv2(a,rot90(k,2), 'valid')
a_k =
11 5
17 10
ak =
11 5
17 10
在python
a = np.array([[1, 2, 0, 0],[5, 3, 0, 4],[0, 0, 0, 7], [9, 3, 0, 0]])
k = np.array([[1,1,1],[1,1,0],[1,0,0]])
from scipy import signal
print(signal.convolve2d(a, np.rot90(k,2), mode='valid'))
[[11 5] [17 10]]