Python-OpenCV 笔记7 -- 绘图(Draw)

Python-OpenCV 笔记7 – 绘图(Draw)


1、画直线 – cv2.line()


函数原型:

cv2.line(img, pt1, pt2, color[, thickness[, lineType[, shift]]])
  • img:需要绘制的图像
  • pt1:直线的起点(x, y)
  • pt1:直线的终点(x, y)
  • color:线的颜色(x, x, x)
  • thickness:线的粗细,
  • lineType:线型,cv2.FILLED、cv2.LINE_4、cv2.LINE_8

实例:

cv2.line(img,(0,0),(500,500),(255,0,0),2)
cv2.imshow('画直线', img)

2、画矩形 – cv2.rectangle()


函数原型:

cv2.rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]])
  • pt1:矩形左上角点(x, y)
  • pt1:直线右下角点(x, y)
  • thickness:宽度大于0,标识边线宽度;小于0,画实心矩形

实例:

cv2.rectangle(img,(100,50),(200,150),(0,255,0),3)
cv2.imshow('画矩形', img)

3、画圆 – cv2.circle()


函数原型:

cv2.circle(img, center, radius, color[, thickness[, lineType[, shift]]])
  • center:圆心(x, y)
  • radius:半径 x
  • thickness:宽度大于0,标识边线宽度;小于0,画实心圆

实例:

cv2.circle(img, (200,200), 50, (0,0,255), -1)
cv2.imshow('画圆', img)

4、画椭圆 – cv2.ellipse()


函数原型:

cv2.ellipse(img, center, axes, angle, startAngle, endAngle, color[, thickness[, lineType[, shift]]])
  • center:椭圆心(x, y)
  • axes:椭圆长短半轴长 (l, s)
  • angle:椭圆相对于x轴的旋转角度
  • startAngle:椭圆起始角度
  • endAngle:椭圆的终止角度
  • thickness:宽度大于0,标识边线宽度;小于0,画实心椭圆

实例:

cv2.ellipse(img, (256,256), (100,50), 0, 0, 180, 255, -1)
cv2.imshow('画椭圆', img)

5、画多边形 – cv2.polylines()


函数原型:

cv2.polylines(img, pts, isClosed, color[, thickness[, lineType[, shift]]])
  • pts:多边形的拐点,numpy 数组
  • isClosed:多边形是否要闭合
  • thickness:宽度大于0,标识边线宽度;小于0,画实心多边形

实例:

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('画多边形', img)

6、画文字 – cv2.putText()


函数原型:

cv2.putText(img, text, org, fontFace, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])
  • text:文字的字符串
  • org:文字放置位置的左下点(x, y)
  • fontFace:字体类型
    • cv2.FONT_HERSHEY_SIMPLEX:正常尺寸的sans-serif字体
    • cv2.FONT_HERSHEY_SPLAIN:小尺寸的sans-serif字体
    • cv2.FONT_HERSHEY_COMPLEX:正常尺寸的serif字体
    • cv2.FONT_HERSHEY_SCREIPT_SIMPLEX:手写字体风格
  • fontScale:字体的缩放因子
  • thickness:宽度大于0,标识边线宽度;小于0,画实心矩形

实例:

font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,'OpenCV',(10,500), font, 4,(255,255,255),2,cv.LINE_AA)
cv2.imshow('画文字', img)

你可能感兴趣的:(Python-OpenCV)