利用 OpenCV 自带的 line() 函数画直线 并显示,其函数声明如下:
cv2.line(img, pt1, pt2, color[, thickness[, lineType[, shift]]])
- img:要画的圆所在的矩形或图像
- pt1:直线起点
- pt2:直线终点
- color:线条颜色,如 (0, 0, 255) 红色,BGR
- thickness:线条宽度
- lineType:
- 8 (or omitted) : 8-connected line
- 4:4-connected line
- CV_AA - antialiased line - shift:坐标点小数点位数
画直线的完整代码如下:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
"""
@Time : 2018-11-09 21:39
@Author : jianjun.wang
@Email : alanwang6584@gmail.com
"""
import numpy as np
import cv2 as cv
img = np.zeros((320, 320, 3), np.uint8) #生成一个空灰度图像
print img.shape # 输出:(320, 320, 3)
# 起点和终点的坐标
ptStart = (60, 60)
ptEnd = (260, 260)
point_color = (0, 255, 0) # BGR
thickness = 1
lineType = 4
cv.line(img, ptStart, ptEnd, point_color, thickness, lineType)
ptStart = (260, 60)
ptEnd = (60, 260)
point_color = (0, 0, 255) # BGR
thickness = 1
lineType = 8
cv.line(img, ptStart, ptEnd, point_color, thickness, lineType)
cv.namedWindow("image")
cv.imshow('image', img)
cv.waitKey (10000) # 显示 10000 ms 即 10s 后消失
cv.destroyAllWindows()
运行后效果如下: