opencv RotatedRect 的 point
时间: 2023-11-13 22:17:02 浏览: 36
RotatedRect类是OpenCV中的一个类,用于定义一个旋转的矩形。它包含了矩形的中心点、宽度和高度以及旋转的角度。通过调用points()函数,可以得到旋转矩形的四个顶点坐标。而调用boundingRect()函数可以得到包含这个旋转矩形的最小的直立矩形。
在OpenCV 3.x中,经常会使用minAreaRect()函数来求解最小外接矩形(旋转矩形)。这个函数会返回一个RotatedRect类的对象,可以通过这个对象来获取旋转矩形的信息。
所以,如果你想要获取RotatedRect对象的顶点坐标,可以通过调用RotatedRect类的points()函数来实现。
相关问题
opencv RotatedRect用法 c++和qt
在C++中,使用OpenCV的RotatedRect可以按照以下步骤进行:
1. 导入OpenCV库头文件:
```c++
#include <opencv2/core.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/highgui.hpp>
```
2. 创建RotatedRect对象:
```c++
cv::RotatedRect rect(cv::Point2f center, cv::Size2f size, float angle);
```
其中,center表示矩形的中心点,size表示矩形的宽度和高度,angle表示矩形的旋转角度。
3. 在图像上绘制RotatedRect:
```c++
cv::Mat image;
cv::rectangle(image, rect.boundingRect(), cv::Scalar(0, 255, 0), 2);
```
其中,boundingRect()函数可以返回包围RotatedRect的矩形,cv::Scalar(0, 255, 0)表示绘制矩形的颜色,2表示绘制矩形的线宽。
在Qt中,可以将OpenCV的Mat对象转换为Qt的QImage对象,然后在Qt中显示图像:
```c++
cv::Mat image;
// load image
QImage qimage(image.data, image.cols, image.rows, QImage::Format_RGB888);
QPixmap pixmap = QPixmap::fromImage(qimage);
ui->label->setPixmap(pixmap);
```
其中,QImage的构造函数可以接收指向图像数据的指针,图像的宽度和高度,以及图像的格式。然后使用QPixmap将QImage转换为可以在Qt中显示的图像。最后,将图像显示在Qt的标签控件上。
以上是使用OpenCV的RotatedRect的基本用法,可以根据具体需求进行调整和扩展。
opencv 显示 RotatedRect
如果要显示一个RotatedRect对象,可以使用OpenCV中的cv::RotatedRect::points()函数,该函数返回一个包含RotatedRect四个角点的数组。然后,可以使用cv::line()函数将这些点连接起来以显示RotatedRect。下面是一个简单的示例代码:
```c++
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
// 创建一个RotatedRect对象
RotatedRect rect(Point2f(100, 100), Size2f(50, 100), 30);
// 获取RotatedRect的四个角点
Point2f points[4];
rect.points(points);
// 创建一个空白图像
Mat image = Mat::zeros(Size(500, 500), CV_8UC3);
// 将RotatedRect的四个角点连接起来
for (int i = 0; i < 4; i++)
{
line(image, points[i], points[(i+1)%4], Scalar(0, 255, 0), 2);
}
// 显示图像
imshow("RotatedRect", image);
waitKey(0);
return 0;
}
```
在这个示例中,我们创建了一个RotatedRect对象,然后使用points()函数获取它的四个角点。接下来,我们创建了一个空白图像,并使用line()函数将四个角点连接起来。最后,我们使用imshow()函数显示图像,并使用waitKey()函数等待用户按下任意键退出。