Python: opencv (cv2) 图像切片不起作用?
Python: opencv (cv2) image slicing not working?
我通过 img = cv2.imread("myimg.jpg", 0)
加载了一张灰度图像。
加载后检查 img
的值,它是一个 ndarray
,看起来像这样:
[[53,53,58,...,62,66,70],
[52,52,57,...,68,68,90],
...,
[80,80,80,...,91,92,91],
[81,82,80,...,90,91,93]]
尝试使用 cropped = img[top:bottom, left:right]
裁剪其中的一部分,其中 top
、bottom
、left
和 right
都是整数。
但是,裁剪后的结果是空的 ndarray
。
为什么会这样?
您试图在提供 top = 337 和 bottom = 271 的同时拆分数组。Numpy 以相反的方式工作。尝试像这样拆分它:img[bottom:top, left:right]
或者只是反转 top
和 bottom
的值,这样你就有 img[a:b, c:d]
和 a < b
和 c < d
.
我通过 img = cv2.imread("myimg.jpg", 0)
加载了一张灰度图像。
加载后检查 img
的值,它是一个 ndarray
,看起来像这样:
[[53,53,58,...,62,66,70],
[52,52,57,...,68,68,90],
...,
[80,80,80,...,91,92,91],
[81,82,80,...,90,91,93]]
尝试使用 cropped = img[top:bottom, left:right]
裁剪其中的一部分,其中 top
、bottom
、left
和 right
都是整数。
但是,裁剪后的结果是空的 ndarray
。
为什么会这样?
您试图在提供 top = 337 和 bottom = 271 的同时拆分数组。Numpy 以相反的方式工作。尝试像这样拆分它:img[bottom:top, left:right]
或者只是反转 top
和 bottom
的值,这样你就有 img[a:b, c:d]
和 a < b
和 c < d
.