首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >[python][原创]关于DOAT数据集中hbb和obb两种标注区别

[python][原创]关于DOAT数据集中hbb和obb两种标注区别

作者头像
云未归来
发布2025-07-19 14:51:20
发布2025-07-19 14:51:20
1470
举报

看了网上没有一个讲解清楚的,于是直接写代码查看2种到底区别在哪,果然还是显示可以明显啊看出区别,代码如下,注意文件都来自DOTA1.5图片和标注:

代码语言:javascript
复制
import cv2
import os
import numpy as np

image_file = r'C:\Users\fut\Desktop\extract\P2750.png'
hbb_file = r'C:\Users\fut\Desktop\extract\P2750_hbb.txt'
obb_file = r'C:\Users\fut\Desktop\extract\P2750_obb.txt'


def load_lines(file):
    with open(file, 'r') as f:
        lines = f.read().rstrip('\n').split('\n')
    return lines[2:]


def draw_image(frame, lines):
    for line in lines:
        data = line.split(' ')
        x1 = int(float(data[0]))
        y1 = int(float(data[1]))
        x2 = int(float(data[2]))
        y2 = int(float(data[3]))
        x3 = int(float(data[4]))
        y3 = int(float(data[5]))
        x4 = int(float(data[6]))
        y4 = int(float(data[7]))
        name = data[8]
        box = np.array([[x1, y1], [x2, y2], [x3, y3], [x4, y4]], np.int32)
        box = box.reshape((-1, 1, 2))
        cv2.polylines(frame, [box], True, (0, 0, 255), 2)
    return frame


hbb_lines = load_lines(hbb_file)
obb_lines = load_lines(obb_file)
hbb_img = draw_image(cv2.imread(image_file), hbb_lines)
obb_img = draw_image(cv2.imread(image_file), obb_lines)
cv2.imshow('hbb', hbb_img)
cv2.imshow('obb', obb_img)
cv2.waitKey(0)

hbb显示结果(图太大值截取部分):

obb显示结果:

 从图里面很容易看出:

obb方式更注重边框尽可能包围物体而不包含其他背景

hbb方式更注重方向,尽可能水平方向框住物体

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-03-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档