Image crop中使用的参数意味着什么?

Image crop中使用的参数意味着什么?,image,image-processing,computer-vision,Image,Image Processing,Computer Vision,我想正确地裁剪图像。假设我的图像被称为frame和x,y,w和h分别是xmin,ymin,xmax和ymax: frame = frame[y:y + h, x:x + w] #Crop a part of the image y:y或x:x是什么意思?为什么我们将它们分别相加为h和w 我已经看到一些人以以下方式进行作物种植: frame = frame[y:h, x:w] #Crop a part of the image without adding to `w` and `h` 我看到

我想正确地裁剪图像。假设我的图像被称为
frame
x
y
w
h
分别是
xmin
ymin
xmax
ymax

frame = frame[y:y + h, x:x + w] #Crop a part of the image
y:y
x:x
是什么意思?为什么我们将它们分别相加为
h
w

我已经看到一些人以以下方式进行作物种植:

frame = frame[y:h, x:w] #Crop a part of the image without adding to `w` and `h`
我看到第二种方法在某些地方被使用,如以下行:


有什么不同吗?

我认为您对numpy中的索引和切片工作原理有一些误解:

对于您的第一行
y:y+h
基本上意味着
从索引y到索引y+h的切片。第二个维度也是如此,在这里你将数组
切片从x到x+w

因此基本上,
x
y
对应于你的
xmin
ymin
,你切片到
xmax
ymax
,这是窗口的最小值加上相应的高度和宽度;这就是为什么在两个维度的第二部分都有
y+h
x+w

至于
frame[y:y,x:x]
——这至少在python中是没有意义的,所以您可能混淆了一些东西。如果从索引切片到同一索引,则生成的数组将始终为空:

frame = np.array([[1,2,3,4],[5,6,7,8]])
slice = frame[2:2, 2:2]
print(slice)
# [] 
您可能希望在此处回顾numpy中索引和切片背后的基本思想:
w
h
不是
xmax
ymax
,它们是宽度和高度。只有在使用Python时,第一行才有效,否则它将被关闭1。我从来没有见过第二个,你必须提供一个引文。那么,在注释文件中,你如何看待<代码> XMAX < /代码>和<代码> YMAX < /代码>?关于引用某人使用第二种方法,请看这里:我的意思是,(
xmin
ymin
xmax
ymax
)和(
x
y
宽度
高度
)之间有什么区别?我一直在想这是一样的。如果我在这一点上错了,请帮助我理解。关于我对numpy中切片工作原理的错误理解,你是对的。这是你的回答。只是阅读,这样我就可以接受答案。让我编辑一下。我想这是可行的,但是只有当窗口在左上角,因此当我们看到图像时,我们才能看到图像。你说看到图像是什么意思?x和y只是左上角的坐标。生成的子图像取决于您选择的切片。