获取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 != )
{
curLineAngle = atan(static_cast<double>(firstPt.y - secondPt.y) / static_cast<double>(secondPt.x - firstPt.x));
if (curLineAngle < )
{
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[];
box.points(vertVect);
//line 1
const double firstLineLen = (vertVect[].x - vertVect[].x)*(vertVect[].x - vertVect[].x) +
(vertVect[].y - vertVect[].y)*(vertVect[].y - vertVect[].y);
//line 2
const double secondLineLen = (vertVect[].x - vertVect[].x)*(vertVect[].x - vertVect[].x) +
(vertVect[].y - vertVect[].y)*(vertVect[].y - vertVect[].y);
if (firstLineLen > secondLineLen)
{
degree = calcLineDegree(vertVect[], vertVect[]);
}
else
{
degree = calcLineDegree(vertVect[], vertVect[]);
}
return degree;
}
获取OpenCV中RotatedRect的绝对角度的更多相关文章
- 图像金字塔及其在 OpenCV 中的应用范例(下)
前言 本文将主要讲解如何使用 OpenCV 实现图像分割,这也是图像金字塔在 OpenCV 中的一个重要应用. 关于图像分割 在计算机视觉领域,图像分割(Segmentation)指的是将数字图像细分 ...
- OpenCV中cv2的用法
一.读入图像 使用函数cv2.imread(filepath,flags)读入一副图片 filepath:要读入图片的完整路径 flags:读入图片的标志 cv2.IMREAD_COLOR:默认参数 ...
- [OpenCV-Python] OpenCV 中的 Gui特性 部分 II
部分 IIOpenCV 中的 Gui 特性 OpenCV-Python 中文教程(搬运)目录 4 图片 目标 • 在这里你将学会怎样读入一幅图像,怎样显示一幅图像,以及如何保存一幅图像 • 你将要学习 ...
- [OpenCV-Python] OpenCV 中的图像处理 部分 IV (四)
部分 IVOpenCV 中的图像处理 OpenCV-Python 中文教程(搬运)目录 21 OpenCV 中的轮廓 21.1 初识轮廓目标 • 理解什么是轮廓 • 学习找轮廓,绘制轮廓等 • 函数: ...
- [OpenCV-Python] OpenCV 中图像特征提取与描述 部分 V (一)
部分 V图像特征提取与描述 OpenCV-Python 中文教程(搬运)目录 29 理解图像特征 目标本节我会试着帮你理解什么是图像特征,为什么图像特征很重要,为什么角点很重要等.29.1 解释 我相 ...
- 图像滤波与OpenCV中的图像平滑处理
.About图像滤波 频率:可以这样理解图像频率,图像中灰度的分布构成一幅图像的纹理.图像的不同本质上是灰度分布规律的不同.但是诸如"蓝色天空"样的图像有着大面积近似的灰度强度,而 ...
- 通过jdbc获取数据库中的表结构
通过jdbc获取数据库中的表结构 主键 各个表字段类型及应用生成实体类 1.JDBC中通过MetaData来获取具体的表的相关信息.可以查询数据库中的有哪些表,表有哪些字段,字段的属性等等.Met ...
- Opencv中直线的表示方法
[blog算法原理]Opencv中直线的表示方法 一.问题的提出: 在实际项目编写过程中,需要对直线(Line)进行特定的处 ...
- 立体视觉-opencv中立体匹配相关代码
三种匹配算法比较 BM算法: 该算法代码: view plaincopy to clipboardprint? CvStereoBMState *BMState = cvCreateStereoBMS ...
随机推荐
- leetcode 123. Best Time to Buy and Sell Stock III ----- java
Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...
- php配置伪静态的方法
mod_rewrite是Apache的一个非常强大的功能,它可以实现伪静态页面.下面我详细说说它的使用方法 .检测Apache是否支持mod_rewrite 通过php提供的phpinfo()函数查看 ...
- checkbox 点击全选
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 黑马程序员——JAVA基础之多线程的安全问题
------- android培训.java培训.期待与您交流! ---------- 导致多线程出现问题的一个特殊的状态:就绪.具备了执行资格,但是还没有获取资源. 导致安全问题的出现的原因: 1. ...
- Linux平台下利用系统接口函数按照行读写文件
要求:支持大文件(1M)一次性读入 源代码如下: #include<stdio.h> #include<fcntl.h> #include<stdlib.h> #i ...
- javascript prototype和__proto__
< script type = "text/javascript" >function Person() { // 属性 this.head = 1; this.eye ...
- nginx无法启动: libpcre.so.1/libpcre.so.0: cannot open shared object file解决办法
NGINX启动时提示错误: /usr/local/nginx/sbin/nginx -t/usr/local/nginx/sbin/nginx: error while loading shared ...
- C# 大于屏幕的窗体
1.使用SetWindowPos就可以做到这一点,只是最后一个参数要选对. RECT windowRect = new RECT(); User32.GetWindowRect(MyForm2.Han ...
- System.Diagnostics命名空间里的Debug类和Trace类的用途
在 .NET 类库中有一个 System.Diagnostics 命名空间,该命名空间提供了一些与系统进程.事件日志.和性能计数器进行交互的类库.当中包括了两个对开发人员而言十分有用的类--Debug ...
- OpenJudge计算概论-寻找下标
/*======================================================================== 寻找下标 总时间限制: 1000ms 内存限制: ...