opencv中的绘图函数

目标
  • 学习使用 OpenCV 绘制不同几何图形
  • 你将会学习到这些函数:cv2.line(),cv2.circle(),cv2.rectangle() ,cv2.ellipse() ,cv2.putText() 等。

代码
上面所有的这些绘图函数需要设置下面这些参数:
  • img:你想要绘制图形的那幅图像。
  • color:形状的颜色。以 RGB 为例,需要传入一个元组,例如: (255,0,0 )代表蓝色。对于灰度图只需要传入灰度值。
  • thickness:线条的粗细。如果给一个闭合图形设置为 -1,那么这个图形就会被填充。默认值是 1.
  • linetype:线条的类型,8 连接,抗锯齿等。默认情况是 8 连接。cv2.LINE_AA为抗锯齿,这样看起来会非常平滑。

6.1 画线
  要画一条线,你只需要告诉函数这条线的起点和终点。我们下面会画一条从左上方到右下角的蓝色线段。

import numpy as np
import cv2
img = np.zeros((512, 512, 3), np.uint8)
cv2.line(img, (0, 0), (511, 511), (255, 0, 0), 5)
cv2.imshow("Img", img)
cv2.waitKey(0)
cv2.destroyAllWindow()

出现的问题:开始没有写最后三行,没有出现窗口显示

这是黑色的底,我们的画布,我把窗口名叫做img

np.zeros()有两个参数,一个是创建的图片矩阵大小,另一个是数据类型

512,512是像素(第一个512像素高,第二个是512像素宽),3指BGR三种颜色

uint8是用0-255表示所有颜色。

  1. cv2.line(img,(0,0),(511,511),(255,0,0),5)

这个函数有5个参数,img是图像名称,起点坐标,终点坐标,(255,0,0)是蓝色,5是线的宽度

会画一条 从左上方到右下角的蓝色线段。

画线两要素:起点与终点

画矩形

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

这个函数有5个参数,图像名称,左上顶点坐标,右下顶点坐标,(0,255,0)是绿色,线宽为3

右上角画一个绿色的矩形

画矩形两要素:左上顶点和右下顶点坐标。

画圆

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

这个函数有5个参数,图像名称,圆心坐标,半径63,(0,0,255)红色,线宽为-1,当线宽-1时表示封闭图形的颜色填充。

在画的矩形中画一个圆,半径为128的一般63

画圆两要素:指定圆形的中心点坐标和半径大小

画椭圆

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

这个函数有8个参数:图像名称,中心点坐标,长轴长度,短轴长度,旋转角度,图像出现的部分(长轴顺时针方向起始的角度和结束角度)0,180是下半个椭圆,颜色数组这里255是蓝色,线宽

椭圆要素:1.是中心点的位置坐标 2.长轴和短轴的长度 3.椭圆沿逆时针方向旋转的角度 4.长轴顺时针方向起始的角度和结束角度

画多边形

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

这个函数有5个参数:图像名称,顶点列表(这个多边形在array中有四个顶点),True表示闭合,(0,255,255)是黄色,3是线宽

在图片上添加文字

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

这个函数有八个参数,图像名称,字符串,坐标,字体,字号,(255,255,255)白色、线宽2

posted @ 2019-11-22 12:48  Tomorrow1126  阅读(275)  评论(0编辑  收藏  举报