opencv:图形绘制与填充
#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:图形绘制与填充的更多相关文章
- 【opencv系列04】OpenCV4.X图形绘制
一. 基本图形绘制 1. 基本函数与参数 cv2.line(): 线 cv2.circle(): 圆 cv2.rectangle(): 矩形 cv2.ellipse(): 椭圆 cv2.putText ...
- Qt 2D绘图之一:基本图形绘制和渐变填充
Qt中提供了强大的2D绘图系统,可以使用相同的API在屏幕和绘图设备上进行绘制,它主要基于QPainter.QPaintDevice和QPaintEngine这三个类.它们三者的关系如下图所示: QP ...
- 【Windows编程】系列第五篇:GDI图形绘制
上两篇我们学习了文本字符输出以及Unicode编写程序,知道如何用常见Win32输出文本字符串,这一篇我们来学习Windows编程中另一个非常重要的部分GDI图形绘图.Windows的GDI函数包含数 ...
- Qt中2D绘图问题总结(一)----------基本的绘制与填充
刚刚开始学习Qt不久,才开始渐渐地熟悉基础内容,学习过程中的一些知识的总结和感悟希望通过博客记录下来,与大家分享学习的同时,也是对自己坚持下去的鞭策,废话不多说了,开始第一次的小总结吧. Qt提供了强 ...
- cocos2d-x 图形绘制
转自:http://blog.csdn.net/zhy_cheng/article/details/8480048 图形绘制的话,在cocos2d-x自带的TestCpp里有,包括绘制点,直线,多边形 ...
- 图形绘制 Canvas Paint Path 详解
图形绘制简介 Android中使用图形处理引擎,2D部分是android SDK内部自己提供,3D部分是用Open GL ES 1.0.大部分2D使用的api都在android.grap ...
- HTML5图形绘制学习(1)-- Canvas 元素简介
Canvas元素是HTML5中新增的一个专门用来进行图形绘制的元素.和其名称Canvas一样,它就相当于一个画布,我们可以在其上描绘各种图形. 这里所说的绘制图型,不是指我们可以进行可视化的图形绘制, ...
- 使用原生JavaScript的Canvas实现拖拽式图形绘制,支持画笔、线条、箭头、三角形、矩形、平行四边形、梯形以及多边形和圆形,不依赖任何库和插件,有演示demo
前言 需要用到图形绘制,没有找到完整的图形绘制实现,所以自己实现了一个 - - 一.实现的功能 1.基于oop思想构建,支持坐标点.线条(由坐标点组成,包含方向).多边形(由多个坐标点组成).圆形(包 ...
- C# 操作Excel图形——绘制、读取、隐藏、删除图形
简介 本篇文章将介绍C# 如何处理Excel图形相关的问题,包括以下内容要点: 1.绘制图形 1.1 绘制图形并添加文本到图形 1.2 添加图片到图形 1.3 设置图形阴影效果 1.4 设置图形透明度 ...
随机推荐
- 04 部署uwsgi web服务器
1 建立uwsgi软链接 进入虚拟环境,并在虚拟环境中安装uwsgi,建立软链接. $ cd /venv/thvenv/bin $ activate $ pip install uwsgi 2 创建u ...
- easyui只显示年月,时间格式
<div > <input id="db" /> </div> <script> /*power by showbo http:// ...
- 题解【洛谷P5959】[POI2018]Plan metra
题面 一道比较神仙的构造题. 首先确定 \(1\) 到 \(n\) 的路径长度,不妨设其长为 \(m\) . 通过观察发现,\(m\) 就是 \(\min_{1<i<n}\{dist_{1 ...
- window使用pycharm远程连接服务器
1.进入pycharm, File->Settings->Deployment下: 1.新加一个Server,type为SFTP,name自定义一个,例如UI自动化项目: 2.在SFTP ...
- [CCPC2019秦皇岛] F. Forest Program
[CCPC2019秦皇岛 F] Link https://codeforces.com/gym/102361/problem/F Description 给定一个仙人掌,删去一些边可以让它变成一个森林 ...
- MyBatis使用步骤及原理
主要讲解MyBatis-基本使用步骤 回顾: MyBatis是一个数据持久层(ORM)框架.把实体 类和SQL语句之间建立了映射关系,是一种半自 动化的ORM实现.MyBATIS需要 ...
- Python之路【第三十二篇】:django 分页器
Django的分页器paginator 文件为pageDemo models.py from django.db import models # Create your models here. cl ...
- IntelliJ IDEA 2017.3尚硅谷-----取消更新
- Pacemaker+ISCSI实现Apache高可用-配置
一.配置文件系统 任意节点用ISCSI的共享磁盘创建LVM node1 pvcreate /dev/sdb vgcreate my_vg /dev/sdb lvcreate -L 1G -n web_ ...
- Stream中的map
#map可以让一个对象A的流转换为宁外一种对象B的流(其实也是A对象元素组成的流) 1.对象转换为List集合 //若Eticket是一个对象,其中orderId是String类型 //eticket ...