当前位置: 首页 > news >正文

OpenCV绘图函数(8)填充凸多边形函数fillConvexPoly()的使用

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

填充一个凸多边形。

函数 cv::fillConvexPoly 绘制一个填充的凸多边形。这个函数比 fillPoly 函数快得多。它可以填充的不仅仅是凸多边形,还可以填充任何没有自相交的单调多边形,即,一个轮廓最多与每一条水平线(扫描线)相交两次的多边形(虽然它的最顶部和/或最底部边缘可能是水平的)。

函数原型1


void cv::fillConvexPoly
(InputOutputArray 	img,InputArray 	points,const Scalar & 	color,int 	lineType = LINE_8,int 	shift = 0 
)		

参数1

  • 参数img 图像.
  • 参数points 多边形顶点的向量。
  • 参数color 用于填充多边形的颜色。
  • 参数lineType 边界的类型. 参见 LineTypes
  • 参数shift 顶点坐标中的分数位数

函数原型2

这是重载的成员函数,为方便提供。它与上面的函数仅在所接受的参数方面有所不同。


void cv::fillConvexPoly	
(InputOutputArray 	img,const Point * 	pts,int 	npts,const Scalar & 	color,int 	lineType = LINE_8,int 	shift = 0 
)		

参数2

  • 参数img 图像.
  • 参数pts 多边形顶点的向量。
  • 参数npts 点的个数
  • 参数color 用于填充多边形的颜色。
  • 参数lineType 边界的类型. 参见 LineTypes
  • 参数shift 顶点坐标中的分数位数

代码示例


#include <opencv2/opencv.hpp>
#include <iostream>int main()
{// 创建一个空白图像cv::Mat image = cv::Mat::zeros(400, 400, CV_8UC3);// 设置多边形的顶点std::vector<cv::Point> points;points.push_back(cv::Point(100, 100));points.push_back(cv::Point(150, 50));points.push_back(cv::Point(200, 100));points.push_back(cv::Point(200, 200));points.push_back(cv::Point(150, 250));points.push_back(cv::Point(100, 200));// 设置填充颜色cv::Scalar color(0, 0, 255); // 红色 (BGR)// 填充凸多边形cv::fillConvexPoly(image, points, color);// 显示图像cv::namedWindow("Convex Polygon Filling", cv::WINDOW_NORMAL);cv::imshow("Convex Polygon Filling", image);cv::waitKey(0);return 0;

运行结果

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 基于 Householder 变换的 qr 分解 算法与源码实现
  • sdk监控平台
  • 14.JS学习篇-CSR和SSR
  • golang并发编程——概述
  • sql中exist和in的区别
  • 240828-Gradio结合Html+Css+Javascript制作年历
  • Open3D编译安装
  • 同人小游戏之斗罗大陆3
  • 【STM32】IIC
  • es集群详解
  • IDEA导入第三方jar包, 并在Maven中打包该jar包
  • 医疗数字化转型数据中台架构方案(一)
  • vim 简易配置
  • 【视频讲解】SMOTEBoost、RBBoost和RUSBoost不平衡数据集的集成分类酵母数据集、治癌候选药物|数据分享...
  • 【奇某信-注册/登录安全分析报告】
  • Angularjs之国际化
  • canvas 绘制双线技巧
  • JavaWeb(学习笔记二)
  • Js基础——数据类型之Null和Undefined
  • LeetCode算法系列_0891_子序列宽度之和
  • Linux中的硬链接与软链接
  • Promise面试题2实现异步串行执行
  • 笨办法学C 练习34:动态数组
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 工程优化暨babel升级小记
  • 前端之Sass/Scss实战笔记
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 正则表达式
  • 2017年360最后一道编程题
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #mysql 8.0 踩坑日记
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (万字长文)Spring的核心知识尽揽其中
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • .NET 中让 Task 支持带超时的异步等待
  • .NetCore部署微服务(二)
  • .net的socket示例
  • .NET框架类在ASP.NET中的使用(2) ——QA
  • @angular/cli项目构建--http(2)
  • [AI]文心一言爆火的同时,ChatGPT带来了这么多的开源项目你了解吗
  • [Algorithm][综合训练][kotori和气球][体操队形][二叉树中的最大路径和]详细讲解
  • [c++刷题]贪心算法.N01
  • [cogs2652]秘术「天文密葬法」
  • [CSDN首发]鱿鱼游戏的具体玩法详细介绍
  • [CSS]浮动
  • [Java并发编程实战] 共享对象之可见性
  • [Loadrunner参数化]一个文件输两列参数的取值
  • [matlab]周期性信号分析
  • [paper] lift,splat,shooting 论文浅析
  • [shell] while read line 与for循环的区别
  • [Study]Vue
  • [WCF安全系列]谈谈WCF的客户端认证[用户名/密码认证]
  • [当人工智能遇上安全] 11.威胁情报实体识别 (2)基于BiGRU-CRF的中文实体识别万字详解
  • [电子榨菜] js中的闭包closure
  • [翻译].net 2.0(c#)下简单的FTP应用程序(转)