OpenCV画图中易忘的函数
抽空,顺便整理一下资料。。。opencv中经常会用到几个画图函数,但Python的接口中给出的参数含义有时候不是很容易懂,所以记录一下。
绘制多边形cv2.polylines
函数定义:
cv2.polylines(img, pts, isClosed, color[, thickness[, lineType[, shift]]])
要绘制多边形,首先需要顶点坐标.将这些点转换为rowsx1x2形状的数组,其中rows是顶点数,它应该是int32类型。
示例:
import numpy as np
import cv2
# Create a black image
img = np.zeros((512,512,3), np.uint8)
pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32) # 每个点都是(x, y)
pts = pts.reshape((-1,1,2))
cv2.polylines(img,[pts],True,(0,255,255))
cv2.imshow('line',img)
cv2.waitKey()
如果第三个参数为False,您将获得连接所有点的折线,而不是闭合形状。
cv2.polylines()可用于绘制多条线.只需创建要绘制的所有行的列表并将其传递给函数, 所有线条都将单独绘制.绘制一组行比为每行调用cv2.line()要好得多,速度更快.
给图像中添加文字cv2.putText
函数定义:
cv2.putText(img, text, org, fontFace, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])
参数含义:
text:要写入的文本数据
org:您想要放置它的位置坐标(即数据开始的左下角)。
fontFace:字体类型(检查cv2.putText()文档以获取支持的字体)
fontScale:字体比例(指定字体大小)
•常规的东西,如颜色,粗细,线型等。为了更好看,建议使用lineType = cv.LINE_AA。
示例:
import numpy as np
import cv2
# Create a black image
img = np.zeros((512,512,3), np.uint8)
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,'OpenCV',(10,500), font, 4,(255,255,255),2,cv2.LINE_AA)
cv2.imshow('show',img)
cv2.waitKey()