我有一个2D numpy数组,代表来自已经被binned 3x3的CCD的单色图像(也就是说,数组中的每个值表示物理CCD上的9个像素(3x3))。重新调整numpy数组
我想重新调整它以匹配原始CCD布局(所以我可以轻松地将它与来自同一CCD的非分档图像叠加)。
我看到Resampling a numpy array representing an image,但这似乎并没有做我想要的。
假设我有一个数组G:
import numpy as np
import scipy.ndimage
g = np.array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
当我尝试的2倍,以它的规模:
o = scipy.ndimage.zoom(g, 2, order=0)
我得到正是我所期待的 - 每个值现在是2×2相同值:
array([[0, 0, 1, 1, 2, 2],
[0, 0, 1, 1, 2, 2],
[3, 3, 4, 4, 5, 5],
[3, 3, 4, 4, 5, 5],
[6, 6, 7, 7, 8, 8],
[6, 6, 7, 7, 8, 8]])
但是,当我尝试了3倍缩放,我得到这个:
o = scipy.ndimage.zoom(g, 3, order=0)
给我:
array([[0, 0, 1, 1, 1, 1, 2, 2, 2],
[0, 0, 1, 1, 1, 1, 2, 2, 2],
[3, 3, 4, 4, 4, 4, 5, 5, 5],
[3, 3, 4, 4, 4, 4, 5, 5, 5],
[3, 3, 4, 4, 4, 4, 5, 5, 5],
[3, 3, 4, 4, 4, 4, 5, 5, 5],
[6, 6, 7, 7, 7, 7, 8, 8, 8],
[6, 6, 7, 7, 7, 7, 8, 8, 8],
[6, 6, 7, 7, 7, 7, 8, 8, 8]])
我想原来的数组中的每个值成为一组3×3的值......这不是我所得到的。
我该怎么办? (为什么我得到这个结果直观?)
为什么-1?这是一个坏问题吗?太多标签?作为一个SO新手,我会很感激一些关于我做错了什么的反馈。 – 2014-09-05 01:06:48
我的猜测是,有人看到了这个,知道答案,并假定你没有阅读过zoom的文档,因此把你当作帮助吸血鬼。就我个人而言,我可以理解为什么在阅读'zoom'文档后仍然可能会感到困惑,但我想你可以更好地解释一下?我不知道。 – abarnert 2014-09-05 22:11:12
似乎是http://stackoverflow.com/questions/7525214/how-to-scale-a-numpy-array?rq=1 – 2015-03-30 17:38:41