【OpenCV入门学习--python】绘图函数

源代码:
(查看教材《OpenCV-Python 中文教程》段力辉 译)

import numpy as np
import cv2
# Create a black image
img=np.zeros((512,512,3), np.uint8)#将所有像素点的各通道数值赋0
#其中“3”是三个通道的意思



#np.zeros函数用于创建一个数值全为0的矩阵,np.ones用于创建一个数值全为1的矩阵
# Draw a diagonal blue line with thickness of 5 px
cv2.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)
# 画椭圆(需要输入的一个参数是中心点的位置坐标。
下一个参数是长轴和短轴的长度。椭圆沿逆时针方向旋转的角度。椭圆弧演顺时针方向起始的角度和结束角度,如果是 0360,就是整个椭圆。)

pts=np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)# 画多边形
pts=pts.reshape((-1,1,2))
# 这里 reshape 的第一个参数为-1, 表明这一维的长度是根据后面的维度的计算出来的。#画多边形,需要指明每个顶点的坐标。用这些点的坐标构建一个大小等于行数 X1X2 的数组,行数就是点的数目。这个数组的数据类型必须为 int32。这里画一个黄色的具有四个顶点的多边形。

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

winname = 'example'
cv2.namedWindow(winname)
cv2.imshow(winname, img)
cv2.waitKey(0)
cv2.destroyWindow(winname)

运行结果
【OpenCV入门学习--python】绘图函数_第1张图片
问题:所画的多边形没有显示出来
解决:(查看CSDN网站https://blog.csdn.net/qq_44109682/article/details/118229813)
源代码中只写了多边形的顶点坐标,没有写画多边形的函数:

cv2.polylines(img,[pts],True,(0,255,255),2)

关于polylines函数

polylines(img, pts, isClosed, color, thickness=None, lineType=None, shift=None)

参数:
img(array):为ndarray类型(可以为cv.imread)直接读取的数据
pts(array):为所画多边形的顶点坐标,举个简单的例子:当一张图片需要有多个四边形时,该数组ndarray的shape应该为(N,4,2)
isClosed(bool):所画四边形是否闭合,通常为True
color(tuple):RGB三个通道的值
thickness(int):画线的粗细
shift:顶点坐标中小数的位数

【OpenCV入门学习--python】绘图函数_第2张图片

你可能感兴趣的:(OpenCV,opencv,python,学习)