OpenCV——基本图形绘制(椭圆、圆、多边形、直线、矩形)
//绘制椭圆
void DrawEllipse(Mat img, double angle)
{
int thickhness = ;
int lineType = ; ellipse(img,
Point(WINDOW_WIDTH / , WINDOW_WIDTH / ),
Size(WINDOW_WIDTH / , WINDOW_WIDTH / ),
angle,
, ,
Scalar(, , ),
thickhness,
lineType); }

//绘制实心圆
void DrawFilledCircle(Mat img, Point center)
{
int thickness = -;
int lineType = ; circle(img,
center,
WINDOW_WIDTH / ,
Scalar(, , ),
thickness,
lineType);
}

当thickness为其他>0的值时为正常的空心圆
void DrawPolygon(Mat img)
{
int lineType = ; Point rookPoints[][];
rookPoints[][] = Point(WINDOW_WIDTH/,* WINDOW_WIDTH/);
rookPoints[][] = Point(* WINDOW_WIDTH/,* WINDOW_WIDTH/);
rookPoints[][] = Point(* WINDOW_WIDTH/,* WINDOW_WIDTH/);
rookPoints[][] = Point(* WINDOW_WIDTH/,* WINDOW_WIDTH/);
rookPoints[][] = Point(* WINDOW_WIDTH/,* WINDOW_WIDTH/);
rookPoints[][] = Point(* WINDOW_WIDTH/,* WINDOW_WIDTH/);
rookPoints[][] = Point(*WINDOW_WIDTH/, WINDOW_WIDTH/);
rookPoints[][] = Point(* WINDOW_WIDTH/, WINDOW_WIDTH/);
rookPoints[][] = Point(* WINDOW_WIDTH/, WINDOW_WIDTH/);
rookPoints[][] = Point(* WINDOW_WIDTH/, WINDOW_WIDTH/);
rookPoints[][] = Point(* WINDOW_WIDTH/, WINDOW_WIDTH/);
rookPoints[][] = Point(* WINDOW_WIDTH/, WINDOW_WIDTH/);
rookPoints[][] = Point(* WINDOW_WIDTH/, WINDOW_WIDTH/);
rookPoints[][] = Point(* WINDOW_WIDTH/, WINDOW_WIDTH/);
rookPoints[][] = Point(* WINDOW_WIDTH/, WINDOW_WIDTH/);
rookPoints[][] = Point(WINDOW_WIDTH/, WINDOW_WIDTH/);
rookPoints[][] = Point(WINDOW_WIDTH/,* WINDOW_WIDTH/);
rookPoints[][] = Point(* WINDOW_WIDTH/,* WINDOW_WIDTH/);
rookPoints[][] = Point(* WINDOW_WIDTH/,* WINDOW_WIDTH/);
rookPoints[][] = Point(WINDOW_WIDTH/,* WINDOW_WIDTH/); const Point* ppt[] = { rookPoints[] };
int npt[] = { }; fillPoly(img,
ppt,
npt,
,//好像只能为1,填其他数程序出错
Scalar(, , ),
lineType); }
1、cvPolyLine 绘制简单或多样的多边形。
void cvPolyLine( CvArr* img, CvPoint** pts, int* npts, int
contours, int is_closed,
CvScalar color, int thickness=1, int line_type=8, int shift=0
);
img
图像。
pts
折线的顶点指针数组。
npts
折线的定点个数数组。也可以认为是pts指针数组的大小
contours 折线的线段数量。
is_closed 指出多边形是否封闭。如果封闭,函数将起始点和结束点连线。
color
折线的颜色。
thickness 线条的粗细程度。
line_type 线段的类型。参见cvLine。
shift
顶点的小数点位数。
2、cvFillPoly用于一个单独被多边形轮廓所限定的区域内进行填充。
函数可以填充复杂的区域,例如,有漏洞的区域和有交叉点的区域等等。
void cvFillPoly( CvArr* img, CvPoint** pts, int* npts, int
contours,CvScalar color, int line_type=8, int shift=0 );
img
图像。
pts
指向多边形的数组指针。
npts
多边形的顶点个数的数组。
contours 组成填充区域的线段的数量。
color
多边形的颜色。
line_type 组成多边形的线条的类型。
shift
顶点坐标的小数点位数
绘制直线
int thickness = ;
int lineType = ;
line(rookImage,//要绘制的图
Point(, ),//起始点
Point(WINDOW_WIDTH, WINDOW_WIDTH),//终点
Scalar(, , ),
thickness,
lineType);
绘制矩形
rectangle (image3, rec1,Scalar(, , ), -, , )
rectangle( CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color,
int thickness=1, int line_type=8, int shift=0 );
- img
- 图像.
- pt1
- 矩形的一个顶点。
- pt2
- 矩形对角线上的另一个顶点
- color
- 线条颜色 (RGB) 或亮度(灰度图像 )(grayscale image)。
- thickness
- 组成矩形的线条的粗细程度。取负值时(如 CV_FILLED)函数绘制填充了色彩的矩形。
- line_type
- 线条的类型。见cvLine的描述
- shift
- 坐标点的小数点位数。
OpenCV——基本图形绘制(椭圆、圆、多边形、直线、矩形)的更多相关文章
- IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)
... 首先了解一下CGContextRef: An opaque type that represents a Quartz 2D drawing environment. Graphics Con ...
- (转) IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)
首先了解一下CGContextRef: An opaque type that represents a Quartz 2D drawing environment. Graphics Context ...
- [置顶] IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)
首先了解一下CGContextRef: An opaque type that represents a Quartz 2D drawing environment. Graphics Context ...
- opencv:基本图形绘制
可以使用opencv绘制 直线.圆.方形.椭圆等基本图形. 示例代码: #include <opencv.hpp> using namespace cv; int main() { // ...
- opencv:图形绘制与填充
#include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace st ...
- Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形) .
1.首先说一下canvas类: Class Overview The Canvas class holds the "draw" calls. To draw something, ...
- 【opencv系列04】OpenCV4.X图形绘制
一. 基本图形绘制 1. 基本函数与参数 cv2.line(): 线 cv2.circle(): 圆 cv2.rectangle(): 矩形 cv2.ellipse(): 椭圆 cv2.putText ...
- 使用原生JavaScript的Canvas实现拖拽式图形绘制,支持画笔、线条、箭头、三角形、矩形、平行四边形、梯形以及多边形和圆形,不依赖任何库和插件,有演示demo
前言 需要用到图形绘制,没有找到完整的图形绘制实现,所以自己实现了一个 - - 一.实现的功能 1.基于oop思想构建,支持坐标点.线条(由坐标点组成,包含方向).多边形(由多个坐标点组成).圆形(包 ...
- QT 基本图形绘制
QT 基本图形绘制 1.告诉绘制引擎一些东西 QPainter::Antialiasing 在可能的情况下,反锯齿 QPainter::TextAntialiasing 在可能的情况下,文 ...
随机推荐
- Connect the Cities(hdu3371)并查集(附测试数据)
Connect the Cities Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- ThreadLocal的用法
阿里巴巴 java 开发手册中推荐的 ThreadLocal 的用法: public class DateUtil { public static final ThreadLocal<DateF ...
- TCP/IP 基础简介
引言本篇属于TCP/IP协议的基础知识,重点介绍了TCP/IP协议簇的内容.作用以及TCP.UDP.IP三种常见网络协议相关的基础知识. 内容TCP/IP协议簇是由OSI七层模型发展而来的,之所以存在 ...
- js-权威指南学习笔记19
第十九章 jQuery类库 1.传递HTML文本字符串给$()方法,jQuery会根据传入的文本创建好HTML元素并封装为jQuery对象返回. 2.想要遍历jQuery对象中的所有元素时,可以调用e ...
- span元素文字自动换行
<span>加上display:inline-block,成功实现了想要的效果.但又有一个问题,纯连续字母和数字不会换行,最后加上word-wrap: break-word强制自动换行搞定 ...
- js多线程(worker)
浏览器端js是单线程执行,所以当js执行高负载运算时,UI渲染就会阻塞,页面就会出现卡顿,用户体验就不是很好 js为此也提供了异步操作,例如: 定时器(setTimeout 和 setInterval ...
- Windows上PostGIS(压缩版)安装
PostGIS安装 1.软件下载 postgresql-9.6.1-1-windows-x64-binaries.zip https://www.postgresql.org/download/win ...
- php 实现简单加入购物车(1)
这个购物车相对来说比较简单,用于短暂存储,并没有存储到数据库,购物车对于爱网购的人来说简直是熟悉的不能再熟悉了,在写购物车之前,我们首先要构思一下,我们需要先从数据库中调出一张表格,这里我 ...
- Python+Selenium笔记(十六)屏幕截图
(一) 方法 方法 简单说明 save_screenshot(filename) 获取当前屏幕截图并保存为指定文件 filename:路径/文件名 get_screenshot_as_base64 ...
- webpack+sass+vue 入门教程(一)
一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...