Python中Matlab imfilter的等效函数

时间:2014-03-03 08:58:27

标签: python matlab scipy

我知道MATLAB的conv2corr2的等效函数是scipy.signal.correlatescipy.signal.convolve。但是函数imfilter具有处理数组边界外部的属性。与symmetricreplicatecircular一样。 Python可以做那些事吗

2 个答案:

答案 0 :(得分:5)

只是添加一些可靠的代码,我想在python中使用$factory->define(Category::class, function (Faker\Generator $faker) { ... } 等效的简单2-D图像和过滤器(内核)。我发现以下结果与MATLAB相同:

package/xoco70/my-plugin/src

对于给定的问题,这将有效:

/vendor/xoco70/my-plugin/src/

请注意,由于某种原因,MATLAB会返回预期答案的转置。

有关更多选项,请参阅文档here

修改1:

MATLAB提供了更多选项,记录为here。具体来说,如果我们希望使用imfilter(A, B)选项,我们有MATLAB代码(例如):

import scipy.ndimage
import numpy as np
scipy.ndimage.correlate(A, B, mode='constant').transpose()

这与python等价:

scipy.ndimage.correlate(A, B, mode='nearest').transpose()

注意MATLAB中的'conv'与python中的SciPy中的imfilter(x, f, 'replicate', 'conv') 相同。

答案 1 :(得分:2)

使用功能scipy.ndimage.filters.correlatescipy.ndimage.filters.convolve