参数 | 说明 |
---|---|
img | 表示输入图像,允许单通道灰度图像或多通道彩色图像。 |
color | 表示绘制直线的颜色,(b,g,r) 格式的元组,或者表示灰度值的标量。 |
thickness | 表示绘制直线的粗细,默认值 1px,-1 表示内部填充。 |
lineType | 表示绘制直线的线性,默认为 LINE_8。 |
shift | 表示点坐标的小数位数,默认为 0。 |
值 | 描述 |
---|---|
cv.FILLED | 表示内部填充(实心图形)。 |
cv.LINE_4 | 表示 4 邻接线型。 |
cv.LINE_8 | 表示 8 邻接线型。 |
cv.LINE_AA | 表示抗锯齿线型,图像更平滑。 |
cv.line(img, pt1, pt2, color[, thickness=1, lineType=LINE_8, shift=0]) → img
参数 | 说明 |
---|---|
img | 表示输入图像,允许单通道灰度图像或多通道彩色图像。 |
pt1 | 表示线段第一个点的坐标,(x1, y1)。 |
pt2 | 表示线段第二个点的坐标,(x2, y2)。 |
color | 表示绘制直线的颜色,(b,g,r) 格式的元组,或者表示灰度值的标量。 |
thickness | 表示绘制直线的粗细,默认值 1px,-1 表示内部填充。 |
lineType | 表示绘制直线的线性,默认为 LINE_8。 |
shift | 表示点坐标的小数位数,默认为 0。 |
cv.circle(img, center, radius, color[, thickness=1, lineType=LINE_8, shift=0]) → img
参数 | 说明 |
---|---|
img | 表示输入图像,允许单通道灰度图像或多通道彩色图像。 |
center | 表示圆心点的坐标,(x, y) 格式的元组。 |
radius | 表示圆的半径,整数。 |
color | 表示绘制直线的颜色,(b,g,r) 格式的元组,或者表示灰度值的标量。 |
thickness | 表示绘制直线的粗细,默认值 1px,-1 表示内部填充。 |
lineType | 表示绘制直线的线性,默认为 LINE_8。 |
shift | 表示点坐标的小数位数,默认为 0。 |
cv.rectangle(img, pt1, pt2, color[, thickness=1, lineType=LINE_8, shift=0]) → img
参数 | 说明 |
---|---|
img | 表示输入图像,允许单通道灰度图像或多通道彩色图像。 |
pt1 | 表示矩阵第一个点的坐标,(x1, y1) 格式的元组。 |
pt2 | 表示与 pt1 成对角的矩阵第二个点的坐标,(x2, y2) 格式的元组。 |
color | 表示绘制直线的颜色,(b,g,r) 格式的元组,或者表示灰度值的标量。 |
thickness | 表示绘制直线的粗细,默认值 1px,-1 表示内部填充。 |
lineType | 表示绘制直线的线性,默认为 LINE_8。 |
shift | 表示点坐标的小数位数,默认为 0。 |
cv.ellipse(img, center, axes, angle, startAngle, endAngle, color[, thickness=1, lineType=LINE_8, shift=0]) → img
参数 | 说明 |
---|---|
img | 表示输入图像,允许单通道灰度图像或多通道彩色图像。 |
center | 表示椭圆的圆心点的坐标,(x, y) 格式的元组。 |
axes | 表示椭圆的轴长,格式为 (长轴长度的一半, 短轴长度的一半) 格式的元组。 |
angle | 表示椭圆沿水平方向逆时针旋转的角度。 |
startAngle | 表示沿长轴顺时针方向开始显示的角度。 |
endAngle | 表示沿长轴顺时针结束显示的角度。 |
color | 表示绘制直线的颜色,(b,g,r) 格式的元组,或者表示灰度值的标量。 |
thickness | 表示绘制直线的粗细,默认值 1px,-1 表示内部填充。 |
lineType | 表示绘制直线的线性,默认为 LINE_8。 |
shift | 表示点坐标的小数位数,默认为 0。 |
import cv2 as cv
def draw_line():
img = cv.imread("./images/messi5.jpg")
h,w,c = img.shape
img = cv.line(img,(0,0),(w*2,h*2),(255,0,0),10)
img = cv.line(img,(10,int(h/2)),(w - 10,int(h / 2)),(0,255,0),5)
cv.imshow('line', img)
cv.waitKey(0)
cv.destroyAllWindows()
if __name__ == "__main__":
draw_line()
import cv2 as cv
import numpy as np
def draw_circle():
img = np.zeros((100,500,3),np.uint8)
img[:] = 255
# 绘制默认1px边框的圆
cv.circle(img,(50,50),25,(255,0,0))
# 绘制填充圆 thickness
cv.circle(img,(150,50),25,(255,0,0),-1)
# 绘制填充圆 lineType
cv.circle(img,(250,50),25,(0,255,0),lineType=cv.FILLED)
# 绘制边框10px的圆
cv.circle(img,(350,50),25,(255,0,0),10)
# 绘制平滑边框10px的圆
cv.circle(img,(450,50),25,(255,0,0),10,cv.LINE_AA)
cv.imshow('circle', img)
cv.waitKey(0)
cv.destroyAllWindows()
if __name__ == "__main__":
draw_circle()
import cv2 as cv
import numpy as np
def draw_rectangle():
img = np.zeros((200,500,3),np.uint8)
img[:] = 255
# 绘制默认1px边框的矩形
cv.rectangle(img,(10,10),(50,60),(0,0,255))
# 绘制10px边框的矩形
cv.rectangle(img,(110,10),(150,60),(0,0,255),10)
# 绘制填充矩形 thickness
cv.rectangle(img,(210,10),(250,60),(0,0,255),-1)
# 绘制平滑边框10px的矩形
cv.rectangle(img,(310,10),(350,60),(0,0,255),10,cv.LINE_AA)
cv.imshow('rectangle', img)
cv.waitKey(0)
cv.destroyAllWindows()
if __name__ == "__main__":
draw_rectangle()
import cv2 as cv
import numpy as np
def draw_ellipse():
img = np.zeros((200,500,3),np.uint8)
img[:] = 255
# 绘制默认1px边框的椭圆
cv.ellipse(img,(50,50),(50,30),0,0,360,(255,0,0))
# 绘制填充椭圆 thickness
cv.ellipse(img,(150,50),(50,30),0,0,360,(255,0,0),-1)
# 绘制10px边框的椭圆
cv.ellipse(img,(260,50),(50,30),0,0,360,(255,0,0),10)
# 绘制平滑边框10px的矩形
cv.ellipse(img,(380,50),(50,30),0,0,360,(255,0,0),10,cv.LINE_AA)
# 椭圆旋转30度
cv.ellipse(img,(380,150),(50,30),30,0,360,(255,0,0),10,cv.LINE_AA)
# 半椭圆绘制
cv.ellipse(img,(260,150),(50,30),0,0,180,(255,0,0),10)
# 绘制一个圆
cv.ellipse(img,(150,150),(30,30),0,0,360,(255,0,0),10)
# 绘制半圆
cv.ellipse(img,(50,150),(30,30),0,180,360,(255,0,0),10)
cv.imshow('ellipse', img)
cv.waitKey(0)
cv.destroyAllWindows()
if __name__ == "__main__":
draw_ellipse()