📜  使用 OpenCV 在图像上绘制几何形状(1)

📅  最后修改于: 2023-12-03 15:22:15.200000             🧑  作者: Mango

使用 OpenCV 在图像上绘制几何形状

前言

OpenCV 是一个强大的计算机视觉库,它可以在图像和视频处理中用于各种常见的任务,例如对象识别、特征检测和图像分割等。

在本文中,我们将介绍如何使用 OpenCV 在图像上绘制几何形状。这可能是计算机视觉中最基本的任务之一,但它也是最常用的任务之一。我们将涵盖以下几个形状:

  • 线段
  • 矩形
  • 圆形
  • 椭圆
  • 多边形
准备工作

在开始之前,请确保您已经安装并配置好了 OpenCV 库。

import cv2
import numpy as np

# 创建 512x512 的空白图像
img = np.zeros((512, 512, 3), dtype=np.uint8)
绘制线段

要在图像上绘制线段,我们可以使用 OpenCV 的 cv2.line() 函数。这个函数需要四个参数:

  • 图像
  • 起始点坐标
  • 终止点坐标
  • 线段颜色(R,G,B)
# 在图像上绘制从 (0,0) 到 (511,511) 的红色线段
cv2.line(img, (0, 0), (511, 511), (0, 0, 255), thickness=5)

# 显示图像
cv2.imshow('line', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
绘制矩形

要在图像上绘制矩形,我们可以使用 OpenCV 的 cv2.rectangle() 函数。这个函数需要五个参数:

  • 图像
  • 左上角点坐标
  • 右下角点坐标
  • 线段颜色(R,G,B)
  • 线段宽度
# 在图像上绘制一个红色的矩形
cv2.rectangle(img, (100, 100), (300, 300), (0, 0, 255), thickness=5)

# 显示图像
cv2.imshow('rectangle', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
绘制圆形

要在图像上绘制圆形,我们可以使用 OpenCV 的 cv2.circle() 函数。这个函数需要四个参数:

  • 图像
  • 圆心坐标
  • 半径
  • 线段颜色(R,G,B)
  • 线段宽度
# 在图像上绘制一个蓝色的圆形
cv2.circle(img, (256, 256), 100, (255, 0, 0), thickness=5)

# 显示图像
cv2.imshow('circle', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
绘制椭圆

要在图像上绘制椭圆,我们可以使用 OpenCV 的 cv2.ellipse() 函数。这个函数需要七个参数:

  • 图像
  • 中心坐标
  • 长短轴长度
  • 旋转角度
  • 起始角度(以度为单位)
  • 终止角度(以度为单位)
  • 椭圆颜色(R,G,B)
  • 线段宽度
# 在图像上绘制一个绿色的椭圆
cv2.ellipse(img, (256, 256), (100, 50), 45, 0, 360, (0, 255, 0), thickness=5)

# 显示图像
cv2.imshow('ellipse', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
绘制多边形

要在图像上绘制多边形,我们可以使用 OpenCV 的 cv2.polylines() 函数。这个函数需要四个参数:

  • 图像
  • 多边形顶点坐标列表
  • 是否闭合多边形(True 或 False)
  • 多边形颜色(R,G,B)
  • 线段宽度
# 定义一个三角形
pts = np.array([[100, 100], [300, 100], [200, 300]], np.int32)

# 在图像上绘制一个黄色的三角形
cv2.polylines(img, [pts], True, (0, 255, 255), thickness=5)

# 显示图像
cv2.imshow('polyline', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
总结

在本文中,我们介绍了如何使用 OpenCV 在图像上绘制几何形状。这些形状包括线段、矩形、圆形、椭圆和多边形。每个形状都有对应的 OpenCV 函数,它们都可以使用显式的参数来指定形状的细节。