1. #include <opencv2/opencv.hpp>
  2. #include <iostream>
  3. using namespace cv;
  4. using namespace std;
  5. int main(int argc, char** argv)
  6. {
  7. Mat canvas = Mat::zeros(Size(512, 512), CV_8UC3);
  8. // 相关绘制的API
  9. /* line 参数说明:
  10. 1. 在哪个图像上绘制
  11. 2. 起点
  12. 3. 终点
  13. 4. 颜色
  14. 5. 线宽
  15. 6. type:绘制模式,LINE_AA反锯齿,LINE_8就是8
  16. 7. 水平位移,默认0,一般用不到
  17. */
  18. line(canvas, Point(0, 0), Point(200, 200), Scalar(0,0,255), 5, LINE_8);
  19. Rect rect(100, 100, 200, 200);
  20. rectangle(canvas, rect, Scalar(255, 0, 0), 4, LINE_8);
  21. circle(canvas, Point(256, 256), 100, Scalar(0, 255, 0), 1, 8);
  22. RotatedRect rrt;
  23. rrt.center = Point2f(256, 256);
  24. rrt.angle = 45; // 这里是角度
  25. rrt.size = Size(100, 200);
  26. ellipse(canvas, rrt, Scalar(0, 255, 255), 1, 8);
  27. //线宽如果为-1,则会变成填充模式
  28. namedWindow("canvas", WINDOW_AUTOSIZE);
  29. imshow("canvas", canvas);
  30. // 绘制随机形状
  31. Mat image = Mat::zeros(Size(512, 512), CV_8UC3);
  32. int x1 = 0, y1 = 0;
  33. int x2 = 0, y2 = 0;
  34. RNG rng(12345);
  35. while (true) {
  36. x1 = (int)rng.uniform(0, 512);
  37. x2 = (int)rng.uniform(0, 512);
  38. y1 = (int)rng.uniform(0, 512);
  39. y2 = (int)rng.uniform(0, 512);
  40. int w = abs(x2 - x1);
  41. int h = abs(y2 - y1);
  42. rect.x = x1;
  43. rect.y = y1;
  44. rect.width = w;
  45. rect.height = h;
  46. image = Scalar(0, 0, 0);
  47. Scalar color(rng.uniform(0, 256), rng.uniform(0, 256), rng.uniform(0, 256));
  48. rectangle(image, rect, color, 1, 8);
  49. //line(image, Point(x1, y1), Point(x2, y2), Scalar(rng.uniform(0, 256), rng.uniform(0, 256), rng.uniform(0, 256)), 1, 8);
  50. imshow("image", image);
  51. char c = waitKey(10);
  52. if (c == 27) {
  53. break;
  54. }
  55. }
  56. waitKey(0);
  57. destroyAllWindows();
  58. return 0;
  59. }

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. 【网站】网站不能在QQ,微信中访问,申诉办法

    使用这个网站申诉即可 https://appeal.anquan.org/

  2. Ubuntu, 更新Sourses.list

    1.备份原文件 sudo cp /etc/apt/sources.list /etc/apt/sources_list.bak 2.加载文件 vim:vim sourses.list ubuntu d ...

  3. open函数 文件设置缓冲

    # 注释 将文件写入硬件设备时,使用系统调用,这类I/O操作一般时间很长 # 为了减少I/O次数操作,文件通常使用缓冲区(有足够的数据才进行系统调用) # 文件缓冲行为分为: # 全缓冲: open函 ...

  4. 网页前端导出CSV,Excel格式文件

    通过自己实际测试有以下几种方法 方法一通过a标签实现,把要导出的数据用“\n”和“,”拼接成一个字符串,然后把字符串放到href中,这种方法只支持chrome,firefox等非ie浏览器 html页 ...

  5. mediasoup-demo解析-客户端

    1.gulp任务管理 app官方文档 npm start启动app,执行脚本: "start": "gulp live" 该命令用启动gulp顺序任务组合liv ...

  6. element 表格里的input点击回车聚焦下个input

    <template> <card> <el-table ref="singleTable" :data="tableData" h ...

  7. 2 request的get和post方法

    requests的get方法 1 在百度里面查询关键字的方法,并获取带百度当前页面 import requests keywords = input('请输入>>>').strip( ...

  8. js -- 日期时间格式化

    /** * js日期时间格式化 * @param date 时间读对象 * @param format 格式化字符串 例如:yyyy年MM月dd日 hh时mm分ss秒 * @returns {stri ...

  9. VIM键盘映射 (Map)

    http://www.pythonclub.org/linux/vim/map VIM键盘映射 (Map) 设置键盘映射 使用:map命令,可以将键盘上的某个按键与Vim的命令绑定起来.例如使用以下命 ...

  10. php设计模式之简单工厂模式代码实例

    <?php header("Content-type:text/html;charset=utf-8"); /** * 共同接口 */ interface db { func ...