1、旋转框表示
1、如何表示一个旋转框?
![首先,在标签生成的时候,我们就会直面一个现实的问题?旋转框应该如何表示?
事实上,虽然我们说了可以使用5个值 [公式] 来表示一个旋转框( [公式] )特别指代框的中心位置,但是注意到这个的框表示其实有个bug: 一个框的表示不是唯一的。比如下面这张图,当我们把不同的边作为高和宽的时候,计算出来的角度也会随之发生变化(按照惯例,我们一般把逆时针旋转的角度视为负值)](https://i-blog.csdnimg.cn/blog_migrate/ee382b0dd39c8aab4005903ad0cddbef.png)

2、Opencv表示法
关于不同版本opencv的cv2.minAreaRect函数输出角度范围不同的问题。
在做旋转矩形⽬标检测时碰到⼀个问题,我所使⽤的数据集的标签为不规则四边形的四个点的坐标(x1,y1,x2,y2,x3,y3,x4,y4),要将其转化为旋转⽬标检测的标签(x,y,longside,shortside,angle)。其中,需要⽤到opencv中的cv2.minAreaRect函数。
cv2.minAreaRect函数的作⽤是返回不规则四边形的最⼩外接矩形(能不能返回多边形的最⼩外接矩形没有验证)
备注:cv2.boxPoints函数可以根据cv2.minAreaRect函数的返回值给出最⼩外接矩形的四点坐标
为了更⽅便的进⾏可视化说明,我们先定义两个函数draw_rect和rotate_rect
import numpy as np

本文探讨了如何表示旋转框,特别是在OpenCV中使用cv2.minAreaRect函数时遇到的角度范围问题。该函数返回不规则四边形的最小外接矩形,并在不同版本中对宽边定义有所变化。在OpenCV 4.2版本中,宽边是逆时针旋转最先重合的边,而在4.5版本中,宽边则变为顺时针旋转最先重合的边。文章还提供了旋转矩形坐标转换的实现方法,并讨论了不同表示法之间的转换关系。
最低0.47元/天 解锁文章
1046

被折叠的 条评论
为什么被折叠?



