如何从中心裁剪 OpenCV 图像

How to crop OpenCV Image from center

如何使用 cv2 从中心裁剪图像?

我觉得跟这行有关系,如果有更好的办法请告知

crop_img = img[y:y+h, x:x+w]

您提供的线条裁剪了位于 (x,y) 且宽度和高度为 (w,h) 的图像区域。不确定这是否在图像中心附近。

要围绕中心裁剪 (w,h) 区域,您必须执行以下操作:

center = image.shape / 2
x = center[1] - w/2
y = center[0] - h/2

只有那时

crop_img = img[y:y+h, x:x+w]

只是对 Lenik 的答案的附加评论(这是我第一次想在 Whosebug 中做出贡献并且没有足够的声誉来评论答案),您需要确保 x 和 y 是整数。

在这种情况下,x 和 y 可能始终是整数,因为大多数分辨率都是偶数,但最好将值保存在 int() 中。

center = image.shape / 2
x = center[1] - w/2
y = center[0] - h/2

crop_img = img[int(y):int(y+h), int(x):int(x+w)]