代码之家  ›  专栏  ›  技术社区  ›  Ryan

保存边界框图像

  •  0
  • Ryan  · 技术社区  · 6 年前

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

    当我得到[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)
    

    但如果我只得到 x y 点与 height width . 我不知道如何索引numpy数组。

    任何建议都会很有帮助,提前谢谢。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Daweo    6 年前

    您的代码看起来不错,不过这行:

    image = np.array(image)
    

    不是必须的,好像一切都很顺利 cv2.imread 生产 np.array 然而,如果 未读入 失败了,它又回来了 None ,这可能是您的问题的根源,请在您的 未读入 :

    print(type(image))
    

    如果它打印出来 没有 最可能的意思是 ballet_106_0.jpg 目录中的图像。

    编辑:转换 x,y,height,width x/y-min/max 价值观很简单

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