【问题标题】:How to crop OpenCV Image from center如何从中心裁剪 OpenCV 图像
【发布时间】:2020-09-07 16:36:21
【问题描述】:

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

我认为这与这条线有关,但如果有更好的方法请告诉我。

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

【问题讨论】:

标签: python image image-recognition cv2


【解决方案1】:

只是对 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/2h/2 上使用int 可能是值得的,但您也可以只使用带有// 的地板除法
【解决方案2】:

您提供的线条将位于 (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]

【讨论】:

    猜你喜欢
    • 2013-08-03
    • 1970-01-01
    • 2012-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-04
    • 2023-03-05
    • 1970-01-01
    相关资源
    最近更新 更多