OpenCV-Python快速入门系列14图像几何形状绘制

0前言

在图像处理与计算机视觉中,经常需要在图像上绘制形状、文本等内容来标注数据或制作示例图片。OpenCV 提供了丰富的图形绘制函数,使用简单且功能强大。本文将通过代码示例,详细介绍如何使用 OpenCV 绘制矩形、圆、直线以及添加文本。

1代码解析

本次代码实现了如下几项功能:

  1. 绘制矩形(填充与不填充)
  2. 绘制圆(空心与实心)
  3. 绘制直线
  4. 添加文本

2绘制矩形

cv.rectangle(image, (0, 0), (50, 50), (0, 0, 255), -1)
cv.rectangle(image, (50, 50), (100, 200), (0, 255, 0), 1)
  • (0, 0)(50, 50) 定义矩形的对角顶点(左上角和右下角)。
  • (0, 0, 255) 表示矩形颜色为红色(BGR 格式)。
  • -1 表示填充矩形,1 表示线条宽度。

3绘制圆形

cv.circle(image, (100, 100), 100, (255, 0, 0), 2, cv.LINE_8, 0)
cv.circle(image, (300, 300), 100, (255, 0, 0), -1, cv.LINE_8, 0)
  • (100, 100) 是圆心坐标。
  • 100 是半径。
  • (255, 0, 0) 表示蓝色。
  • 2 为线条宽度,-1 表示填充圆。

4绘制直线

cv.line(image, (100, 100), (200, 200), (0, 0, 255), 2)
  • 起点为 (100, 100),终点为 (200, 200)
  • (0, 0, 255) 表示红色,2 是线条宽度。

5添加文本

cv.putText(image, "Hello OpenCV", (50, 150), cv.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2, cv.LINE_AA)
  • "Hello OpenCV" 是文本内容。
  • (50, 150) 是文本左下角坐标。
  • cv.FONT_HERSHEY_SIMPLEX 是字体类型。
  • 1 是字体缩放因子。
  • (255, 255, 255) 表示白色文本。
  • 2 是线条粗细。

完整代码

import cv2 as cv
import numpy as np

def drew_demo():
    # 创建一个黑色画布,大小为 512x512,3 通道(RGB)
    image = np.zeros((512, 512, 3), np.uint8)
    
    # 绘制红色矩形,并填充整个矩形(宽度设置为 -1 表示填充)
    cv.rectangle(image, (0, 0), (50, 50), (0, 0, 255), -1)
    
    # 绘制绿色矩形,不填充(线条宽度设置为 1)
    cv.rectangle(image, (50, 50), (100, 200), (0, 255, 0), 1)
    
    # 绘制蓝色空心圆,圆心为 (100, 100),半径为 100,线条宽度为 2
    cv.circle(image, (100, 100), 100, (255, 0, 0), 2, cv.LINE_8, 0)
    
    # 绘制蓝色实心圆,圆心为 (300, 300),半径为 100,线条宽度为 -1 表示填充
    cv.circle(image, (300, 300), 100, (255, 0, 0), -1, cv.LINE_8, 0)
    
    # 绘制一条红色直线,起点为 (100, 100),终点为 (200, 200),线条宽度为 2
    cv.line(image, (100, 100), (200, 200), (0, 0, 255), 2)
    
    # 在图像上添加文本 "Hello OpenCV",字体为 FONT_HERSHEY_SIMPLEX,缩放因子为 1,颜色为白色
    cv.putText(image, "Hello OpenCV", (50, 150), cv.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2, cv.LINE_AA)
    
    # 显示绘制后的图像
    cv.imshow("Original Image", image)
    cv.waitKey(0)
    cv.destroyAllWindows()

# 调用函数
drew_demo()

运行结果

图片[1]-OpenCV-Python快速入门系列14图像几何形状绘制-天煜博客
© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容