OpenCV:旋转矩形(RotatedRect)

RotatedRect类是OpenCV的基础类,用于创建旋转矩形,下面是它的构造函数,包含旋转中心点、尺寸大小和旋转角度。

构造函数1: 

RotatedRect(const Point2f& center, const Size2f& size, float angle);
center 旋转矩形的质心
size 旋转矩形的宽度和高度
angle 顺时针方向的旋转角度。当角度为0°,90°,180°,270°等时,矩形变为右上方的矩形

构造函数2: 

RotatedRect(const Point2f& point1, const Point2f& point2, const Point2f& point3);

通过这个构造函数也可以创建旋转矩形,只需要给出三个点,但是要指定三个点的顺序。

示例代码: 

#include 
#include 

//宏定义
#define OPEN

int main()
{
	cv::Mat srcImage=cv::Mat(480,640,CV_8UC3,cv::Scalar(150,150,150));
#ifdef CLOSE
	cv::RotatedRect box(cv::Point(320, 240), cv::Size(200, 200), 30);
	cv::Point2f vertex[4];
	box.points(vertex);
#endif // CLOSE
#ifdef OPEN
	//随机数
	cv::RNG& rng = cv::theRNG();
	int count = rng.uniform(3,103);
	std::vector points;
	for (int i=0;i

示例代码中用了条件编译,定义OPEN就是获取所有点的最小包围矩形,然后由最小包围矩形获取它的属性质心点、大小和角度;定义CLOSE就是直接使用质心点、大小和角度创建一个旋转矩形。

显示结果: 

OpenCV:旋转矩形(RotatedRect)_第1张图片

OpenCV:旋转矩形(RotatedRect)_第2张图片

OpenCV:旋转矩形(RotatedRect)_第3张图片

OpenCV:旋转矩形(RotatedRect)_第4张图片

你可能感兴趣的:(《OpenCV学习笔记》)