欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2023-12-26 12:32:57
...

官方的文档:

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)

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

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


绘制矩形

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

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

img = cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)
OpenCV_Python API 官方文档学习_ cv2 绘制基本几何图形
绘制直线

绘制圆形

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

代码:

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

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


绘制椭圆

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

代码:

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

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


绘制多边形

         要绘制多边形,首先需要顶点的坐标。将这些点设为一个形状为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))

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

提示:

        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)
OpenCV_Python API 官方文档学习_ cv2 绘制基本几何图形

相关标签: OpenCV Python

上一篇:

下一篇: