旋转标注框数据标签制作-roLabelImg

 

一、roLabelImg简介

roLabelImg是基于labelImg改进的,也是用来标注为VOC格式的数据,但是在labelImg的基础上增加了能够使标注的框进行旋转的功能。

网址:https://github.com/cgvict/roLabelImg/blob/master/README.rst

 

二、windows上安装编译

详细可以参考labelImg里的说明(https://github.com/tzutalin/labelImg

1) 下载Anaconda(python3+)

2)打开命令窗口,输入如下命令

      $ conda install pyqt=5

      $ pyrcc5 -o libs/resources.py resources.qrc

      $ python labelImg.py , 或

      $  python labelImg.py [IMAGE_PATH] [PRE-DEFINED CLASS FILE]

3) 编译打包,可以使用如下命令:

      $  /PATH/TO/pyinstaller.exe --hidden-import=xml ^

            --hidden-import=xml.etree ^

            --hidden-import=xml.etree.ElementTree ^

            --hidden-import=lxml.etree ^

            -D -F -n roLabelImg -c "../labelImg.py" -p ../libs -p ../

 

三、使用方法

软件快捷键如下:

1) w: 创建水平矩形目标框

2) e: 创建旋转矩形目标框

3) zxcv: 旋转目标框,键z和建x是逆时针旋转,键c和键v是顺时针旋转

使用roLabelImg标注得到的目标框的信息如下:

  • width是图像的宽,height是图像的高,depth是图像的通道数
  • cx, cy表示bndbox的中心点坐标(坐标系方向和一般的图像坐标系相同,左上角为原点,向右为x正方向,向下为y正方向);
  • h和w是标记目标的高和宽;
  • angle是旋转角度信息,水平bndbox,angle=0,,顺时针方向旋转,得到的角度值是一个弧度单位的正值,且旋转一周为pi,没有负值。

 

四、标签目标格式转换

4.1 转换成四点坐标:

def rotatePoint(xc,yc, xp,yp, theta):

      xoff = xp-xc;

      yoff = yp-yc;

      cosTheta = math.cos(theta)

      sinTheta = math.sin(theta)

      pResx = cosTheta * xoff + sinTheta * yoff

      pResy = - sinTheta * xoff + cosTheta * yoff

      # pRes = (xc + pResx, yc + pResy)

      return xc+pResx,yc+pResy

 

def addRotatedShape(cx,cy,w,h,angle):

      p0x,p0y = self.rotatePoint(cx,cy, cx - w/2, cy - h/2, -angle)

      p1x,p1y = self.rotatePoint(cx,cy, cx + w/2, cy - h/2, -angle)

      p2x,p2y = self.rotatePoint(cx,cy, cx + w/2, cy + h/2, -angle)

      p3x,p3y = self.rotatePoint(cx,cy, cx - w/2, cy + h/2, -angle)

      points = [(p0x, p0y), (p1x, p1y), (p2x, p2y), (p3x, p3y)]

      return points

详细代码参考: pascal_voc_io.py(https://github.com/cgvict/roLabelImg/blob/master/libs/pascal_voc_io.py

 

  • 19
    点赞
  • 85
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Challovactor

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值