【Python+OpenCV⼊门学习】五、绘制⼏何图形
本篇⽂章,将学习如何绘制⼏何图形,如画线、圆、矩形、椭圆等,另外还学习在图像中增加⽂本信息。主要学习函数line()、circle()、rectangle()、ellipse()、putText()等的使⽤。
环境:Windows 7(64)  python 3.6    opencv 3.4.2
⼀、绘制直线
1.1 了解函数line()
在许多图像处理任务中,有时候需要可视化处理结果,绘制直线会经常⽤到,如霍夫线变换。对于绘制直线,OpenCV提供了函数
line()。⾸先我们了解⼀下该函数。
img = cv.line( img, pt1, pt2, color[, thickness[, lineType[, shift]]] )
功能:在图像中绘制⼀条直线段
参数:
img:图像,指定在哪绘制直线
pt1:线段的起始点坐标
pt2:线段的终点坐标
color:线段的颜⾊。标量即为灰度值,元组形式即为彩⾊值,形式如下是(B,G,R),如(0,0,255)为红⾊。
thickness:线段的粗细。默认为1。当为闭合图形时,赋值为-1时,为填充。
lineType:线类型。默认值为cv.LINE_8。
shift:坐标点中的⼩数位数。
lineType取值说明:
cv.LINE_4:四连通线
cv.LINE_8:⼋连通线
cv.LINE_AA:抗锯齿线
1.2 编程实现
import numpy as np
import cv2 as cv
#创建⼀个全⿊图像
img = np.zeros( (512,512,3), np.uint8)
#绘制⼀条红⾊直线段
cv.line(img,(2,2),(212,500),(0,0,255),2,cv.LINE_8)
#显⽰
cv.imshow('line',img)
cv.waitKey(5000)
#关闭窗⼝
cv.destroyAllWindows()
程序运⾏结果图如下:
⼆、绘制矩形
2.1 了解函数rectangle()
在许多图像识别任务中,有时候需要框选出物体位置,通常采⽤矩形框选出物体位置。对于绘制矩形,OpenCV提供了函数rectangle()。和line()类似,也需要两个点坐标,在该函数中,两个点坐标是矩形的左上⾓的点和右下⾓的点坐标。该函数形式如下:
img = cv.rectangle( img, pt1, pt2, color[, thickness[, lineType[, shift]]] )
功能:绘制矩形
参数:
img:图像,指定在哪绘制矩形
pt1:矩形的左上⾓点坐标
pt2:矩形的右下⾓点坐标
color:线段的颜⾊。标量即为灰度值,元组形式即为彩⾊值,形式如下是(B,G,R),如(0,0,255)为
红⾊。
thickness:线段的粗细。默认为1。当为闭合图形时,赋值为-1时,为填充。
lineType:线类型。默认值为cv.LINE_8。
shift:坐标点中的⼩数位数。
2.2 编程实现
代码如下:
import numpy as np
import cv2 as cv
#创建⼀个图像
img = np.zeros( (512,512,3), np.uint8)
#绘制⼀个红⾊填充的矩形
#显⽰
cv.imshow('Rectangle',img)
cv.waitKey(5000)
#关闭窗⼝
cv.destroyAllWindows()
程序运⾏结果图如下:
三、绘制圆
3.1 了解函数circle()
和上⾯讲的两个函数不同地⽅在于,圆需要圆⼼坐标和半径确定。所以函数的形式如下:
img = cv.circle( img, center, radius, color[, thickness[, lineType[, shift]]] )
功能:绘制圆
参数:
img:图像,指定在哪绘制矩形
center:圆⼼坐标
radius:圆的半径
color:线段的颜⾊。标量即为灰度值,元组形式即为彩⾊值,形式如下是(B,G,R),如(0,0,255)为红⾊。
thickness:线段的粗细。默认为1。当为闭合图形时,赋值为-1时,为填充。
lineType:线类型。默认值为cv.LINE_8。
shift:坐标点中的⼩数位数。
3.2 编程实现
代码如下:
import numpy as np
import cv2 as cv
#创建⼀个图像
img = np.zeros( (512,512,3), np.uint8)
#绘制⼀条绿⾊圆
cv.circle(img,(200,200),50,(0,255,),2,cv.LINE_8)
#显⽰
cv.imshow('Circle',img)
cv.waitKey(10000)
#关闭窗⼝
cv.destroyAllWindows()
程序运⾏结果图如下:
四、绘制椭圆
4.1 了解函数ellipse()
绘制椭圆相较于其他的图形来说,参数较多。椭圆需要中⼼点坐标,长短轴长度,⾓度等参数,可以绘制圆弧。形式如下:
形式⼀:img = cv.ellipse( img, center, axes, angle, startAngle, endAngle, color[, thickness[, lineType[, shift]]] )
形式⼆:img = cv.ellipse( img, box, color[, thickness[, lineType]] )
功能:绘制椭圆
参数:
img:图像,指定在哪绘制矩形
rectangle函数opencvcenter:椭圆中⼼坐标
axes:长短轴长度,形式(长轴长度,短轴长度)
angle:⾓度,是椭圆在逆时针⽅向上的旋转⾓度
startAngle:从主轴顺时针⽅向测量的椭圆弧的起点⾓度
endAngle:从主轴顺时针⽅向测量的椭圆弧的终点⾓度
box:通过RotatedRect替代椭圆表⽰。 这意味着形式⼆绘制了⼀个旋转矩形中的椭圆。
color:线段的颜⾊。标量即为灰度值,元组形式即为彩⾊值,形式如下是(B,G,R),如(0,0,255)为红⾊。
thickness:线段的粗细。默认为1。当为闭合图形时,赋值为-1时,为填充。
lineType:线类型。默认值为cv.LINE_8。
shift:坐标点中的⼩数位数。
4.2 编程实现
代码如下:
import numpy as np
import cv2 as cv
#创建⼀个图像
img = np.zeros( (512,512,3), np.uint8)
#绘制蓝⾊填充的椭圆
cv.ellipse(img,(256,256),(100,50),0,0,360,(255,0,0),-1)
#显⽰
cv.imshow('Ellipse',img)
cv.waitKey(5000)
#关闭窗⼝
cv.destroyAllWindows()
程序运⾏结果图如下:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。