【OpenCV教程】如何优雅地画出一个几何图形
@TOC
1.直线
1.1 API
参数如下
img(image)
绘制多边形的画布,数据类型Mat
pt1(point1)
端点1
pt2(point2)
端点2
color
绘制线条的颜色
thickness
绘制线条的粗细
lineType
绘制线条的连通类型
shift
坐标点小数点位数(not important)
1.2 连通类型
LINE_4与LINE_8差别不大,而LINE_AA的抗锯齿效果显著
2.正矩形
2.1API
参数如下
img(image)
绘制多边形的画布,数据类型Mat
pt1(point1)
左上角端点
pt2(point2)
右下角端点
color
绘制线条的颜色
thickness
绘制线条的粗细。若取负值,则表示进行填充
lineType
绘制线条的连通类型
shift
坐标点小数点位数(not important)
参数如下
img(image)
绘制多边形的画布,数据类型Mat
rec(rect)
一个矩形
color
绘制线条的颜色
thickness
绘制线条的粗细。若取负值,则表示进行填充
lineType
绘制线条的连通类型
shift
坐标点小数点位数(not important)
3.圆形
3.1 API
参数如下
img(image)
绘制多边形的画布,数据类型Mat
center
圆心坐标
radius
半径
color
绘制线条的颜色
thickness
绘制线条的粗细。若取负值,则表示进行填充
lineType
绘制线条的连通类型
shift
坐标点小数点位数(not important)
4.椭圆
4.1 API
参数如下
img(image)
绘制多边形的画布,数据类型Mat
center
圆心坐标
axes
(x方向上半轴长,y方向上半轴长)
angle
顺时针偏角
startAngle
以x方向上的正半轴为起点,偏移一定角度后的起点,从此起点开始画椭圆
endAngle
以x方向上的正半轴为起点,偏移一定角度后的终点,到此为止结束画椭圆
color
绘制线条的颜色
thickness
绘制线条的粗细。若取负值,则表示进行填充
lineType
绘制线条的连通类型
shift
坐标点小数点位数(not important)
4.2 效果
5 斜矩形
5.1 API(通过RotatedRect类和line函数实现)
下面是自定义的一个快捷画斜矩形的函数
6.多边形
6.1 API
绘制方式一
参数如下
img(image)
绘制多边形的画布,数据类型Mat
pts(points)
多边形角点的坐标点集,数据类型vector<Point>或vector<vector<Point>>
,若为vector<Point2f>或vector<vector<Point2f>>
会报错
isClosed
多边形是否闭合,如果isClosed为真,那么pts的最后一个点将和第一个点连起来,否则轮廓被认为是不封闭的。
color
绘制线条的颜色
thickness
绘制线条的粗细。若取负值,则表示进行填充
lineType
绘制线条的连通类型
shift
坐标点小数点位数(not important)
绘制方式二
参数如下
img(image)
绘制多边形的画布,数据类型Mat
pts(points)
多个多边形的角点坐标点集的地址的数组。如果有3个四边形的角点坐标点集Point[3][4],那么pts={Point[0][0],Point[1][0],Point[2][0],}
npts(number points)
多个多边形的角点坐标点集的元素个数排列成的数组,用来指示需要用到pts[i]中的几个元素。如果有3个四边形的角点坐标点集Point[3][4],那么npts={4,4,4,}
ncontours
多边形的数量
isClosed
多边形是否闭合,如果isClosed为真,那么pts的最后一个点将和第一个点连起来,否则轮廓被认为是不封闭的。
color
绘制线条的颜色
thickness
绘制线条的粗细。若取负值,则表示进行填充
lineType
绘制线条的连通类型
shift
坐标点小数点位数(not important)
Last updated