【发布时间】:2015-02-23 14:36:53
【问题描述】:
我想将一个数组复制到另一个大小不同的数组。 我想要这样的功能:
blit(destimg,src,dstlocation)
例如blit(zeros((7,7)),ones((3,3)),(4,4))
会导致
array([[ 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 1., 1., 1.],
[ 0., 0., 0., 0., 1., 1., 1.],
[ 0., 0., 0., 0., 1., 1., 1.]])
数组src 的左上中心现在位于数组destimg 的位置(4,4)。
如果我这样做 blit(zeros((7,7)),ones((3,3)),(5,5)) 我会得到:
array([[ 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 1., 1.],
[ 0., 0., 0., 0., 0., 1., 1.]])
数组src 不适合destimg,但其左上角仍在正确位置。
【问题讨论】:
-
您不能通过简单的赋值(即
=运算符)并使用适当的索引来实现您想要的吗? -
@Jan-PhilipGehrcke 我可以,但是对于 src 数组不适合的情况,我必须进行一些计算才能确定正确的索引。我想知道 numpy 是否已经有一个功能。
-
为什么你的
blit功能不够用? -
也就是说,目标数组的全部或仅部分被整个源数组或仅部分源数组替换。所以,问题归结为找到索引,对吧。这是否只需要使用二维数组?还是应该适用于 n 维?
标签: python arrays opencv numpy