OpenCV-Python基本绘画功能

  OpenCV作为一种强大的图形图像处理工具,也提供了许多绘制不同集合图形的功能。下面我们一一道来。为了更好地解释下面提到的方法的功能,我们约定一下几个参数的表述:

  • img : 我们要绘制形状的图片
  • color : 我们要绘制的形状的RGB颜色,例如: (255,0,0)表示红色色。
  • thickness : 线条宽度。默认为1.
  • lineType : 线条类型。

1. 绘制线条

  调用绘制线条方法之前,需要传入起点和终点的坐标。下面我们展示一个从黑色图片的左上角到右下角画蓝色线条的例子。示例代码如下:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sat Feb 10 15:46:43 2018

@author: Quan
"""
import numpy as np
import cv2
from matplotlib import pyplot as plt

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

# Draw a diagonal blue line with thickness of 5 px
cv2.line(img,(0,0),(511,511),(0,0,255),5)
plt.imshow(img)

  运行结果如下:


OpenCV-Python基本绘画功能_第1张图片
drawLine.png

2. 绘制矩形

  OpenCV中利用方法cv2.rectangle()绘制一个矩形,该方法需要确定矩形的左上角和右下角,下面是个简单的示例:

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

运行结果如下:


OpenCV-Python基本绘画功能_第2张图片
rectangle.png

3. 绘制圆形

  OpenCV中利用方法cv2.circle()绘制一个圆形,该方法需要确定圆形的圆心的位置以及半径的长度,下面是个简单的示例:

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

运行结果如下:


OpenCV-Python基本绘画功能_第3张图片
circle.png

4. 绘制椭圆

  OpenCV中利用方法cv2. ellipse()绘制一个椭圆,该方法需要确定如下参数:中心位置、长轴长度、短轴长度、旋转角度、开始合结束角度(0~360度)、颜色、是否填充等,下面是个简单的示例,展示了三种不同形式的椭圆:

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

运行结果如下:


OpenCV-Python基本绘画功能_第4张图片
ellipse.png

5. 绘制多边形

  OpenCV中利用方法cv2. polylines()绘制一个多边形,在绘制多边形前,我们需要明确多边形每个定点的坐标,并将每个顶点按照链接顺序进行排序,否则顶点的顺序不同,得到的多边形的形状也不一样,下面展示了同样的顶点不同的绘制结果。
示例1:

pts = np.array([[470,250],[200,30],[70,200],[100,400]], np.int32)
pts = pts.reshape((-1,1,2))
cv2.polylines(img,[pts],True,(0,255,255))
plt.imshow(img)

示例1运行结果如下:


OpenCV-Python基本绘画功能_第5张图片
polygon.png

示例2:

pts = np.array([[470,250],[70,200],[200,30],[100,400]], np.int32)
pts = pts.reshape((-1,1,2))
cv2.polylines(img,[pts],True,(0,255,255))
plt.imshow(img)

示例2运行结果如下:


OpenCV-Python基本绘画功能_第6张图片
polygon2.png

6. 绘制文字

  OpenCV中利用方法cv2. putText()来绘制文字,在绘制文字之前,需要明确以下几项:

  • 文字内容。
  • 起始位置,即文字左下角的坐标。
  • 字体类型,cv2定义了大量可以使用的字体类型,具体可以参考相关文档。
  • 字体大小。
  • 颜色,线型等。
    下面是个简单的实例:
cv2.putText(img,'Quan',(10,500), cv2.FONT_HERSHEY_COMPLEX_SMALL, 4,(255,255,255),2,cv2.LINE_AA)

plt.imshow(img)

运行结果如下:


OpenCV-Python基本绘画功能_第7张图片
text.png

你可能感兴趣的:(OpenCV-Python基本绘画功能)