Sam*_*uel 9 python matlab scipy
我知道的同等功能 conv2和corr2MATLAB的是scipy.signal.correlate和scipy.signal.convolve.但是该函数imfilter具有处理数组边界外部的属性.像symmetric,replicate和circular.Python能做到这一点
小智 6
只是为了添加一些可靠的代码,我想要imfilter(A, B)在python中等效于简单的2D图像和滤镜(内核)。我发现以下给出与MATLAB相同的结果:
import scipy.ndimage
import numpy as np
scipy.ndimage.correlate(A, B, mode='constant').transpose()
Run Code Online (Sandbox Code Playgroud)
对于给定的问题,这将起作用:
scipy.ndimage.correlate(A, B, mode='nearest').transpose()
Run Code Online (Sandbox Code Playgroud)
请注意,由于某种原因,MATLAB返回了预期答案的转置。
有关更多选项,请参见此处的文档。
编辑1:
有通过MATLAB给出记录更多的选择这里。具体来说,如果我们希望使用该'conv'选项,则可以使用MATLAB代码(例如):
imfilter(x, f, 'replicate', 'conv')
Run Code Online (Sandbox Code Playgroud)
这与python等效:
scipy.ndimage.convolve(x, f, mode='nearest')
Run Code Online (Sandbox Code Playgroud)
请注意'replicate',MATLAB 'nearest'中的python 与SciPy中的相同。
| 归档时间: |
|
| 查看次数: |
6578 次 |
| 最近记录: |