OpenCV circle图像上画圆

本文详细介绍了OpenCV中用于图像处理的两个关键绘图函数:circle与rectangle。通过示例程序展示了如何使用circle函数在图像上绘制指定颜色、位置和大小的圆形,包括参数解释及代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OpenCV中circle与rectangle函数显示,只不过rectangle在图像中画矩形,circle在图像中画圆。

 

 

void circle(Mat  img, Point center, int radius, Scalar color, int thickness=1, int lineType=8, int shift=0)

img为源图像

center为画圆的圆心坐标

radius为圆的半径

color为设定圆的颜色,规则根据B(蓝)G(绿)R(红)

thickness 如果是正数,表示组成圆的线条的粗细程度。否则,表示圆是否被填充

line_type 线条的类型。默认是8

shift 圆心坐标点和半径值的小数点位数

 

示例程序:

#include <iostream>  

#include <opencv2/core/core.hpp>

#include <opencv2/imgproc/imgproc.hpp>

#include <opencv2/opencv.hpp>

using namespace std;

using namespace cv;


int main()

{

    Mat src = imread("C:\\tupian\\test1.jpg", 3);

    circle(src, Point(src.cols/ 2, src.rows / 2), 30, Scalar(0, 0, 255));

    imshow("src", src);

    waitKey(0);

    return 0;

}

 

 

<think>好的,用户想了解如何使用Python和OpenCV绘制圆形。首先,我需要回忆OpenCV中绘制图形的相关函数。记得OpenCV有一个cv2.circle()函数,专门用来画圆。需要确认参数是否正确,比如图像、圆心坐标、半径、颜色、线宽等。 接下来,应该给出一个简单的示例代码,展示如何读取图像或者在空白图像画圆。可能用户需要知道如何创建一个空白画布,所以用np.zeros生成一个全黑的图像,然后绘制白色或其他颜色的圆。同时,要提到参数的具体含义,比如BGR颜色格式,线宽为负数时表示填充圆形。 还要注意提醒用户安装OpenCV库,使用pip install opencv-python。可能用户会遇到路径问题,所以在imread的时候要确保图片路径正确,或者建议用绝对路径。此外,保存图像使用cv2.imwrite,显示图像用cv2.imshow,但要注意在脚本中可能需要等待按键或者处理窗口关闭的问题。 另外,根据用户提供的引用,特别是引用[5]中的形态学操作,可能用户有图像分割的背景,可以提到绘制圆在分割结果中的应用,比如标记特定区域。不过用户的问题比较直接,先专注于基本用法。 需要检查是否有常见的错误,比如颜色参数的顺序是BGR而不是RGB,线宽的单位,坐标是整数类型等。还要说明函数的返回值,虽然cv2.circle是原地操作,但一般不需要赋值。 最后,生成相关问题,可能涉及其他形状的绘制、参数调整、动态绘制或者与图像处理步骤结合的问题。确保问题相关且有帮助,引导用户深入学习。</think>### 使用OpenCV在Python中绘制圆形的方法 #### 1. 基本语法 OpenCV提供了`cv2.circle()`函数用于绘制圆形,其语法为: $$cv2.circle(img, center, radius, color[, thickness[, lineType]])$$ 其中: - `img`: 输入图像(numpy数组) - `center`: 圆心坐标,格式为`(x, y)`的元组 - `radius`: 圆的半径(像素) - `color`: BGR颜色值,如`(255,0,0)`表示蓝色 - `thickness`: 线宽(若为负数则填充圆形)[^4] #### 2. 实现步骤 ```python import cv2 import numpy as np # 创建黑色背景画布(512x512像素,3通道) img = np.zeros((512, 512, 3), np.uint8) # 绘制红色空心圆(圆心(200,200),半径100) cv2.circle(img, (200, 200), 100, (0, 0, 255), 2) # 绘制绿色实心圆(圆心(400,400),半径50) cv2.circle(img, (400, 400), 50, (0, 255, 0), -1) # 保存并显示结果 cv2.imwrite('circles.jpg', img) cv2.imshow('Circles', img) cv2.waitKey(0) cv2.destroyAllWindows() ``` #### 3. 关键参数说明 - 坐标系统:左上角为原点`(0,0)`,X轴向右,Y轴向下 - 颜色空间:BGR格式(不同于常规RGB) - 线宽设置:`thickness=2`为2像素边框,`thickness=-1`填充图形 - 图像保存:`cv2.imwrite()`支持JPG/PNG等格式[^5] #### 4. 应用场景 该功能常用于: 1. 标记图像中的兴趣区域(ROI) 2. 可视化检测结果(如人脸识别中标记瞳孔) 3. 创建掩模进行图像分割[^1] 4. 辅助几何测量标定
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值