小编Mya*_*ath的帖子

scipy.ndimage.filters.convolve 和乘法傅里叶变换给出不同的结果

这是我的代码:

from scipy.ndimage import filters
import numpy

a = numpy.array([[2,43,42,123,461],[453,12,111,123,55] ,[123,112,233,12,255]])
b = numpy.array([[0,2,2,3,0],[0,15,12,100,0],[0,45,32,22,0]])

ab = filters.convolve(a,b, mode='constant', cval=0)

af = numpy.fft.fftn(a)
bf = numpy.fft.fftn(b)

abf = af*bf

abif = numpy.fft.ifftn(abf)

print numpy.around(ab)
print numpy.around(abif)
Run Code Online (Sandbox Code Playgroud)

结果是:

[[ 1599  2951  7153 13280 18311]
 [ 8085 51478 13028 40239 30964]
 [18192 32484 23527 36122  8726]]

[[ 37416.+0.j  32251.+0.j  46375.+0.j  32660.+0.j  23986.+0.j]
 [ 30265.+0.j  33206.+0.j  62450.+0.j  19726.+0.j  17613.+0.j]
 [ 40239.+0.j  38095.+0.j  24492.+0.j  51478.+0.j  13028.+0.j]]
Run Code Online (Sandbox Code Playgroud)

如何修复使用 FFT 进行卷积的方式,以保证它给出与 相同的结果scipy.ndimage.filters.convolve

谢谢。

python numpy convolution scipy

5
推荐指数
2
解决办法
1662
查看次数

子采样和缩小(图像)之间的区别?

我知道有很多方法可以使用双线性、双三次等来放大(插值)图像……不知何故,这些相同的算法也可以用于缩小图像。但是当涉及到子采样时,我只遇到过两种方法:高斯模糊然后丢弃一些行和列,或者块平均。

是否有双线性、双三次……二次采样之类的东西?

我可以/应该先进行高斯模糊然后进行块平均,而不是进行高斯模糊然后丢弃或进行块平均吗?或者双线性,双三次,...二次采样(如果有的话)?

我正在做的是尝试制作图像高斯金字塔和拉普拉斯金字塔;但我不知道如何抽取和插入图像。一些带有 Scipy/Numpy 的 Python 代码确实会有帮助。非常感谢。

python interpolation numpy scipy subsampling

5
推荐指数
0
解决办法
2074
查看次数

画一条连接两个点而不是一条直线的曲线

我想做这样的事情:
在此处输入图片说明

我有要点,但不知道如何绘制曲线而不是直线。

谢谢。

python matplotlib

5
推荐指数
1
解决办法
7495
查看次数