OpenCV基本图形绘制函数有哪些
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,本篇内容主要讲解"OpenCV基本图形绘制函数有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"OpenCV基本图形绘制函数有哪些"吧!用于绘制直线的l
千家信息网最后更新 2025年01月20日OpenCV基本图形绘制函数有哪些
本篇内容主要讲解"OpenCV基本图形绘制函数有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"OpenCV基本图形绘制函数有哪些"吧!
用于绘制直线的line函数;
用于绘制椭圆的ellipse函数;
用于绘制矩形的rectangle函数;
用于绘制圆的circle函数;
用于绘制填充的多边形的fillPoly函数。
#include#include #include using namespace cv;using namespace std;#define WINDOW_WIDTH 600 // 定义窗口大小的宏#define WINDOW_NAME1 "原子图" //为窗口标题定义的宏 #define WINDOW_NAME2 "多边形图以及画线" //为窗口标题定义的宏 /***绘制椭圆***/void DrawEllipse(Mat img, double angle){ int thickness = 2; // 线宽 int lineType = 8; // 线性,8 代表联通线性 ellipse(img, Point(WINDOW_WIDTH / 2, WINDOW_WIDTH / 2), Size(WINDOW_WIDTH / 4, WINDOW_WIDTH / 16), angle, // 角度,0~360 度 0, 360, Scalar(255, 129, 0), thickness, lineType);}/*绘制实心圆*/void DrawFilledCircle(Mat img, Point center){ int thickness = -1; // 线粗-1,代表实心 int lineType = 8; // 线性,8 代表联通线性 circle(img, center, WINDOW_WIDTH / 32, Scalar(0, 0, 255), thickness, lineType);}/*凹多边形绘制*/void DrawPolygon(Mat img){ int lineType = 8; // 创建一些点 Point rookPoints[1][20]; rookPoints[0][0] = Point(WINDOW_WIDTH / 4, 7 * WINDOW_WIDTH / 8); rookPoints[0][1] = Point(3 * WINDOW_WIDTH / 4, 7 * WINDOW_WIDTH / 8); rookPoints[0][2] = Point(3 * WINDOW_WIDTH / 4, 13 * WINDOW_WIDTH / 16); rookPoints[0][3] = Point(11 * WINDOW_WIDTH / 16, 13 * WINDOW_WIDTH / 16); rookPoints[0][4] = Point(19 * WINDOW_WIDTH / 32, 3 * WINDOW_WIDTH / 8); rookPoints[0][5] = Point(3 * WINDOW_WIDTH / 4, 3 * WINDOW_WIDTH / 8); rookPoints[0][6] = Point(3 * WINDOW_WIDTH / 4, WINDOW_WIDTH / 8); rookPoints[0][7] = Point(26 * WINDOW_WIDTH / 40, WINDOW_WIDTH / 8); rookPoints[0][8] = Point(26 * WINDOW_WIDTH / 40, WINDOW_WIDTH / 4); rookPoints[0][9] = Point(22 * WINDOW_WIDTH / 40, WINDOW_WIDTH / 4); rookPoints[0][10] = Point(22 * WINDOW_WIDTH / 40, WINDOW_WIDTH / 8); rookPoints[0][11] = Point(18 * WINDOW_WIDTH / 40, WINDOW_WIDTH / 8); rookPoints[0][12] = Point(18 * WINDOW_WIDTH / 40, WINDOW_WIDTH / 4); rookPoints[0][13] = Point(14 * WINDOW_WIDTH / 40, WINDOW_WIDTH / 4); rookPoints[0][14] = Point(14 * WINDOW_WIDTH / 40, WINDOW_WIDTH / 8); rookPoints[0][15] = Point(WINDOW_WIDTH / 4, WINDOW_WIDTH / 8); rookPoints[0][16] = Point(WINDOW_WIDTH / 4, 3 * WINDOW_WIDTH / 8); rookPoints[0][17] = Point(13 * WINDOW_WIDTH / 32, 3 * WINDOW_WIDTH / 8); rookPoints[0][18] = Point(5 * WINDOW_WIDTH / 16, 13 * WINDOW_WIDTH / 16); rookPoints[0][19] = Point(WINDOW_WIDTH / 4, 13 * WINDOW_WIDTH / 16); const Point* ppt[1] = { rookPoints[0] }; // 多边形定点集 int npt[] = { 20 }; // 多边形定点数目 fillPoly(img, ppt, npt, 1, Scalar(255, 255, 255), // 多边形颜色:白色 lineType);}/*线绘制*/void DrawLine(Mat img, Point start, Point end){ int thickness = 2; int lineType = 8; line(img, start, end, Scalar(0,0,0), // 黑色 thickness, lineType);}int main(int argc, char ** argv){ Mat atomImage = Mat::zeros(WINDOW_WIDTH, WINDOW_WIDTH, CV_8UC3); Mat rookImage = Mat::zeros(WINDOW_WIDTH, WINDOW_WIDTH, CV_8UC3); // 椭圆绘制 DrawEllipse(atomImage, 0); DrawEllipse(atomImage, 90); DrawEllipse(atomImage, 45); DrawEllipse(atomImage, -45); // 绘制圆心 DrawFilledCircle(atomImage, Point(WINDOW_WIDTH / 2, WINDOW_WIDTH / 2)); // 绘制多边形 DrawPolygon(rookImage); // 绘制矩形 rectangle(rookImage, Point(0, 7 * WINDOW_WIDTH / 8), Point(WINDOW_WIDTH, WINDOW_WIDTH), Scalar(0, 255, 255), -1, 8); // 绘制一些线段 DrawLine(rookImage, Point(0, 15 * WINDOW_WIDTH / 16), Point(WINDOW_WIDTH, 15 * WINDOW_WIDTH / 16)); DrawLine(rookImage, Point(WINDOW_WIDTH / 4, 7 * WINDOW_WIDTH / 8), Point(WINDOW_WIDTH / 4, WINDOW_WIDTH)); DrawLine(rookImage, Point(WINDOW_WIDTH / 2, 7 * WINDOW_WIDTH / 8), Point(WINDOW_WIDTH / 2, WINDOW_WIDTH)); DrawLine(rookImage, Point(3 * WINDOW_WIDTH / 4, 7 * WINDOW_WIDTH / 8), Point(3 * WINDOW_WIDTH / 4, WINDOW_WIDTH)); // ---------------------------<3>显示绘制出的图像------------------------ imshow(WINDOW_NAME1, atomImage); moveWindow(WINDOW_NAME1, 0, 200); imshow(WINDOW_NAME2, rookImage); moveWindow(WINDOW_NAME2, WINDOW_WIDTH, 200); waitKey(0); return(0);}
运行:
到此,相信大家对"OpenCV基本图形绘制函数有哪些"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
函数
多边形
线性
图形
代表
椭圆
内容
定点
标题
矩形
学习
实用
更深
兴趣
原子
图像
圆心
大小
实用性
实际
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
女孩子自学网络技术好吗
合水网络安全
mysql数据库中有多少个表
诗美物联显示连接服务器超时
招远crm软件开发
杨浦区个性化软件开发厂家直销
河南网络技术学院哪个专业好
应聘网络技术支撑职位
电子表格怎么连接外部数据库
淄博dell服务器客服电话
数据库设置默认值怎么弄
金蝶如何登录数据库
美信网络技术有限公司av
2本学软件开发有前途吗
it软件开发有用吗
浪潮信息服务器什么时候上市
计算机网络安全与维护作业
供应优惠的分布式数据库
上级审计机关网络安全演练
游设备软件开发
违反网络安全第27条规定受到
连接服务器打不开网页
网络安全济南公司
网络安全自查报告送到派出所吗
魔兽世界邮件发到别的服务器
网吧没有服务器怎么清理
网络安全志愿活动的新闻标题
明日之后主播服务器选择
韩天明的服务器叫什么名字
内蒙古信息化软件开发过程有哪些