2024-06-24 13:09:17 发布
网友
我知道MATLAB的conv2和corr2的等价函数是scipy.signal.correlate和scipy.signal.convolve。但是函数imfilter具有处理数组外部边界的属性。就像symmetric,replicate和circular。Python能做到吗
conv2
corr2
scipy.signal.correlate
scipy.signal.convolve
imfilter
symmetric
replicate
circular
使用函数scipy.ndimage.filters.correlate和scipy.ndimage.filters.convolve
scipy.ndimage.filters.correlate
scipy.ndimage.filters.convolve
为了添加一些可靠的代码,我希望python中的imfilter(A, B)等价于简单的二维图像和过滤器(内核)。我发现下面给出的结果与MATLAB相同:
imfilter(A, B)
import scipy.ndimage import numpy as np scipy.ndimage.correlate(A, B, mode='constant').transpose()
对于给定的问题,这将起作用:
scipy.ndimage.correlate(A, B, mode='nearest').transpose()
注意,出于某种原因,MATLAB返回预期答案的转置。
有关更多选项,请参见文档here。
编辑1:
MATLAB提供了更多的选项,如here所述。具体来说,如果我们想使用'conv'选项,我们有MATLAB代码(例如):
'conv'
imfilter(x, f, 'replicate', 'conv')
这与python等价:
scipy.ndimage.convolve(x, f, mode='nearest')
注意,MATLAB中的'replicate'与python中的SciPy中的'nearest'相同。
'replicate'
'nearest'
使用函数
scipy.ndimage.filters.correlate
和scipy.ndimage.filters.convolve
为了添加一些可靠的代码,我希望python中的
imfilter(A, B)
等价于简单的二维图像和过滤器(内核)。我发现下面给出的结果与MATLAB相同:对于给定的问题,这将起作用:
注意,出于某种原因,MATLAB返回预期答案的转置。
有关更多选项,请参见文档here。
编辑1:
MATLAB提供了更多的选项,如here所述。具体来说,如果我们想使用
'conv'
选项,我们有MATLAB代码(例如):这与python等价:
注意,MATLAB中的
'replicate'
与python中的SciPy中的'nearest'
相同。相关问题 更多 >
编程相关推荐