在图像处理中,图像的旋转一直都是一个十分重要的方面,图像的仿射变换包括了旋转,平移缩放等等,只要掌握了一个方法,我们就可以以此类推得到别的处理。而平常我们利用retangle函数得到的矩形都是一个平直的矩形,而我们如果需要得到一个旋转的矩形是没有具体的函数的,需要我们自己来进行编写。
首先我们介绍一下如何画出一个旋转的矩形,在OPENCV里面有一个内置的类为RotatedRect,这个类保存一个旋转的Rect向量。他的定义RotatedRect(const
Point2f& center, const Size2f&
size, float
angle);第一个为旋转中心,第二个参数为大小,第三个为旋转角度。而定义该类的对象之后,我们就需要对其画图,由于没有其函数,我们就提取旋转矩形的四个点,然后连成直线的方法。具体代码如下:
// testRotateRect.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "opencv2/opencv.hpp"
using namespace std;
using namespace cv;
int _tmain(int argc, _TCHAR* argv[])
{
Mat
image(200,200,CV_8UC3,Scalar(0));
RotatedRect
rRect=RotatedRect(Point2f(100,100),Size2f(100,50),30);
//定义一个旋转矩形
Point2f vert