首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Opencv:如何在图像上绘制圆轮廓

OpenCV是一个开源的计算机视觉库,提供了丰富的图像处理和计算机视觉算法。在OpenCV中,可以使用cv2.circle()函数在图像上绘制圆轮廓。

绘制圆轮廓的步骤如下:

  1. 导入OpenCV库:在Python中,可以使用import cv2语句导入OpenCV库。
  2. 读取图像:使用cv2.imread()函数读取待处理的图像文件,并将其存储为一个图像对象。
  3. 定义圆心和半径:使用圆心坐标和半径定义一个圆。
  4. 绘制圆轮廓:使用cv2.circle()函数在图像上绘制圆轮廓。该函数的参数包括图像对象、圆心坐标、半径、颜色和线宽。
  5. 显示图像:使用cv2.imshow()函数显示绘制了圆轮廓的图像。
  6. 保存图像:使用cv2.imwrite()函数将绘制了圆轮廓的图像保存到文件中。

下面是一个示例代码:

代码语言:txt
复制
import cv2

# 读取图像
image = cv2.imread('image.jpg')

# 定义圆心和半径
center = (100, 100)
radius = 50

# 绘制圆轮廓
color = (0, 255, 0)  # 绿色
thickness = 2
cv2.circle(image, center, radius, color, thickness)

# 显示图像
cv2.imshow('Image', image)
cv2.waitKey(0)

# 保存图像
cv2.imwrite('image_with_circle.jpg', image)

在这个示例代码中,我们首先使用cv2.imread()函数读取了名为'image.jpg'的图像文件,并将其存储为一个图像对象。然后,我们定义了一个圆心坐标为(100, 100),半径为50的圆。接下来,使用cv2.circle()函数在图像上绘制了这个圆轮廓,颜色为绿色,线宽为2。最后,使用cv2.imshow()函数显示了绘制了圆轮廓的图像,并使用cv2.imwrite()函数将图像保存到文件'image_with_circle.jpg'中。

推荐的腾讯云相关产品:腾讯云图像处理(Image Processing)服务,该服务提供了丰富的图像处理功能,包括图像识别、图像分析、图像增强等,可以满足各种图像处理需求。产品介绍链接地址:https://cloud.tencent.com/product/imgpro

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

python 基于opencv 绘制图像轮廓

这篇文章主要介绍了python 基于opencv 绘制图像轮廓的示例,帮助大家更好的利用python的opencv库处理图像,感兴趣的朋友可以了解下 图像轮廓概念 轮廓是一系列相连的点组成的曲线,代表了物体的基本外形...opencv找出图像轮廓 使用cv.findContours()寻找轮廓: import cv2 as cvimport numpy as np img = cv.imread('j.png')img_gray...opencv绘制图像轮廓 轮廓找出来后,可以像图中那样用红色画出来:cv.drawContours() cv.drawContours(img, contours, -1, (0, 0, 255),...一般情况下,我们会首先获得要操作的轮廓,再进行轮廓绘制及分析: cnt = contours[1] cv.drawContours(img, [cnt], 0, (0, 0, 255), 2) 实验:找出并绘制图像轮廓...以上就是python 基于opencv 绘制图像轮廓的详细内容

1.9K11

Python opencv图像处理基础总结(六) 直线检测 检测 轮廓发现

在标准霍夫变换中,原图像的边缘图像的任意点对应的经过这个点的所有可能在三维空间用圆心和半径这三个参数来表示,其对应一条三维空间的曲线。...对于多个边缘点,点越多,这些点对应的三维空间曲线交于一点的数量越多,那么他们经过的共同的点就越多,类似的我们也就可以用同样的阈值的方法来判断一个是否被检测到,这就是标准霍夫变换的原理, 但也正是在三维空间的计算量大大增加的原因...OpenCV实现的是一个比标准霍夫变换更为灵活的检测方法——霍夫梯度法,该方法运算量相对于标准霍夫变换大大减少。...其检测原理是依据圆心一定是在的每个点的模向量,这些上点模向量的交点就是圆心,霍夫梯度法的第一步就是找到这些圆心,这样三维的累加平面就又转化为二维累加平面。...# 第三个参数是对轮廓(第二个参数)的索引,当需要绘制独立轮廓时很有用,若要全部绘制可设为-1。

6.7K42

【CV 向】如何打造一个“数串串神器“

这些属性可以包括斑点的面积、度、凸性等。 4、斑点标记:对于通过筛选的斑点,可以进行标记,例如绘制边界框、绘制圆形等,以便在图像可视化这些斑点的位置和特征。...对于相邻的,进行非最大抑制,保留具有最高累加值的,抑制其他绘制:根据筛选出的圆心和半径,在原始图像绘制检测到的。...轮廓分析的基本步骤如下: 边缘检测:首先,在输入图像应用边缘检测算法(Canny边缘检测)或其他边缘提取方法,以获取图像中的边缘信息。...轮廓提取:通过在边缘图像应用轮廓提取算法(cv2.findContours函数),寻找并提取闭合的轮廓轮廓由一系列有序的点组成,可以表示对象的外形。...轮廓绘制和可视化:可以将提取的轮廓绘制在原始图像,以便进行可视化和结果展示。这可以通过绘制轮廓曲线、外接矩形或其他几何形状来实现。

27320

【CV 向】如何打造一个“数串串神器“

这些属性可以包括斑点的面积、度、凸性等。4、斑点标记:对于通过筛选的斑点,可以进行标记,例如绘制边界框、绘制圆形等,以便在图像可视化这些斑点的位置和特征。...对于相邻的,进行非最大抑制,保留具有最高累加值的,抑制其他绘制:根据筛选出的圆心和半径,在原始图像绘制检测到的。...轮廓分析的基本步骤如下:边缘检测:首先,在输入图像应用边缘检测算法(Canny边缘检测)或其他边缘提取方法,以获取图像中的边缘信息。...轮廓提取:通过在边缘图像应用轮廓提取算法(cv2.findContours函数),寻找并提取闭合的轮廓轮廓由一系列有序的点组成,可以表示对象的外形。...轮廓绘制和可视化:可以将提取的轮廓绘制在原始图像,以便进行可视化和结果展示。这可以通过绘制轮廓曲线、外接矩形或其他几何形状来实现。

38710

OpenCV 入门教程:轮廓特征和轮廓匹配

OpenCV 入门教程:轮廓特征和轮廓匹配 导语 轮廓特征和轮廓匹配是图像处理中用于描述和比较轮廓的技术。通过提取轮廓的形状、面积、周长等特征,并进行比较和匹配,我们可以实现目标识别、形状分析等应用。...1])) # 计算轮廓的质心坐标 # 在图像绘制轮廓特征 cv2.drawContours(contour_image, [contour], -1, (0, 255, 0), 2..., centroid, 5, (255, 0, 0), -1) # 绘制质心 # 在图像显示轮廓特征信息 cv2.putText(contour_image, f"Area: {...、周长、边界框、最小外接等,并在图像绘制和显示轮廓特征。...通过提取轮廓特征并比较轮廓之间的相似度,我们可以实现对图像中目标区域的定量分析和比较。 祝你在使用 OpenCV 进行轮廓特征和轮廓匹配的过程中取得成功!

2.3K10

OpenCV系列之轮廓入门 | 二十一

因此,在找到轮廓之前,请应用阈值或canny边缘检测。 从OpenCV 3.2开始,findContours()不再修改源图像。 在OpenCV中,找到轮廓就像从黑色背景中找到白色物体。...在此之前,代码示例中赋予它们的值将适用于所有图像。 如何绘制轮廓? 要绘制轮廓,请使用cv.drawContours函数。只要有边界点,它也可以用来绘制任何形状。...要绘制所有轮廓,请传递-1),其余参数是颜色,厚度等等 在图像绘制所有轮廓: cv.drawContours(img, contours, -1, (0,255,0), 3) 绘制单个轮廓第四个轮廓...这是通过这种轮廓近似方法指定的。 如果传递cv.CHAIN_APPROX_NONE,则将存储所有边界点。但是实际我们需要所有这些要点吗?例如,您找到了一条直线的轮廓。...它删除所有冗余点并压缩轮廓,从而节省内存。 下面的矩形图像演示了此技术。只需在轮廓数组中的所有坐标上绘制一个(以蓝色绘制)。

71010

cv2.drawContours

查找轮廓的函数会修改原始图像。如果之后想继续使用原始图像,应该将原始图像储存到其他变量中。在OpenCV中,查找轮廓就像在黑色背景中超白色物体。你应该记住,要找的物体应该是白色而背景应该是黑色。...如何在一个二值图像中查找轮廓。 函数cv2.findContours()有三个参数,第一个是输入图像,第二个是轮廓检索模式,第三个是轮廓近似方法。...它的第一个参数是原始图像,第二个参数是轮廓,一个python列表,第三个参数是轮廓的索引(在绘制独立轮廓是很有用,当设置为-1时绘制所有轮廓)。接下来的参数是轮廓的颜色和厚度。...在一幅图像绘制所有的轮廓:import numpy as npimport cv2img = cv2.imread('1024.jpg')imgray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY...2.8最小外接 函数cv2.minEnclosingCircle()可以帮我们找到一个对象的外接。它是所有能够包括对象的中面积最小的一个。

3K10

opencv 图像轮廓的实现示例

图像轮廓 Contours:轮廓 轮廓是将没有连着一起的边缘连着一起。 边缘检测检测出边缘,边缘有些未连接在一起。 ? 注意问题 1.对象为二值图像,首先进行阈值分割或者边缘检测。...2.查找轮廓需要更改原始图像,通常使用原始图像的一份进行拷贝。 3.在opencv里,是从黑色背景里找白色。因此对象必须是白色,背景为黑色。...,返回值为这个的圆心坐标和半径长度 (x,y),radius=cv.minEnclosingCircle(point_array) #图片的坐标均为整数,的半径也要求是整数,因此将它们强制转换为...如果设置为False,就会返回与凸包点对应的轮廓的点。...到此这篇关于opencv 图像轮廓的实现示例的文章就介绍到这了,更多相关opencv 图像轮廓内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望大家以后多多支持ZaLou.Cn!

1.3K31

C++ OpenCV轮廓周围矩形和圆形绘制

前面我们学习了轮廓提取,正常我们在提到到轮廓截取出来时一般需要是矩形的图像,这次我们就来学习一下轮廓周围绘制矩形等。...相关API approxPolyDP,对图像轮廓点进行多边形拟合 approxPolyDP(inputArray curve,OutputArray approxCurve,double epsilon...二维点集,点的序列或向量 minAreaRect,得到最小的外接矩形 Rect minAreaRect(InputArray points) points 二维点集,点的序列或向量 ---- 和椭圆...-0025,配置属性(VS2017配置OpenCV通用属性),然后在源文件写入#include和main方法 ?...操作步骤 将源图像变为二值图像 发现轮廓,找到图像轮廓 通过API找到轮廓的最小包含矩形,,椭圆 绘制图像 ? ? ? 多边形拟合 ? 可旋转的最小矩形 ? 最小矩形 ? 最小包围圆形 ?

2.4K20

OpenCV中实现曲线与拟合

使用OpenCV图像处理与分析的时候,经常会遇到需要进行曲线拟合与拟合的场景,很多OpenCV开发者对此却是一筹莫展,其实OpenCV中是有现成的函数来实现拟合与直线拟合的,而且还会告诉你拟合的的半径是多少...上述演示的完整代码实现如下: def circle_fitness_demo(): # 创建图像绘制初始点 image = np.zeros((400, 400, 3), dtype...的拟合是基于轮廓发现的结果,对发现的近似轮廓,通过圆拟合可以得到比较好的显示效果,轮廓发现与拟合的API分别为findContours与fitEllipse,有图像如下: ?...使用轮廓发现与拟合处理结果如下: ?...,绘制 rrt = cv.fitEllipse(contours[i]) cv.ellipse(src, rrt, (0, 0, 255), 2, cv.LINE_AA)

4.9K41

OpenCV消除高亮illuminationChange函数的使用

——《微卡智享》 本文长度为1129字,预计阅读4分钟 导语 一篇《OpenCV极坐标变换函数warpPolar的使用》中介绍了极坐标变换的使用,文中提到过因为手机拍的照片,部分地方反光厉害。...01 获取图像区域替换背景 在我们一篇的代码基础,把获取的区域这块单独写了个函数出来,目的主要是检测到后,将的区域截取出后,因为要去高光,所以外对我们来说是无用区域,直接填充到黑色,这样就减少掩膜查找无用高光区域了...; //输出图像 Mat dst; // 极坐标变换, Size()表示OpenCV根据输入自行决定输出图像尺寸 warpPolar(src, dst, Size(0, 0), center...Mat rectroi = src(rect); //截取圆形区域 Mat circleroi = Mat::zeros(rectroi.size(), CV_8U); //绘制检测到的...vector circles; HoughCircles(gray, circles, HOUGH_GRADIENT, 1, 50, 100, 100); //绘制检测到的

60210

你会绘制椭圆吗?

前言 特征在测量领域中应用广泛,比如:相机标定、位姿估计、目标跟踪等方面。...一 OpenCV绘制椭圆的函数 根据OpenCV提供的ellipse()函数,我将其封装成如下的绘制椭圆函数: //使用opencv中的ellipse函数在平面绘制椭圆,此处的参数为长短轴的半轴长。...利用ImageWatch插件可以观察椭圆边缘轮廓,如图1.2所示。 ? 图1.1 OpenCV中ellipse函数绘制的椭圆 ?...图1.2 OpenCV中ellipse函数绘制的椭圆边缘轮廓 由上图可见,使用OpenCV自带的椭圆绘制函数绘制的椭圆边缘轮廓为锯齿形,这对于椭圆中心的检测精度很不利,经过测试,这样的椭圆图案中心检测精度较差...经过流程图中的步骤,初步绘制好的椭圆二值化图像边缘轮廓部分截图,如图 2.2 所示。 ? 图2.1 绘制椭圆二值化图像 ?

1.2K20

你会绘制椭圆吗?

前言 特征在测量领域中应用广泛,比如:相机标定、位姿估计、目标跟踪等方面。...一 OpenCV绘制椭圆的函数 根据OpenCV提供的ellipse()函数,我将其封装成如下的绘制椭圆函数: //使用opencv中的ellipse函数在平面绘制椭圆,此处的参数为长短轴的半轴长。...利用ImageWatch插件可以观察椭圆边缘轮廓,如图1.2所示。 ? 图1.1 OpenCV中ellipse函数绘制的椭圆 ?...图1.2 OpenCV中ellipse函数绘制的椭圆边缘轮廓 由上图可见,使用OpenCV自带的椭圆绘制函数绘制的椭圆边缘轮廓为锯齿形,这对于椭圆中心的检测精度很不利,经过测试,这样的椭圆图案中心检测精度较差...经过流程图中的步骤,初步绘制好的椭圆二值化图像边缘轮廓部分截图,如图 2.2 所示。 ? 图2.1 绘制椭圆二值化图像 ?

90010

我为什么要写《OpenCV Android 开发实战》这本书

2015年我出版了个人第一本关于图像处理方面的书籍《Java图像处理-编程技巧与应用实践》,这本书主要是从理论与编码上面详细阐述了图像处理基础算法以及它们在编码实现的技巧。...OpenCV是英特尔开源出来的计算机视觉框架,有着十分强大的图像与视频分析处理算法库。...基于Mat的绘制与填充 2.2.2 Bitmap绘制与填充 2.4 Mat与Bitmap转换与使用 2.5 小结 第3章Mat像素操作...5.6 轮廓检测与绘制 5.7.1 - 轮廓检测与绘制轮廓 5.7.2 - 绘制轮廓外接矩形与 5.7.3 - 绘制最小外接矩形...5.7 轮廓分析 绘制外接矩形、最小外接矩形、横纵比、面积、轮廓周长等 5.8 图像直方图 5.8.1 - 计算直方图 5.8.2

1.6K30

OpenCV学习+常用函数记录③:霍夫变换与轮廓提取

OpenCV 霍夫变换与轮廓提取 3. 霍夫变换 3.1 霍夫直线 3.2 霍夫 4. 轮廓提取 4.1 查找轮廓 4.2 绘制轮廓 3....霍夫圆形检测 def hough_circle(gray_img): # 定义检测图像的方法。...轮廓提取 基于图像边缘提取或二值化的基础寻找对象轮廓 边缘提取的阈值会最终影响轮廓发现的结果 主要API有以下两个 findContours 发现轮廓 drawContours 绘制轮廓 4.1...查找轮廓 处理的图像, 轮廓列表, 继承关系 = cv.findContours(图像, 轮廓检索模式, 轮廓检索算法) # hierarchy[i][3],分别表示第i个轮廓的后一个轮廓、前一个轮廓...(图像, 轮廓列表, 轮廓索引 -1则绘制所有, 轮廓颜色, 轮廓的宽度) ((x,y),radius) = cv.minEnclosingCircle(contour) # 绘制外切圆 实现步骤:

88910

OpenCV图像处理笔记(三):霍夫变换、直方图、轮廓等综合应用

基于效率考虑,Opencv中实现的霍夫变换检测是基于图像梯度的实现,分为两步: 检测边缘,发现可能的圆心 基于第一步的基础从候选圆心开始计算最佳半径大小 c++ HoughCircles( InputArray...所以边缘提取的阈值选定会影响最终轮廓发现结果 API介绍 findContours发现轮廓 drawContours绘制轮廓 轮廓发现(find contour) Code 在二值图像发现轮廓使用API...draw contour) c++ 在二值图像发现轮廓使用API cv::findContours之后对发现的轮廓数据进行绘制显示 drawContours( InputOutputArray...通过相关API在轮廓找到最小包含矩形和,旋转矩形与椭圆。...绘制轮廓- drawContours 分水岭变换 watershed 对每个分割区域着色输出结果 示例代码 c++ #include #include<iostream

2.5K20

不废话,看我20行代码搞定色块提取与定位…….

先看看他发我的图像文件吧 ? 在来说说他的需求: 找到途中全部青色的区域,检测出来,绘制中心点!他用霍夫变换,结果直接翻车了,原因其实我很理解,这个图有很多梯度干扰,噪声干扰,用了肯定翻车!...使用OpenCV轮廓发现,对轮廓拟合,求的圆心坐标得到输出结果如下: ? 怎么样,效果好吗?...代码实现 上述步骤的代码演示,主要分为如下步骤 1.加载图像并转换到HSV色彩空间,得到mask 2.根据mask二值图像,进行形体学处理 3.使用轮廓发现,找到所有最外层轮廓 4.对轮廓进行拟合,得到圆心与半径...,然后绘制 代码如下: 1#include 2#include 3 4using namespace cv; 5using namespace...RETR_EXTERNAL, CHAIN_APPROX_SIMPLE); 28 for (int i = 0; i < contours.size(); i++) { 29 // 拟合

1.1K20

视频追踪之目标选择(一)------边缘检测值函数准备

更多的是需要用户绘制出跟踪目标的外接矩形或者外接,显然,这样显然会消耗比较长的时间,通常情况下是不可容忍的。所以利用边缘检测可以将矩形绘制简化为鼠标单击。...,函数将在这张图像绘制轮廓。...第六个参数表示轮廓线的宽度,如果为CV_FILLED则会填充轮廓内部。 第七个参数表示轮廓线的类型。 第八个参数表示偏移量,如果传入(10,20),那绘制将从图像的(10,20)处开始。  ...1.3下面就介绍OpenCV中对图像进行二值化的关键函数——cvThreshold()。...,是Opencv里的颜色空间转换函数,可以实现RGB颜色向HSV,HSI等颜色空间的转换,也可以转换为灰度图像

53950
领券