08-绘制形状、文和 随机线

2024-03-23 01:40
文章标签 绘制 随机 08 形状 文和

本文主要是介绍08-绘制形状、文和 随机线,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

08-绘制形状、文和 随机线:


#include<opencv2/opencv.hpp>;
#include<iostream>;
using namespace std;
using namespace cv;Mat source1, change1;  //全局变量
const char* source1Title = "source1title ";
const char* change1Title = "change1title ";
void MyLines();  //函数声明:绘制线段
void MyRectangle();//绘制矩形
void MyEllipse(); //绘制椭圆弧度
void MyCircle(); //绘制圆
void MyfillPoly(); //绘制多边形
void MyPutText();  //文字输出int main(int argc, char* srgv) { //08- 绘制形状与文字source1 = imread("F:\\OpenCV-Test\\TestPicture\\SourcePicture1\\1.PNG");if (source1.empty()) {printf("can not load image ... \n");return -1;}imshow(source1Title, source1);// API 绘制线,椭圆,矩形,圆,填充 ; 文字source1.copyTo(change1);MyLines();    //调用绘制线段函数MyRectangle();//调用绘制矩形函数MyEllipse();  //调用绘制椭圆函数MyCircle();   //调用绘制圆函数MyfillPoly();  //调用绘制多边形函数MyPutText();  //调用文字输出函数imshow(change1Title, change1);waitKey(0);return 0;
}
void MyLines() {  //绘制线段函数 Point p1 = Point(10, 20);  //线起点Point p2 = Point(50,80);   //线终点Scalar MyLinesColor = Scalar(0,0,255); //线红色line(change1,p1,p2,MyLinesColor,3,LINE_AA);  // 图像,起点,终点,颜色,线宽,线反锯齿(稍微耗CPU)
}
void MyRectangle() {  //绘制矩形函数 Rect rect = Rect(80,30,150,40); //起点坐标, 终点坐标Scalar rectColor = Scalar(255, 0, 0); //线蓝色颜色rectangle(change1,rect,rectColor,2,LINE_8);//图像,方法,颜色,线宽,线锯齿
}
void MyEllipse() { //绘制椭圆函数Scalar ellipseColor = Scalar(0, 255, 0); //线绿色ellipse(change1,Point(100,150),Size(20,40),45,0,360,ellipseColor,2,LINE_8);//图像,椭圆中心点,椭圆大小长短轴  椭圆倾斜度 0-360度(弧度0-360度之间) 椭圆颜色,椭圆线宽,反锯齿//ellipse(change1, Point(change1.rows/2, change1.cols/2), Size(change1.rows/4, change1.cols/8), 90, 0, 360, ellipseColor, LINE_8);
}
void MyCircle() {   //调用绘制圆函数Point CircleCenter = Point(50,200);//Point CircleCenter = Point(change1.rows / 2, change1.cols / 2);Scalar CircleColor = Scalar(0, 255, 255); //线颜色指定circle(change1,CircleCenter,40,CircleColor,2,8);// 图像,圆中心点,圆半径, 圆颜色,圆线宽,反锯齿
}
void MyfillPoly() { //绘制多边形函数Point pts[1][5]; //二维数组1*5pts[0][0] = Point(15, 15);  //数组点坐标pts[0][1] = Point(45, 150);pts[0][2] = Point(35, 90);pts[0][3] = Point(35, 45);pts[0][4] = Point(15, 15);const Point* ppts[] = { pts[0] }; //int npt[] = { 5 };Scalar FillPolyColor = Scalar(255,50,255);fillPoly(change1,ppts,npt,1, FillPolyColor,8);// 图像,起点坐标,终点坐标, 数组宽度为1(pts[1][5],颜色,反锯齿)
}
void MyPutText() {  //调用文字输出函数const char*  PutTexts = "Hello OpenCV !";Scalar TextputColor = Scalar(30, 30, 255);putText(change1,PutTexts,Point(50,250),FONT_HERSHEY_SIMPLEX,1,TextputColor,2,8);//图像,文字内容,坐标,字体类型,文字大小,文字颜色,字体宽度,反锯齿
}

演示效果:

 

绘制随机线代码:


#include<opencv2/opencv.hpp>;
#include<iostream>;
using namespace std;
using namespace cv;Mat source1;  //全局变量
const char* source1Title = "source1title ";void RandomLine();//绘制 随机线
int main(int argc, char* srgv) { //08- 绘制形状与文字source1 = imread("F:\\OpenCV-Test\\TestPicture\\SourcePicture1\\1.PNG");if (source1.empty()) {printf("can not load image ... \n");return -1;}imshow(source1Title, source1);RandomLine();//绘制随机线waitKey(0);return 0;
}
void RandomLine() { //绘制随机线RNG rng(12345);Point pt1;Point pt2;Mat bg = Mat::zeros(source1.size(),source1.type());for (int i = 0; i < 1000;i++) {pt1.x = rng.uniform(0, source1.cols);  // 随机数函数.uniformpt1.y = rng.uniform(0, source1.rows);pt2.x = rng.uniform(0, source1.cols);pt2.y = rng.uniform(0, source1.rows);Scalar FreeLineColor = Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255));if (waitKey(50)>0) {break;}line(bg, pt1, pt2, FreeLineColor, 1, 8);imshow("RandomLine", bg);}	
}

代码演示效果:

 

 

 

这篇关于08-绘制形状、文和 随机线的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/836744

相关文章

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

使用Python绘制蛇年春节祝福艺术图

《使用Python绘制蛇年春节祝福艺术图》:本文主要介绍如何使用Python的Matplotlib库绘制一幅富有创意的“蛇年有福”艺术图,这幅图结合了数字,蛇形,花朵等装饰,需要的可以参考下... 目录1. 绘图的基本概念2. 准备工作3. 实现代码解析3.1 设置绘图画布3.2 绘制数字“2025”3.3

使用Python绘制可爱的招财猫

《使用Python绘制可爱的招财猫》招财猫,也被称为“幸运猫”,是一种象征财富和好运的吉祥物,经常出现在亚洲文化的商店、餐厅和家庭中,今天,我将带你用Python和matplotlib库从零开始绘制一... 目录1. 为什么选择用 python 绘制?2. 绘图的基本概念3. 实现代码解析3.1 设置绘图画

使用C#如何创建人名或其他物体随机分组

《使用C#如何创建人名或其他物体随机分组》文章描述了一个随机分配人员到多个团队的代码示例,包括将人员列表随机化并根据组数分配到不同组,最后按组号排序显示结果... 目录C#创建人名或其他物体随机分组此示例使用以下代码将人员分配到组代码首先将lstPeople ListBox总结C#创建人名或其他物体随机分组

Python绘制土地利用和土地覆盖类型图示例详解

《Python绘制土地利用和土地覆盖类型图示例详解》本文介绍了如何使用Python绘制土地利用和土地覆盖类型图,并提供了详细的代码示例,通过安装所需的库,准备地理数据,使用geopandas和matp... 目录一、所需库的安装二、数据准备三、绘制土地利用和土地覆盖类型图四、代码解释五、其他可视化形式1.

如何用Python绘制简易动态圣诞树

《如何用Python绘制简易动态圣诞树》这篇文章主要给大家介绍了关于如何用Python绘制简易动态圣诞树,文中讲解了如何通过编写代码来实现特定的效果,包括代码的编写技巧和效果的展示,需要的朋友可以参考... 目录代码:效果:总结 代码:import randomimport timefrom math

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

【WebGPU Unleashed】1.1 绘制三角形

一部2024新的WebGPU教程,作者Shi Yan。内容很好,翻译过来与大家共享,内容上会有改动,加上自己的理解。更多精彩内容尽在 dt.sim3d.cn ,关注公众号【sky的数孪技术】,技术交流、源码下载请添加微信号:digital_twin123 在 3D 渲染领域,三角形是最基本的绘制元素。在这里,我们将学习如何绘制单个三角形。接下来我们将制作一个简单的着色器来定义三角形内的像素

Flutter 进阶:绘制加载动画

绘制加载动画:由小圆组成的大圆 1. 定义 LoadingScreen 类2. 实现 _LoadingScreenState 类3. 定义 LoadingPainter 类4. 总结 实现加载动画 我们需要定义两个类:LoadingScreen 和 LoadingPainter。LoadingScreen 负责控制动画的状态,而 LoadingPainter 则负责绘制动画。

利用matlab bar函数绘制较为复杂的柱状图,并在图中进行适当标注

示例代码和结果如下:小疑问:如何自动选择合适的坐标位置对柱状图的数值大小进行标注?😂 clear; close all;x = 1:3;aa=[28.6321521955954 26.2453660695847 21.69102348512086.93747104431360 6.25442246899816 3.342835958564245.51365061796319 4.87