作者:Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

功能函数

// 绘制旋转矩形
void DrawRotatedRect(cv::Mat mask,const cv::RotatedRect &rotatedrect,const cv::Scalar &color,int thickness, int lineType)
{// 提取旋转矩形的四个角点cv::Point2f ps[4];rotatedrect.points(ps);// 构建轮廓线std::vector<std::vector<cv::Point>> tmpContours;    // 创建一个InputArrayOfArrays 类型的点集std::vector<cv::Point> contours;for (int i = 0; i != 4; ++i) {contours.emplace_back(cv::Point2i(ps[i]));}tmpContours.insert(tmpContours.end(), contours);// 绘制轮廓,即旋转矩形drawContours(mask, tmpContours, 0, color,thickness, lineType);  // 填充mask
}

测试代码

#include <iostream>
#include <opencv2/opencv.hpp>using namespace std;
using namespace cv;void DrawRotatedRect(cv::Mat mask, const cv::RotatedRect &rotatedrect, const cv::Scalar &color,int thickness, int lineType);int main()
{cv::Mat src = imread("test.jpg");cv::Mat result = src.clone();cv::RotatedRect rorect(cv::Point(src.cols / 2, src.rows / 2), cv::Size(1000, 800), 50);DrawRotatedRect(result, rorect, cv::Scalar(0, 255, 255), 5,16);imshow("original", src);imshow("result", result);waitKey(0);return 0;
}
// 绘制旋转矩形
void DrawRotatedRect(cv::Mat mask,const cv::RotatedRect &rotatedrect,const cv::Scalar &color,int thickness, int lineType)
{// 提取旋转矩形的四个角点cv::Point2f ps[4];rotatedrect.points(ps);// 构建轮廓线std::vector<std::vector<cv::Point>> tmpContours;    // 创建一个InputArrayOfArrays 类型的点集std::vector<cv::Point> contours;for (int i = 0; i != 4; ++i) {contours.emplace_back(cv::Point2i(ps[i]));}tmpContours.insert(tmpContours.end(), contours);// 绘制轮廓,即旋转矩形drawContours(mask, tmpContours, 0, color,thickness, lineType);  // 填充mask
}

测试效果

图1 原图

图2 绘制旋转矩形

绘制旋转矩形首先需要得到旋转矩形的位置坐标,我经常配合cv::minAreaRect函数使用;得到坐标信息后,结合绘制轮廓线的drawContours函数,即可实现。

如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!

OpenCV-绘制旋转矩形相关推荐

  1. 【opencv】 旋转矩形

    文章目录 1. 旋转矩形 2. 结果 1. 旋转矩形 //构建一个Mat(200*200) Mat image(200, 200, CV_8UC3, Scalar(0)); //设置一个旋转矩形3个参 ...

  2. 【OpenCV3】旋转矩形(cv::RotateRect)的绘制

    在OpenCV3中的绘图详解中,我们详细地介绍了opencv3中所支持的各种几何形状的绘制,其中矩形的绘制接口为cv::rectangle(),但是这个接口只能用于绘制正常矩形(即cv::Rect定义 ...

  3. 【opencv】轮廓特征(质心,面积,周长,近似轮廓,凸包,凸度,边界矩形,直角矩形,旋转矩形,最小闭合圈,拟合椭圆、直线)

    4_9_2_轮廓特征 - OpenCV中文官方文档 找到轮廓的不同特征,例如面积,周长,质心,边界框等. 1. 特征矩 特征矩可以帮助您计算一些特征,例如物体的质心,物体的面积等.请查看特征矩上的维基 ...

  4. python opencv最小外接矩形_Opencv绘制最小外接矩形、最小外接圆

    Opencv中求点集的最小外结矩使用方法minAreaRect,求点集的最小外接圆使用方法minEnclosingCircle. minAreaRect方法原型: RotatedRect minAre ...

  5. OpenCV中绘制外围矩形框和圆框

    OpenCV中绘制外围矩形框和圆框 利用边界寻找函数找到的边界坐标信息.然后利用每一条寻找到的边际信息去找到图形的矩形边界和圆形边界. 一. OpenCV中绘制外围矩形框 根据已知的边界信息点.将边界 ...

  6. OpenCV绘制线、矩形、圆等基本几何形状

    OpenCV绘制线.矩形.圆.椭圆等基本几何形状 画线 画矩形 画圆 通过javaOpenCV中的Imgproc函数进行简单几何图形的绘制 画线 代码 public class DemoMat {st ...

  7. OpenCV旋转矩形RotatedRect的Points函数遇到的问题

    学更好的别人, 做更好的自己. --<微卡智享> 本文长度为2722字,预计阅读8分钟 前言 原来的文章<C++ OpenCV透视变换改进---直线拟合的应用>,通过Rotat ...

  8. opencv 绘制轮廓边框 多边形 圆形 矩形

    如何使用opencv 绘制轮廓边框最小包裹 多边形 圆形 矩形? 函数说明: Rect boundingRect(InputArray points) points:输入信息,可以为包含点的容器(ve ...

  9. [Python从零到壹] 三十五.图像处理基础篇之OpenCV绘制各类几何图形

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

最新文章

  1. 模拟 ZOJ 3878 Convert QWERTY to Dvorak
  2. 年薪50万的程序员_这些年薪50万+的程序员都经历了什么?
  3. jtag和swd的区别
  4. 远程桌面Web连接访问及端口更改方法
  5. MySQL内核:InnoDB存储引擎 卷1
  6. HBase之BloomFilter
  7. fedora删除旧版本内核
  8. TensorFlow:实战Google深度学习框架(一)计算、数据、运行模型
  9. 你不知道ADo.Net中操作数据库的步骤【超详细整理】
  10. linux ssh 域,Linux SSH 与 SCP命令简述
  11. Java多态的实现方式,值得收藏!
  12. Swift的控制转移语句--continue语句
  13. 九度 题目1394:五连击数组
  14. opencv各种小程序代码
  15. 如何编写一个项目开发文档
  16. 微信小程序开发工具调试
  17. Jupyter-02-numpy:数组的维度
  18. 【中秋快乐】是什么让友小盟选择在中秋节加班?
  19. 海思HI3536 audio 双声道播放音频
  20. 2021年Java面经分享:java软件工程师证书多少钱

热门文章

  1. 云计算和主机托管有哪几点不同?
  2. WindowsForm如何实现类似微软project软件的甘特图?
  3. CentOS7默认的防火墙不是iptables,而是firewalle.
  4. 选择更安全的方式注册你的puppet节点
  5. 2012年CIO最关心的十大安全问题
  6. 1206. 设计跳表
  7. 连续和问题C语言,内存连续的有关问题
  8. linux msgsend 头文件,Unix/Linux进程间通信
  9. 计算机毕业设计中用C++实现职工工资管理系统
  10. 360解压电脑版安装包_鲁大师电脑版2020下载-鲁大师pc版安装包exe下载v6.1020.3005.1020 官方最新版...