- 操作系统:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 编程语言:C++11
算法描述
找到一个旋转矩形的四个顶点。对于绘制旋转矩形很有用。
该函数找到一个旋转矩形的四个顶点。这个函数对于绘制矩形很有帮助。在C++中,可以不用这个函数,而是直接使用RotatedRect::points方法。更多相关信息,请访问创建边界旋转框和轮廓椭圆的教程
函数原型
void cv::boxPoints
(
RotatedRect box,
OutputArray points
)
参数
- 参数box 输入的旋转矩形。它可能是 minAreaRect 的输出
- 参数points 输出的四个顶点组成的数组。
代码示例
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
cv::Mat img(800, 800, CV_8UC3, cv::Scalar(255, 255, 255));
std::vector< cv::Point > starPoints;
cv::Point p1( 100, 100 );
cv::Point p2( 300, 100 );
cv::Point p4( 300, 300 );
cv::Point p3( 100, 300 );
starPoints.push_back( p1 );
starPoints.push_back( p2 );
starPoints.push_back( p3 );
starPoints.push_back( p4 );
cv::RotatedRect rect = cv::minAreaRect( starPoints );
cv::Mat ptfs;
cv::boxPoints( rect, ptfs );
std::cout << ptfs << std::endl;
cv::waitKey( 0 );
return 0;
}
运行结果
[100, 100;
300, 100;
300, 300;
100, 300]