Iva*_*nik 1 opencv bounding-box object-detection python-3.x opencv3.0
我发现我无法使用 opencv 使用 4 个点(x,y,w,h)轻松编写边界框。其中 x, y 是左上角,w=width, h=height。
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),15)
但是如何使用只有xmax xmin ymax ymin点的opencv 编写边界框?我需要检查我的代码中是否一切正常,并且x, y, w, h使用的边界框完全等于我在xmax xmin ymax ymin下的边界框。
我使用这些代码将x, y, w, h 转换为xmax xmin ymax ymin
bbox_topleft_corner_x = int(prod_data[0])
bbox_topleft_corner_y = int(prod_data[1])
bbox_w = int(prod_data[2])
bbox_h = int(prod_data[3])
ymax = bbox_topleft_corner_y
ymin = bbox_topleft_corner_y - bbox_h
xmax = bbox_topleft_corner_x + bbox_w
xmin = ymin + bbox_w
Run Code Online (Sandbox Code Playgroud)
但我不确定我是否按照自己的意愿做了所有事情。我想将x、y、w、h转换为VOOC2007注释 xml 格式及其边界框格式
感谢您的任何建议
给定 x、y、宽度和高度,获得 x_max 和 y_max 应该是微不足道的。
x_max = x + width
y_max = y + height
Run Code Online (Sandbox Code Playgroud)
重要的是要记住图像的坐标系从(0, 0)左上角和(image_width, image_height)右下角开始。所以:
top_left = (x, y)
bottom_right = (x+w, y+h)
Run Code Online (Sandbox Code Playgroud)
最后要记住的是,在某些情况下,请求的参数是点(x, y),例如 cv2.rectangle 函数中的情况。然而,像素作为底层 ndarray 结构被访问image[row, column]
查看此问题以获取有关 opencv 坐标系的更多信息。
| 归档时间: |
|
| 查看次数: |
9456 次 |
| 最近记录: |