OpenCV_Python API 官方文档学习_ cv2 绘制基本几何图形

官方的文档:

Goal

  • Learn to draw different geometric shapes with OpenCV
  • You will learn these functions : cv2.line()cv2.circle() , cv2.rectangle()cv2.ellipse()cv2.putText() etc

目的有2个:

1. 在OpenCV中,学习绘制不同的几何形状(矩形,圆形……)

2. 学习一系列函数: cv2.line()cv2.circle() , cv2.rectangle()cv2.ellipse()cv2.putText()……


代码:

在上述所有函数中,我们会用到一些常见的参数,下面一一讲解:

1. img : 要绘制图像的形状。

2. color :BGR形状的颜色,以元组的形式传递,例如:(255,0,0)表示蓝色。对于灰度,只需传递标量值即可。

3.thickness :设置线宽。如果是绘制圆形时候,该参数被设置成-1,那么该圆就会被填充。(封闭图形中,该参数-1表示填充该图形)。默认值为1。

4. lineType :设置线型。- -#!这儿没翻译出来。给大家把官方文档粘贴过来自行看一下。

Type of line, whether 8-connected, anti-aliased line etc. By default, it is 8-connected. cv2.LINE_AA gives anti-aliased line which looks great for curves.


绘制直线

        

要画一条线,需要传递直线的起始坐标和结束坐标。我们将创建一个黑色图像,并在其上画一条从左上角到右下角的蓝线。

代码:

import numpy as np
import cv2

# Create a black image
img = np.zeros((512,512,3), np.uint8)

# Draw a diagonal blue line with thickness of 5 px
img = cv2.line(img,(0,0),(511,511),(255,0,0),thickness=1)
cv2.imshow('123',img)
cv2.waitKey(0)

上面是效果图。也就是画坐标(0,0)到(511,511)的直线。线宽设置的是1.颜色是蓝色。


绘制矩形

 要绘制矩形,需要矩形的左上角和右下角的坐标 . 下面,我们将画一个绿色的矩形在右上角的图像.

代码:(可以在上面程序中加入下面这行代码)

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

绘制直线

绘制圆形

        要画一个圆,需要圆的中心坐标和半径。下面,将在上面的的矩形内画一个圆圈。

代码:

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


绘制椭圆

        绘制椭圆,需要传递几个参数。一个参数是中心位置(x,y)。下一个参数是轴长(长轴长、短轴长)。角度是椭圆逆时针方向旋转的角度。起始角和端角表示从长轴顺时针方向测量的椭圆弧的开始和结束。即给出0和360表示整个椭圆。下面的例子在图像的中心画一个半椭圆。详细说明见:cv2.ellipse()

代码:

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


绘制多边形

         要绘制多边形,首先需要顶点的坐标。将这些点设为一个形状为ROWSx1x2 的数组,其中ROWS是顶点的数目,并且应该是类型32。在这里,我们画了一个小的多边形,有四个顶点的黄色。

代码:

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

提示:

        1. 如果第三个参数是false,那么将得到一个折线连接所有的点,而不是一个封闭的图形。

       2. cv2.polyline()可用于绘制多条线。只需创建要绘制的所有线条的列表,并将其传递给函数。所有的线都将单独划出。与为每一行调用cv2.line()相比,绘制一组直线的方法更好、更快。


为图片添加文本信息

        要将文本放入图像中,需要设置一下的内容:

1.  要写入的文本数据

2. 要放置它的位置坐标(即数据开始的左下角)。

3.  字体类型。

4.  字体大小。

5.  参数,如颜色,厚度,线条类型等。如果想要详细查看有什么属性,可参考: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)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值