NumPy切片图像

时间:2015-03-07 00:32:27

标签: python image opencv numpy crop

我一直在寻找将图片复制到另一个this link

我写了一个非常简单的python函数:

def fromCopyTo(target, destination, x, y):
    h, w = target.shape

    destination[y:y+h,x:x+w] = target

    return destination

这个概念是获得目标图像和 X Y 坐标并将目标图像复制到位置 - 不考虑目标图像的大小(假设目的地图像足够大)

我使用空面具复制并尝试复制尺寸为 20x20 的图像 - 目标图像仅为(0,0, 0)(255,255,255)颜色

问题是 y:y + h,返回的最大值为11而不是20。

  

ValueError:无法将形状(20,20)的输入数组广播到   形状(11,20)

如果我翻转函数destination[x:x+w, y:y+h] = target(据我所知,这是错误的)我得到:

  

ValueError:无法将形状(20,20)的输入数组广播到   形状(20,0)

通过测试,我运行print len(destination[y_position:y_position+30, 0]),返回 11 的所有内容,但在 11 之后,它只会将其最大化为 11 。该示例返回 11

我做错了什么?

1 个答案:

答案 0 :(得分:0)

事实证明,如果我尝试削减的数量超过掩码矩阵中可用的数量,我不会收到一条错误消息,说我正在溢出,而不是仅仅将其限制为最大可能尺寸。