【OpenCV】图形绘制与填充

news/2024/9/23 17:30:56/

        介绍了绘制、填充图像的API。也介绍了RNG类用来生成随机数。相关API:

  • line()

  • rectangle()

  • circle()

  • ellipse()

  • putText()

代码:

#include "iostream"
#include "opencv2/opencv.hpp"using namespace std;
using namespace cv;int main(int argc, char *argv)
{//【画布(图片)、窗口创建】Mat canvas = Mat::zeros(Size(512, 512), CV_8UC3);namedWindow("canvas", WINDOW_AUTOSIZE);//【相关绘制API]】//线段line(canvas, Point(10, 10), Point(400, 400), Scalar(0, 255, 255), 1, LINE_8);	//API(画布,点,点,色彩,线粗,渲染方式),渲染方式是枚举值,LINE_AA可以实现抗锯齿效果。//矩形Rect rect(100, 100, 200, 200);	//(起始点位置,宽高)宽高不可为负值rectangle(canvas, rect, Scalar(255, 0, 0), 1, LINE_8);	//API//圆形circle(canvas, Point(256, 256), 100, Scalar(0, 255, 0), 1, 8);	//API(画布,圆心,半径,色彩,线粗,渲染方式)//椭圆RotatedRect rrt;	//通过这个对象设置一些矩形数据rrt.center = Point2f(256, 256);	//椭圆中心rrt.angle = 45;	//旋转角度,可以为负值,反向旋转rrt.size = Size(100, 200);	//椭圆尺幅,可以理解为把椭圆圈起来的矩形的大小ellipse(canvas, rrt, Scalar(0, 255, 255), -1, 8);	//API(画布,RotatedRect对象,色彩,线粗,渲染方式),线粗参数设置-1图形变填充。//文字putText(canvas, "hello,world", Point(100, 50), FONT_HERSHEY_SIMPLEX, 1.0, Scalar(0, 255, 0), 2, 8);	//API(画布,文字,起始点,字体,大小,色彩,粗细,渲染方式)imshow("canvas", canvas);//【随机绘制】/*Mat image = Mat::zeros(Size(512, 512), CV_8UC3);Rect rect1;	int x1 = 0, y1 = 0;int x2 = 0, y2 = 0;RNG rng(12345);	//随机数,参数是设置的种子。while (true){//把image转变为纯黑图,相当于每次绘制前清空image图片。可以去掉注释运行看看效果。//image = Scalar(0, 0, 0);//两个点的x,y取随机值x1 = rng.uniform(0, 512);//0~511的范围随机,[0,512)y1 = rng.uniform(0, 512);x2 = rng.uniform(0, 512);y2 = rng.uniform(0, 512);//取两点间宽高int w = abs(x2 - x1);	//取绝对值int h = abs(y2 - y1);//画线line(image, Point(x1, y1), Point(x2, y2), Scalar(rng.uniform(0, 256), rng.uniform(0, 256), rng.uniform(0, 256)), 1, LINE_8);//画矩形rect1.x = x1;rect1.y = y1;rect1.width = w;rect1.height = h;rectangle(image, rect1, Scalar(255, 0, 0), 1, LINE_8);imshow("image", image);//按下任意键(英文输入法)退出循环,停止随机绘制if (waitKey(10) >= 0){break;}}*/waitKey(0);destroyAllWindows();return 0;
}

除了几个API的使用要了解,还要了解这段代码中用到的各种类对象相关内容。

  • Rect

  • RotatedRect

  • RNG

  • .uniform(),[x,y)

这里分别用于了矩阵,椭圆的绘制,以及获取随机数。

演示:


http://www.ppmy.cn/news/1463882.html

相关文章

Nginx企业级负载均衡:技术详解系列(12)—— 深入解析root、alias及location

你好,我是赵兴晨,97年文科程序员。 在生产服务器的Nginx配置中,我们总会遇到形形色色的配置方案。你是否曾注意到root和alias指令的巧妙应用?是否对那些五花八门的location匹配规则感到好奇? 今天,咱们来聊…

字符串转ArrayBuffer

const arrayBuffer new ArrayBuffer(str.length)const bufferView new Uint8Array(ab) for (let i 0; i < str.length; i) {bufferView[i] str.charCodeAt(i) }【前端】失落的 ArrayBuffer - 知乎

jeecgboot 同一账号只允许一个人登录

1.需求分析 jeecgboot 框架要实现同一个账号只允许一个人登录&#xff0c;就跟游戏账号类似&#xff0c;“我登录了就把你踢下去&#xff0c;你登录了就把我踢下去”&#xff1b;jwt 原理是生成 token 后一段时间内登录都有效&#xff0c;jeecgboot 中 jwt 和 redis 联合使用后…

原生html和js实现瀑布流布局(macyjs插件,不依赖于jquery,纯原生)

官网地址 方式一&#xff1a;在github上找到项目&#xff0c;复制demo/assets/css/macy.css&#xff0c;以及/dist/macy.js 直接引入项目 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv&qu…

QT学习(20):QStyle和自定义样式

QStyle 样式&#xff08;继承自QStyle类&#xff09;代表控件的绘制并封装GUI的外观。QStyle是一个封装了GUI外观的抽象基类。Qt使用QStyle去执行几乎所有的内置控件的绘制&#xff0c;确保控件外观和原生控件风格风格相同。 class Q_WIDGETS_EXPORT QStyle : public QObject{…

QT学习(20):QStyle类

Qt包含一组QStyle子类&#xff0c;这些子类&#xff08;QWindowsStyle&#xff0c;QMacStyle等&#xff09;模拟Qt支持的不同平台的样式&#xff0c;默认情况下&#xff0c;这些样式内置在Qt GUI模块中&#xff0c;样式也可以作为插件提供。 Qt的内置widgets使用QStyle来执行几…

动态内存管理—C语言通讯录

目录 一&#xff0c;动态内存函数的介绍 1.1 malloc和free 1.2 calloc 1.3 realloc 1.4C/C程序的内存开辟 二&#xff0c;通讯录管理系统 动态内存函数的介绍 malloc free calloc realloc 一&#xff0c;动态内存函数的介绍 1.1 malloc和free void* malloc (…

关于智慧校园安全用电监测系统的设计

人生人身安全是大家关注的话题&#xff0c;2019年12月中国消防统计近五年发生在全国学生宿舍的火灾2314起&#xff08;中国消防2019.12.应急管理部消防救援局官方微博&#xff09;&#xff0c;违规电器是引发火灾的主因。如果在各寝室安装智能用电监测器实时监督线路参数&#…