【发布时间】:2016-03-11 08:57:49
【问题描述】:
我需要以执行局部平均的方式按非整数因子(例如 100x100 数组到 45x45 数组)对 2D numpy 数组进行下采样,就像 Photoshop/gimp 对图像执行此操作一样。我需要双精度。目前的选择不能很好地做到这一点。
scipy.ndimage.zoom不进行平均,基本使用 最近邻采样(参见上一个问题scipy.ndimage.interpolation.zoom uses nearest-neighbor-like algorithm for scaling-down)scipy.misc.imresize将数组转换为 int8;我需要更多 精度和浮点数skimage.transform.rescale也使用最近邻并将您转发到skimage.transform.downscale_local_mean进行本地平均,skimage.transform.downscale_local_mean只能执行整数缩放因子(如果因子为非整数,则用零填充图像)。整数比例因子是一个微不足道的 numpy excersice。
我是否错过了其他选择?
【问题讨论】:
-
不是最优雅的,我不确定这里的数学,但如果你只是想要一些有用的东西,我会把它放大 9 (900X900) 然后缩小 20 (45X45) 所以你可以在两个步骤中按整数进行缩放
-
我目前正在使用放大到最终大小的最近乘数(在这种情况下为 135),然后通过块平均来缩小。它有效,但有点丑陋,尤其是对于巨大的矩阵。
标签: python numpy image-processing