我真的对多维数组的索引方式感到困惑。我的目标是从使用opencv加载的图像中裁剪一个区域。 加载图像效果很好:
import numpy as np
import cv2
img = cv2.imread(start_filename)
print img.shape
形状显示为
^{pr2}$现在我想从图像中切割出一部分,它在第一维度的像素范围是550到1550,并且只包含第二维度的最后782个像素。我试过了
img=img[550:1550][:-782][:]
print img.shape
现在形状显示为
(782L, 4096L, 3L)
我很困惑,什么是正确的方法索引作物操作?在
裁剪图像的正确方法是使用切片技术:
在您的情况下,最后裁剪的图像可以复制为:
^{pr2}$正如在其他答案中提到的,您可以使用
img[550:1550,-782:,:]
,但这只会给您一个数组的只读视图。这意味着你不能修改它。如果要在裁剪后修改图像,可以使用Numpy的ix_函数来索引。在在此之后,您的形状将如下所示:
^{pr2}$相关问题 更多 >
编程相关推荐