#include <opencv2/opencv.hpp>
#include <iostream> using namespace cv;
using namespace std; int main(int argc, char** argv)
{
Mat canvas = Mat::zeros(Size(512, 512), CV_8UC3); // 相关绘制的API
/* line 参数说明:
1. 在哪个图像上绘制
2. 起点
3. 终点
4. 颜色
5. 线宽
6. type:绘制模式,LINE_AA反锯齿,LINE_8就是8
7. 水平位移,默认0,一般用不到
*/
line(canvas, Point(0, 0), Point(200, 200), Scalar(0,0,255), 5, LINE_8);
Rect rect(100, 100, 200, 200);
rectangle(canvas, rect, Scalar(255, 0, 0), 4, LINE_8);
circle(canvas, Point(256, 256), 100, Scalar(0, 255, 0), 1, 8);
RotatedRect rrt;
rrt.center = Point2f(256, 256);
rrt.angle = 45; // 这里是角度
rrt.size = Size(100, 200);
ellipse(canvas, rrt, Scalar(0, 255, 255), 1, 8); //线宽如果为-1,则会变成填充模式 namedWindow("canvas", WINDOW_AUTOSIZE);
imshow("canvas", canvas); // 绘制随机形状
Mat image = Mat::zeros(Size(512, 512), CV_8UC3);
int x1 = 0, y1 = 0;
int x2 = 0, y2 = 0;
RNG rng(12345);
while (true) {
x1 = (int)rng.uniform(0, 512);
x2 = (int)rng.uniform(0, 512);
y1 = (int)rng.uniform(0, 512);
y2 = (int)rng.uniform(0, 512); int w = abs(x2 - x1);
int h = abs(y2 - y1);
rect.x = x1;
rect.y = y1;
rect.width = w;
rect.height = h; image = Scalar(0, 0, 0);
Scalar color(rng.uniform(0, 256), rng.uniform(0, 256), rng.uniform(0, 256)); rectangle(image, rect, color, 1, 8);
//line(image, Point(x1, y1), Point(x2, y2), Scalar(rng.uniform(0, 256), rng.uniform(0, 256), rng.uniform(0, 256)), 1, 8);
imshow("image", image);
char c = waitKey(10);
if (c == 27) {
break;
}
} waitKey(0);
destroyAllWindows(); return 0;
}

opencv:图形绘制与填充的更多相关文章

  1. 【opencv系列04】OpenCV4.X图形绘制

    一. 基本图形绘制 1. 基本函数与参数 cv2.line(): 线 cv2.circle(): 圆 cv2.rectangle(): 矩形 cv2.ellipse(): 椭圆 cv2.putText ...

  2. Qt 2D绘图之一:基本图形绘制和渐变填充

    Qt中提供了强大的2D绘图系统,可以使用相同的API在屏幕和绘图设备上进行绘制,它主要基于QPainter.QPaintDevice和QPaintEngine这三个类.它们三者的关系如下图所示: QP ...

  3. 【Windows编程】系列第五篇:GDI图形绘制

    上两篇我们学习了文本字符输出以及Unicode编写程序,知道如何用常见Win32输出文本字符串,这一篇我们来学习Windows编程中另一个非常重要的部分GDI图形绘图.Windows的GDI函数包含数 ...

  4. Qt中2D绘图问题总结(一)----------基本的绘制与填充

    刚刚开始学习Qt不久,才开始渐渐地熟悉基础内容,学习过程中的一些知识的总结和感悟希望通过博客记录下来,与大家分享学习的同时,也是对自己坚持下去的鞭策,废话不多说了,开始第一次的小总结吧. Qt提供了强 ...

  5. cocos2d-x 图形绘制

    转自:http://blog.csdn.net/zhy_cheng/article/details/8480048 图形绘制的话,在cocos2d-x自带的TestCpp里有,包括绘制点,直线,多边形 ...

  6. 图形绘制 Canvas Paint Path 详解

    图形绘制简介        Android中使用图形处理引擎,2D部分是android SDK内部自己提供,3D部分是用Open GL ES 1.0.大部分2D使用的api都在android.grap ...

  7. HTML5图形绘制学习(1)-- Canvas 元素简介

    Canvas元素是HTML5中新增的一个专门用来进行图形绘制的元素.和其名称Canvas一样,它就相当于一个画布,我们可以在其上描绘各种图形. 这里所说的绘制图型,不是指我们可以进行可视化的图形绘制, ...

  8. 使用原生JavaScript的Canvas实现拖拽式图形绘制,支持画笔、线条、箭头、三角形、矩形、平行四边形、梯形以及多边形和圆形,不依赖任何库和插件,有演示demo

    前言 需要用到图形绘制,没有找到完整的图形绘制实现,所以自己实现了一个 - - 一.实现的功能 1.基于oop思想构建,支持坐标点.线条(由坐标点组成,包含方向).多边形(由多个坐标点组成).圆形(包 ...

  9. C# 操作Excel图形——绘制、读取、隐藏、删除图形

    简介 本篇文章将介绍C# 如何处理Excel图形相关的问题,包括以下内容要点: 1.绘制图形 1.1 绘制图形并添加文本到图形 1.2 添加图片到图形 1.3 设置图形阴影效果 1.4 设置图形透明度 ...

随机推荐

  1. 07 部署fastDFS文件数据库

    安装fastDFS前必须准备好两个版本匹配的文件: libfastcommon_V1.0.7.tar.gz:基础库文件 FastDFS_V5.05.tar.gz:文件数据库文件 注:这两个文件版本要匹 ...

  2. 用Object.prototype.toString.call(obj)检测对象类型原因分析

    用Object.prototype.toString.call(obj)检测对象类型原因分析  更新时间:2018年10月11日 08:46:33   投稿:laozhang    我要评论   在本 ...

  3. Redis 数据结构的底层实现 (二) dict skiplist intset

    一.REDIS_INCODING_HT (dict字典,hashtable) dict是一个用于维护key和value映射关系的数据结构.redis的一个database中所有的key到value的映 ...

  4. css之float(浮动)的特性

    详解CSS float属性  float本身不脱离文档流,但是和 position:absolute;搭配使用会脱离文档流 阅读目录 基础知识 float的详细细节 float特殊情况 clear属性 ...

  5. codeforces Codeforces Round #597 (Div. 2) D. Shichikuji and Power Grid

    #include<bits/stdc++.h> using namespace std ; int n; struct City { int id; long long x,y; //坐标 ...

  6. 题解【洛谷P4588】[TJOI2018]数学计算

    题目描述 小豆现在有一个数\(x\),初始值为\(1\).小豆有\(Q\)次操作,操作有两种类型: \(1\;m\):\(x=x\times m\)输出\(x\%mod\); \(2\;pos\):\ ...

  7. Android开发实战——记账本(5)

    开发日志——(5)     今天打算将图标的功能实现,将打开图表的选项放在右上方,所以重写MainActivity中的onOptionsItemSelected方法.增添Chart选项 public ...

  8. HTML5学习(6)a元素

    a元素代表超链接 href属性 hyper reference:通常代表跳转地址 target属性:_self在本窗口中打开(默认),_blank在新窗口中打开. id属性:全局属性,表示元素在文档中 ...

  9. MP4文件格式分析及分割实现(附源码)

    MP4文件格式分析                   MP4(MPEG-4 Part 14)是一种常见的多媒体容器格式,它是在“ISO/IEC 14496-14”标准文件中定义的,属于MPEG-4的 ...

  10. mvc:annotation-driven的前缀 "mvc"未绑定

    缺少MVC的配置,正确配置如下: <beans xmlns="http://www.springframework.org/schema/beans"       xmlns ...