在OpenCV3中的绘图详解中,我们详细地介绍了opencv3中所支持的各种几何形状的绘制,其中矩形的绘制接口为cv::rectangle(),但是这个接口只能用于绘制正常矩形(即cv::Rect定义的矩形,长是水平,高是竖直),但不支持旋转矩形(cv::RotateRect)的绘制。比如我们使用如下代码,通过若干点来拟合椭圆(cv::fitEllipse()),拟合出的椭圆是以椭圆的外接矩形呈现的,这个椭圆的外接矩形就是一个旋转矩形。
//创建一个用于绘制图像的空白图
cv::Mat image = cv::Mat::ones(480, 640, CV_8UC3);
//设置蓝色背景
image.setTo(cv::Scalar(100, 0, 0));
//输入拟合点
std::vector<cv::Point> points;
points.push_back(cv::Point(200, 240));
points.push_back(cv::Point(300, 400));
points.push_back(cv::Point(400, 360));
points.push_back(

本文探讨了在OpenCV3中如何绘制旋转矩形的问题。由于`cv::rectangle()`仅支持标准矩形,而`cv::fitEllipse()`得到的是旋转矩形,文章提供了两种解决方案:1) 使用`cv::line()`逐条边绘制;2) 利用`cv::drawContours()`函数。这两种方法可以帮助开发者实现旋转矩形的显示效果。
最低0.47元/天 解锁文章
850

被折叠的 条评论
为什么被折叠?



