- OpenCV Python 教程
- OpenCV Python - 首页
- OpenCV Python - 概述
- OpenCV Python - 环境配置
- OpenCV Python - 读取图像
- OpenCV Python - 写入图像
- OpenCV Python - 使用 Matplotlib
- OpenCV Python - 图像属性
- OpenCV Python - 按位运算
- OpenCV Python - 形状和文本
- OpenCV Python - 鼠标事件
- OpenCV Python - 添加轨迹条
- OpenCV Python - 调整大小和旋转
- OpenCV Python - 图像阈值
- OpenCV Python - 图像滤波
- OpenCV Python - 边缘检测
- OpenCV Python - 直方图
- OpenCV Python - 颜色空间
- OpenCV Python - 图像变换
- OpenCV Python - 图像轮廓
- OpenCV Python - 模板匹配
- OpenCV Python - 图像金字塔
- OpenCV Python - 图像加法
- OpenCV Python - 图像混合
- OpenCV Python - 傅里叶变换
- OpenCV Python - 捕捉视频
- OpenCV Python - 播放视频
- OpenCV Python - 从视频中提取图像
- OpenCV Python - 从图像生成视频
- OpenCV Python - 人脸检测
- OpenCV Python - 均值漂移/CamShift
- OpenCV Python - 特征检测
- OpenCV Python - 特征匹配
- OpenCV Python - 数字识别
- OpenCV Python 资源
- OpenCV Python - 快速指南
- OpenCV Python - 资源
- OpenCV Python - 讨论
OpenCV Python - 绘制形状和文本
在本章中,我们将学习如何使用 OpenCV-Python 在图像上绘制形状和文本。让我们首先了解如何在图像上绘制形状。
在图像上绘制形状
我们需要了解 OpenCV-Python 中必要的函数,这些函数可以帮助我们在图像上绘制形状。
函数
OpenCV-Python 包(称为 cv2)包含以下函数来绘制相应的形状。
| 函数 | 描述 | 命令 |
|---|---|---|
| cv2.line() | 绘制连接两点的线段。 | cv2.line(img, pt1, pt2, color, thickness) |
| cv2.circle() | 在给定点为中心的图像上绘制给定半径的圆。 | cv2.circle(img, center, radius, color, thickness) |
| cv2.rectangle | 绘制以给定点为左上角和右下角的矩形。 | cv2.rectangle(img, pt1, pt2, color, thickness) |
| cv2.ellipse() | 绘制简单的或粗的椭圆弧或填充椭圆扇形。 | cv2.ellipse(img, center, axes, angle, startAngle, endAngle, color, thickness) |
参数
上述函数的常用参数如下:
| 序号 | 函数及描述 |
|---|---|
| 1 | img 要在其中绘制形状的图像。 |
| 2 | color 形状的颜色。对于 BGR,将其作为元组传递。对于灰度图像,只需传递标量值。 |
| 3 | thickness 线条或圆等的粗细。如果对于封闭图形(如圆形)传递 -1,则将填充该形状。 |
| 4 | lineType 线条类型,无论是 8 连通、抗锯齿线等。 |
示例
以下示例显示如何在图像顶部绘制形状。相应的程序如下所示:
import numpy as np
import cv2
img = cv2.imread('LENA.JPG',1)
cv2.line(img,(20,400),(400,20),(255,255,255),3)
cv2.rectangle(img,(200,100),(400,400),(0,255,0),5)
cv2.circle(img,(80,80), 55, (255,255,0), -1)
cv2.ellipse(img, (300,425), (80, 20), 5, 0, 360, (0,0,255), -1)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出
绘制文本
cv2.putText() 函数用于在图像上写入文本。相应的命令如下:
img, text, org, fontFace, fontScale, color, thickness)
字体
OpenCV 支持以下字体:
| 字体名称 | 字体大小 |
|---|---|
| FONT_HERSHEY_SIMPLEX | 0 |
| FONT_HERSHEY_PLAIN | 1 |
| FONT_HERSHEY_DUPLEX | 2 |
| FONT_HERSHEY_COMPLEX | 3 |
| FONT_HERSHEY_TRIPLEX | 4 |
| FONT_HERSHEY_COMPLEX_SMALL | 5 |
| FONT_HERSHEY_SCRIPT_SIMPLEX | 6 |
| FONT_HERSHEY_SCRIPT_COMPLEX | 7 |
| FONT_ITALIC | 16 |
示例
以下程序在著名足球运动员莱昂内尔·梅西的照片上添加了一个文本标题。
import numpy as np
import cv2
img = cv2.imread('messi.JPG',1)
txt="Lionel Messi"
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,txt,(10,100), font, 2,(255,255,255),2,cv2.LINE_AA)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出
广告