【OpenCv-Python】三、Drawing Functions in OpenCv

标签: OpenCv Python 绘图函数 中文文档 OpenCv-Python
74人阅读 评论(0) 收藏 举报
分类:

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 提供了抗锯齿线条,看起来很适合画曲线。

3.1 画线

想要画一条线,你需要确定线的开始和结束的坐标。我们将要创建一个黑色背景的图片,在图片上画一条从左上方到右下方的蓝色线条。

import numpy as np
import cv2

#创建一个黑色图片 np.zeros()返回一个填充为0的数组
img = np.zeros((512,512,3),np.uint8)

#画一条5px粗的蓝色对角线
img = cv2.line(img,(0,0),(511,511),(255,0,0),5)

3.2 画矩形

想要画一个矩形,你需要确定函数的左上角顶点和右下角顶点的坐标。这次我们会在图像右上角画一个绿色的矩形。

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

3.3 画圆

想要画一个圆,你需要确定它的圆心坐标和半径。我们在矩形中画一个圆。

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

3.4 画椭圆

画一个椭圆,我们需要输入几个参数。一个参数是椭圆中心坐标(x,y)。下一个参数是长轴和短轴的长度。椭圆沿逆时针方向旋转的角度。椭圆弧沿顺时针方向起始的角度和结束角度。例如 值为 0 和 360就是整个椭圆。如果想要了解更多,请查看 cv2.ellipse()的文档。下面的例子在图像的中心绘制了半个椭圆

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

3.5 画多边形

画一个多边形,需要确定每个顶点的坐标,用这些点的坐标构建一个大小等于函数 Row x1x2的数组,行数就是点的数目。这个数组类型必须是int32.这里画一个黄色的具有四个顶点的多边形。

pts = np.array([[20,5],[20,30],[70,20],[50,100]],np.int32) #首尾相连
pts = pts.reshape((-1,1,2))
img = cv2.polylines(img,[pts],True,(0,255,255))

注意

如果第三个参数是False ,我们得到的多边形是不闭合的(首尾不相连)。

注意

cv2.polylines() 可以被用来画很多条线。只要把想要画的线放在一个列表中,将这个列表传给函数就行了。每条线都会被独立绘制,
这比用cv2.line()一条一条的绘制要快多了。

3.6 在图片上添加文字

在图片上绘制文字,你需要设置下列参数:

  • 你要绘制的文字
  • 你要绘制的位置
  • 字体的类型(通过查看 cv2.putText() 的文档找到支持的字体)
  • 字体的大小
  • 字体的一般属性如颜色,粗细,线条的类型等。为了更好看一点推荐使用linetype = cv2.LINE_AA

在图像上绘制白色的 OpenCv

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

警告

所有的绘图函数的返回值都是 None ,所以不能使用 img = cv2.line(img,(0,0),(511,511),(255,0,0),5)

结果

所以现在是时候看看我们画的最终结果了。通过你前面学习到的知识把它显示出来吧。

cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
查看评论

opencv之画图(Drawing Functions in OpenCV )

目标: - 学习用opencv画不同的几何图形 - 将能学习到直线line(),圆circle(),长方形rectangle(),椭圆ellipse(),文字输出putText()等函数。 代码...
  • legalhighhigh
  • legalhighhigh
  • 2017-12-06 21:17:36
  • 68

3-Drawing+Functions+in+OpenCV

import numpy as np import cv2 as cv 1、画直线 第一个参数是画布,即直线画在哪里;第二个参数为之前的起始位置;第三个参数为终止位置;第四个参数为直线的颜色;...
  • Yeah_snow
  • Yeah_snow
  • 2018-03-27 10:40:14
  • 8

OpenCV官方教程中文版(For+Python)

  • 2017年12月25日 11:16
  • 6.11MB
  • 下载

Gizmos 辅助线框

Gizmos are used to give visual debugging or setup aids in the scene view. Gizmos是用于在场景视图可视化调试或辅助设置。...
  • wuqinxiang
  • wuqinxiang
  • 2012-09-14 15:33:28
  • 711

pip install opencv-python遇到的错误

Found existing installation: numpy 1.8.0rc1 DEPRECATION: Uninstalling a distutils installed pro...
  • xx352890098
  • xx352890098
  • 2017-12-19 13:11:12
  • 724

OpenCV-Python-Tutorial[3]

参考:https://github.com/makelove/OpenCV-Python-Tutorialch21-轮廓Contours 12 怎样绘制轮廓py 4 轮廓-更多函数py 43-形状匹配...
  • wc781708249
  • wc781708249
  • 2017-11-14 11:04:52
  • 577

OpenCV-Python中文教程

  • 2017年12月25日 13:27
  • 8.81MB
  • 下载

OpenCV-Python Tutorials Documentation

  • 2017年09月05日 14:39
  • 4.55MB
  • 下载

opencv-python 官方教程文档

  • 2017年12月21日 12:40
  • 8.42MB
  • 下载

opencv-Python是什么?

先来看百度百科的解释:OpenCV的全称是:Open Source Computer Vision Library。OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linu...
  • caimouse
  • caimouse
  • 2017-03-13 16:55:47
  • 1725
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 13万+
    积分: 3328
    排名: 1万+
    微信公众号
    课程设计、视频资源、有料趣文
    Worldhello


    微信公众号:Worldhello
    期待您的关注!
    博客专栏
    最新评论