OpenCV中基本数据结构(5)_RotatedRect
RotatedRect也是表示一个矩形框,但是与Rect不同的是,RotatedRect可以带倾斜角的矩形,如下图所示:
RotatedRect结构中包括三个变量:
Point2f center:为矩形的中心点位置
Size2f size:矩形框width和height
float angle:为左上角与X轴夹角。与X轴的平行方向角度为0,逆时针旋转角度为负,顺时针旋转角度为正。当角度为0, 90, 180, 270,则和Rect一样
RotatedRect与其他数据结构不一样,数据类型都是固定的,没有其他数据类型。
Learning OpenCV3中指出了RotatedRect与Rect一个重要不同:
One very important difference between cv::RotatedRect and cv::Rect is the convention that a cv::RotatedRect is located in "space" relative to its center, while the cv::Rect is located relative to its upper-left corner.
RotatedRect类
RotatedRect类定义如下:
使用总结如下:
Medthod | Description |
RotatedRect() | 默认构造函数 |
RotatedRect(const Point2f& center, const Size2f& size, float angle) |
带参数构造函数: center:为矩形中心位置 size:为矩形宽度和高度 angle:为与x轴夹角 |
RotatedRect(const Point2f& point1, const Point2f& point2, const Point2f& point3) |
带参数构造函数: 根据矩形框的三个点确定一个RotatedRect point1、point2、point3矩形三个点 |
void points(Point2f pts[]) | 返回矩阵的四个角点的左边,顺序为:bottomLeft, topLeft, topRight, bottomRight. |
Rect boundingRect() | 返回能够包含旋转矩形框的最小矩形,返回的是Rect没有带角度 |
Rect_<float> boundingRect2f() | 返回能够包含旋转矩形框的最小矩形,返回的是Rect没有带角度,其数据类型为float |
Point2f center | 矩形中心点位置 |
Size2f size | 矩形的宽度和高度 |
float angle | 矩形夹角 |
来自于opencv官网的RotatedRect用例:https://docs.opencv.org/3.2.0/db/dd6/classcv_1_1RotatedRect.html#ae1be388780b8d5faf450be18cbbf30f1
#include <stdio.h>
#include "opencv2/opencv.hpp"using namespace cv;void main()
{Mat image(200, 200, CV_8UC3, Scalar(0));RotatedRect rRect = RotatedRect(Point2f(100, 100), Size2f(100, 50), 30);Point2f vertices[4];rRect.points(vertices);for (int i = 0; i < 4; i++)line(image, vertices[i], vertices[(i + 1) % 4], Scalar(0, 255, 0));Rect brect = rRect.boundingRect();rectangle(image, brect, Scalar(255, 0, 0));imshow("rectangles", image);waitKey(0);}
运行结果:
RotatedRect没有对operator进行重构,不支持+,-,*,/以及&,|等操作符
OpenCV中基本数据结构(5)_RotatedRect相关推荐
- OPENCV中图像数据结构及其转化
OPENCV中图像数据结构及其转化 1. IplImage 它是openCV库中表示图像的结构体. 初始化: cvLoadImage(),cvCreateImage() 访问元素:[行指针] b = ...
- OPENCV中的数据结构总结
最近在写自己的算法,其实就是对一些传统算法的改进.传统算法可以参考opecv的源代码.在阅读源代码的过程中,我慢慢领会到了opencv的强大之处,并不是因为它实现了各种算法,而是在于它对于基本数据结构 ...
- OpenCV中的数据结构
首先介绍2维点对Point_,它的是一个模板类.我们可以直接访问数据成员x,y.它不仅定了+.-.==.!=这4个基本的操作,还定义了点乘.叉乘等操作.特别的这个类还提供了inside函数来判断一个点 ...
- OpenCV中基本数据结构(4)_Rect
Rect数据结构经常是在OpenCV中被用来表示为一个矩形尺寸,其成员包括x,y, width,height,其中x和y分别表示矩形框的左上角的起始点坐标,width和height分别表示宽和高. R ...
- OpenCV中基本数据结构(1)_Point
为了便于对一些常见的数据进行操作,OpenCV定义了一些常见的数据结构(Point ,Scalar等),以方便后续对数据算法的实现,主要分为basic data type.helper objects ...
- OpenCV中基本数据结构(8)_Complex
Complex为OpenCV中的复数表示类,与STL 中的complex类似但是不一样,两者可以互换,与STL的complex最大的不同是,STL中获取到实部和虚部的值 分别使用real()和imag ...
- OpenCV中基本数据结构(6)_Matx
Matx为OpenCV轻量级的矩阵,被称为fixed matrix classes,意思是每个矩阵的大小都是固定的,主要是应对矩阵数据比较小的场景,最新的版本4.0不超过6*6大小的矩阵,旧版本一般不 ...
- OpenCV中基本数据结构(7)_Vec
Vec系列数据结构是Matx的一个派生类,其矩阵的行的大小永远固定为一行,列大小从1到6不等,可以认为类似与C++ vector,但与C++ 的vector又有很大不同,,以下不同来自于一段技术博客, ...
- OpenCV中Mat数据结构使用举例
#include "stdafx.h" #include <string> #include <iostream> #include <opencv2 ...
最新文章
- MarkdownView:Markdown 文档预览视图组件
- (转)java DecimalFormat用法
- 那传说中的P、NP以及NPC问题
- web服务器 字体.svg/.woff/.woff2 404错误 解决方案
- 【备忘】conda环境常用配置命令
- cp和scp复制命令
- Cinemachine教程 | Unity中如何快速制作相机切换动画?
- Adobe正式在中国市场推出Creative Cloud创意应用软件
- Spark-生产案例
- C语言:求矩阵非对角线元素的和
- WordPress主题 Market 多用途,灵活,类似(ThemeForest)高级数码交易市场主题
- Android项目中加入弹幕功能
- Linux下的常用命令(干货)
- 神奇宝贝计算机游戏程序设计,精灵宝贝神奇宝贝
- php程序员述职材料_php程序员述职报告
- 第一次使用Eclipse:编写简单的Java小程序
- (NO.00005)iOS实现炸弹人游戏(十):游戏主角(三)
- Android SVGA动画
- svg转换png格式怎么转
- JavaScript实现双色球机选逻辑错误与正确的算法