【获取OpenCV中RotatedRect的绝对角度】opencv中RotatedRect的angle这个成员变量总是诡异的不同寻(http://stackoverflow.com/questions/15956124/minarearect-angles-unsure-about-the-angle-returned),官网也没有任何解释。
下面是获取RotatedRect的绝对角度(0-180)的函数:
文章图片
static double calcLineDegree(const Point2f& firstPt, const Point2f& secondPt) { double curLineAngle = 0.0f; if (secondPt.x - firstPt.x != 0) { curLineAngle = atan(static_cast(firstPt.y - secondPt.y) / static_cast (secondPt.x - firstPt.x)); if (curLineAngle < 0) { curLineAngle += CV_PI; } } else { curLineAngle = CV_PI / 2.0f; //90度 } return curLineAngle*180.0f/CV_PI; } static double getRcDegree(const RotatedRect box) { double degree = 0.0f; Point2f vertVect[4]; box.points(vertVect); //line 1 const double firstLineLen = (vertVect[1].x - vertVect[0].x)*(vertVect[1].x - vertVect[0].x) + (vertVect[1].y - vertVect[0].y)*(vertVect[1].y - vertVect[0].y); //line 2 const double secondLineLen = (vertVect[2].x - vertVect[1].x)*(vertVect[2].x - vertVect[1].x) + (vertVect[2].y - vertVect[1].y)*(vertVect[2].y - vertVect[1].y); if (firstLineLen > secondLineLen) { degree = calcLineDegree(vertVect[0], vertVect[1]); } else { degree = calcLineDegree(vertVect[2], vertVect[1]); } return degree; }
文章图片
转载自:http://www.cnblogs.com/xylc/p/4269624.html
推荐阅读
- 人脸识别|【人脸识别系列】| 实现自动化妆
- OpenCV|OpenCV-Python实战(18)——深度学习简介与入门示例
- opencv|图像处理之椒盐噪声的添加与去除
- 人脸识别|【人脸识别系列】| 实现人脸截图保存并编写128维特征向量
- opencv|网络爬虫入门练习
- OpenCV|【OpenCV 完整例程】89. 带阻滤波器的传递函数
- OpenCV|【OpenCV 完整例程】90. 频率域陷波滤波器
- OpenCV|【OpenCV 完整例程】22. 图像添加非中文文字
- OpenCV|【OpenCV 完整例程】91. 高斯噪声、瑞利噪声、爱尔兰噪声
- opencv|python+opencv车道线,实线虚线的检测