python OpenCV学习笔记(三):画图

文章目录

  • 1.创建一个黑色图片
  • 2.画一条线
  • 3.画一个矩形
  • 4.画一个圆
  • 5.画椭圆
  • 6.画多边形
  • 7.添加文字

1.创建一个黑色图片

import numpy as np
import cv2 as cv

# Create a black image
img = np.zeros((512, 512, 3), np.uint8)

np.zeros()函数创建一个都是0的多元数组,可以理解为512行、512列、每格中有三个0,引入cv.imshow,之后,是一个512*512的黑色图片,每格中的三个0对应BGR,改变数值则会改变颜色

2.画一条线

cv.line(img, (0,0), (511,511), (255,0,0), 5)

cv.line(img, pt1, pt2, color[, thickness[, lineType[, shift]]])

  • pt1:为起始点坐标
  • pt2:为终止点坐标
  • color:颜色
  • thickness:线宽度
  • lineType:线类型
  • shift:按比例缩小(整数类型,>=0,默认为0,填入数字,坐标值按比例缩小,比如填入1,则所有坐标值/2^1)

cv.line(img, (10,500), (500,10), (255,0,0), 5, cv.LINE_AA, 1)
等价于
cv.line(img, (5,250), (250,5), (255,0,0), 5, cv.LINE_AA, 0)

3.画一个矩形

cv.rectangle(img, (384,0), (510,128), (0,255,0), 3)

cv.rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]] )

  • pt1:矩形的一个顶点坐标
  • pt2:与pt1相对的对角点的坐标

4.画一个圆

cv.circle(img,(447,63), 63, (0,0,255), -1)

cv.circle(img, center, radius, color[, thickness[, lineType[, shift]]] )

  • center:圆心坐标
  • radius:半径

5.画椭圆

cv.ellipse(img,(256,256),(100,50),0,0,180,(255,0,0), -1)

cv.ellipse(img, center, axes, angle, startAngle, endAngle, color[, thickness[, lineType[, shift]]])

  • axes:轴,参数为元组,(x轴半径,y轴半径)
  • angle:角度,设定初始角度,相对于水平向右x轴的角度
  • startAngle:相对于angle的起始角度
  • endAngle:相对于angle的终止角度
  • thickness:如果>=0,则是一个椭圆线,否则是一个填充的椭圆

6.画多边形

pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
pts = pts.reshape((-1,1,2))
cv.polylines(img,[pts],True,(0,255,255))

cv.polylines(img, pts, isClosed, color[, thickness[, lineType[, shift]]])
reshape()函数,详见https://www.zhihu.com/question/52684594

7.添加文字

font = cv.FONT_HERSHEY_SIMPLEX
cv.putText(img, 'OpenCV', (10,500), font, 4, (255,255,255), 2, cv.LINE_AA)

cv.putText(img, text, org, fontFace, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])

  • org:图像文本字符串的左下角坐标
  • fontFace:字体类型,详见cv::HersheyFonts
  • bottomLeftOrigin:当正确的时候,图像数据的来源就在左下角。否则,它就在左上角。默认为False。True相对于False,在x轴向下翻转。

你可能感兴趣的:(语法基础)