保存边框图像

时间:2019-01-20 18:13:33

标签: python numpy opencv image-processing

我没有尝试在图像上绘制边框,而是试图将其另存为新图像。

当我获得[ymin,xmax,ymax,xmin]点时,我正在这样做。

import cv2 
import numpy as np

image = cv2.imread('ballet_106_0.jpg')
image = np.array(image)

boxes = [21, 511, 41, 420 ]
ymin, xmax , ymax ,xmin = boxes

im2 = image[ymin:ymax,xmin:xmax,:]
cv2.imwrite('bboximage.jpg',im2)

但是,如果我只得到xy点以及heightwidth的话。我不确定如何索引numpy数组。

任何建议都会非常有帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

您的代码看起来不错,尽管此行:

image = np.array(image)

不是必需的,好像一切顺利cv2.imread产生np.array,但是如果cv2.imread失败,它将返回None,这可能是问题的根源,请添加cv2.imread下的以下一行:

print(type(image))

如果它打印None,则很可能意味着您的目录中没有ballet_106_0.jpg图像。

编辑:只需将x,y,height,width转换为x/y-min/max

ymin = y
ymax = y+height
xmin = x
xmax = x+width