【发布时间】:2020-09-07 16:36:21
【问题描述】:
如何使用 cv2 从中心裁剪图像?
我认为这与这条线有关,但如果有更好的方法请告诉我。
crop_img = img[y:y+h, x:x+w]
【问题讨论】:
标签: python image image-recognition cv2
如何使用 cv2 从中心裁剪图像?
我认为这与这条线有关,但如果有更好的方法请告诉我。
crop_img = img[y:y+h, x:x+w]
【问题讨论】:
标签: python image image-recognition cv2
只是对 Lenik 答案的附加评论(这是我第一次想在 StackOverflow 中做出贡献并且没有足够的声誉来评论答案),您需要确保 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)]
【讨论】:
w/2 和h/2 上使用int 可能是值得的,但您也可以只使用带有// 的地板除法
您提供的线条将位于 (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]
【讨论】: