OpenCV学习笔记3-几何绘图

来源:互联网 发布:阿里云1m带宽下载速度 编辑:程序博客网 时间:2024/06/05 05:09

1.相关函数

  • cv2.line():画一条直线
    line(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) -> img

  • cv2.circle():画圆
    circle(img, center, radius, color[, thickness[, lineType[, shift]]]) -> img

  • cv2.rectangle():画长方形
    rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) -> img

  • cv2.ellipse():画椭圆
    ellipse(img, center, axes, angle, startAngle, endAngle, color[, thickness[, lineType[, shift]]]) -> img or ellipse(img, box, color[, thickness[, lineType]]) -> img

  • polylines():画多边形
    polylines(img, pts, isClosed, color[, thickness[, lineType[, shift]]]) -> img

  • cv2.putText():添加文字
    putText(img, text, org, fontFace, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]]) -> img

2.参数解释

  • img:被操作的图像,也就是一个图像矩阵(nparray矩阵)
  • pt/pts :用于画图的点,用矩阵表示
  • color:图形的颜色,三元的RGB值,需要传入一个元组,例如:(255,0,0),但对于灰度图只需要传入灰度值。
  • thickness:线条的粗细。如果给一个闭合图形设置为-1,那么这个图形就会被填充。默认值是1.
  • linetype:线条的类型,8 连接,抗锯齿等。默认情况是8 连接。cv2.LINE_AA为抗锯齿,这样看起来会非常平滑。

    3.示例


import numpy as npimport cv2#创建一个512*512的彩色黑底图img = np.zeros((512,512,3), np.uint8)#在对角线画一条蓝色的线,宽度为5pxcv2.line(img, (0,0), (511,511), (255,0,0), 5)#右上角画一个绿色的矩形cv2.rectangle(img, (384,0), (510,128), (0,255,0), 3)#画圆cv2.circle(img, (447,63), 63, (0,0,255), -1)#画椭圆:在图像中心绘制半个椭圆cv2.ellipse(img, (256,256), (100,50), 0, 0, 180, 255, -1)#画多边形:黄色的具有四个顶点的多边形pts = np.array([[10,5], [20,30], [70,20], [50,10]], np.int32)pts = pts.reshape((-1,1,2))#添加文字:在图像上添加白色文字font = cv2.FONT_HERSHEY_SIMPLEXcv2.putText(img, 'Hello World', (10,500), font, 2.6, (255,255,255), 2, cv2.LINE_AA)#显示图像cv2.imshow('example',img)cv2.waitKey(0)cv2.destroyAllWindows()