使用cv2.circle()在OpenCV Python中画圆的快速指南及示例

2,215 阅读2分钟

简介

在这篇文章中,我们将通过使用cv2.circle()函数在OpenCV Python中绘制圆圈的教程。你可能需要在OpenCV中画圆,以便在图像中标记一个物体或用于其他创造性目的。我们将向你解释cv2.circle()的语法和一些例子,以便让初学者更好地理解。

OpenCV Python中的圆:cv2.circle()

通过使用cv2.circle()函数,我们可以很容易地在OpenCV python中画圆。让我们看看这个函数的语法如下

语法

cv2.circle(img, center, radius, color, thickness)

  • img -它是要画圆的图像
  • center -它是圆心的坐标
  • radius- 它是圆的半径
  • color -它是圆的颜色,以RGB表示
  • thickness -它是圆线的厚度

它不返回任何东西,并在原始图像上原地画圆,这意味着圆被永久地画在图像上。

cv2.circle()在Python OpenCV中的例子

导入所需的库

在开始举例之前,让我们首先导入所需的库,如下图所示

在[1]中:

import cv2
import numpy as np
import matplotlib.pyplot as plt

%matplotlib inline

创建空图像的实用函数

我们将创建一个实用的函数来创建一个大小为512×512的空图像和3个颜色通道,我们将在上面画圆作为例子。

在[2]中:

def generate_empty_image():

    return np.ones(shape=(512,512,3), dtype=np.int16)

让我们通过下面的调用看到这个函数的作用。

在[3]中:

sample_img = generate_empty_image()
plt.imshow(sample_img)

输出[3]:

<matplotlib.image.AxesImage at 0x1e14d0dc9b0>。

例子-1:用cv2.circle()画简单的圆

在第一个例子中,我们将在空白图像上画一个简单的圆,其线条为红色,线条粗细为10。

我们生成空白图像,并将其与圆的中心坐标、圆的半径、红色的RGB值(255,0,0)和线条粗细=10一起传递给cv2.circle()。

在[4]:

image1 = generate_empty_image()

cv2.circle(img=image1, center = (250,250), radius =100, color =(255,0,0), thickness=10)

plt.imshow(image1)

输出[4]:

<matplotlib.image.AxesImage at 0x249bf69ad68>。

Example of Circle in cv2.circle()

例子-2:用cv2.circle()画填充圆

在这个例子中,我们将在空白图像上画一个填充圆。填充的颜色是绿色。

在OpenCV中,我们使用cv2.circle()函数中的厚度=-1来填充圆。

在[5]中:

image2 = generate_empty_image()

cv2.circle(img=image2, center = (250,250), radius =100, color =(0,255,0), thickness=-1)

plt.imshow(image2)

输出[5]:

<matplotlib.image.AxesImage at 0x249bf6f1dd8>。

Example of OpenCV Filled Circle in cv2.circle()

例子 - 3 : 用cv2.circle()在图像上画圆

在这个例子中,我们将在一个红色的猫图像上画一个圆。我们手动计算了圆心和半径的值,以便在猫的脸上正确地画出圆。

In[6]:

image3 = cv2.imread('cat.jpg')
cv2.circle(img=image3, center = (700,400), radius =350, color =(255,0,0), thickness=10)
plt.imshow(image3)

输出[6]:

<matplotlib.image.AxesImage at 0x249c2dde550>。

Example of Circle in OpenCV Python

总结

希望你觉得这个关于在OpenCV中画圆的快速教程很有帮助。我们涵盖了cv2 circle()函数的语法和各种例子,以便初学者更好地理解。

参考资料 -OpenCV文档