cv2.line()
, cv2.circle()
, cv2.rectangle()
, cv2.ellipse()
, cv2.putText()
etc
cv2.LINE_AA
是适合曲线的抗锯齿线.cv2.line(img, pt1, pt2, color[, thickness[, lineType[, shift]]])
我们将创建一个黑色图像,并在其上从左上角到右下角绘制一条蓝线。
代码 :
import numpy as np
import cv2
# Create a black image
img = np.zeros((512,512,3), np.uint8)
# Draw a diagonal blue line with thickness of 5 px
cv2.line(img,(0,0),(511,511),(255,0,0),5)
cv2.imshow('line',img)
cv2.waitKey()
cv2.rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]])
在图像的右上角绘制一个绿色矩形。
代码 :
import numpy as np
import cv2
# Create a black image
img = np.zeros((512,512,3), np.uint8)
cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)
cv2.imshow('line',img)
cv2.waitKey()
cv2.circle(img, center, radius, color[, thickness[, lineType[, shift]]])
在上面绘制的矩形内绘制一个圆。
代码 :
import numpy as np
import cv2
# Create a black image
img = np.zeros((512,512,3), np.uint8)
cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)
cv2.circle(img,(447,63), 63, (0,0,255), -1)
cv2.imshow('line',img)
cv2.waitKey()
cv2.ellipse(img, center, axes, angle, startAngle, endAngle, color[, thickness[, lineType[, shift]]])
在图像的中心绘制一个半椭圆。
代码 :
import numpy as np
import cv2
# Create a black image
img = np.zeros((512,512,3), np.uint8)
cv2.ellipse(img,(256,256),(100,50),0,0,180,255,-1)
cv2.imshow('line',img)
cv2.waitKey()
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)
pts = pts.reshape((-1,1,2))
cv2.polylines(img,[pts],True,(0,255,255))
cv2.imshow('line',img)
cv2.waitKey()
Note:
如果第三个参数为False,您将获得连接所有点的折线,而不是闭合形状.
cv2.polylines()可用于绘制多条线.只需创建要绘制的所有行的列表并将其传递给函数, 所有线条都将单独绘制.绘制一组行比为每行调用cv2.line()要好得多,速度更快.
向图像添加文字:cv2.putText(img, text, org, fontFace, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])
要将文本放入图像中,您需要指定以下内容。
•常规的东西,如颜色,粗细,线型等。为了更好看,建议使用lineType = cv.LINE_AA。
我们将在图像上写白色的opencv几个字母.
代码 :
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()