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

OpenCV -使用凸包和自适应阈值在手指上绘制轮廓

OpenCV是一个开源的计算机视觉库,它提供了丰富的图像处理和计算机视觉算法,可以用于图像和视频分析、目标检测和跟踪、人脸识别、图像增强等应用。

在使用OpenCV进行手指轮廓绘制时,可以通过以下步骤实现:

  1. 导入OpenCV库和其他必要的库:
代码语言:txt
复制
import cv2
import numpy as np
  1. 读取图像并进行预处理:
代码语言:txt
复制
image = cv2.imread("image.jpg")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (5, 5), 0)
  1. 使用自适应阈值进行图像二值化:
代码语言:txt
复制
thresh = cv2.adaptiveThreshold(blur, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY_INV, 11, 4)
  1. 对二值图像进行形态学操作,以去除噪声并增强轮廓:
代码语言:txt
复制
kernel = np.ones((3, 3), np.uint8)
dilated = cv2.dilate(thresh, kernel, iterations=2)
eroded = cv2.erode(dilated, kernel, iterations=1)
  1. 寻找轮廓并绘制:
代码语言:txt
复制
contours, hierarchy = cv2.findContours(eroded, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(image, contours, -1, (0, 255, 0), 2)
  1. 使用凸包找到手指的轮廓:
代码语言:txt
复制
for contour in contours:
    hull = cv2.convexHull(contour)
    cv2.drawContours(image, [hull], -1, (0, 0, 255), 2)

最后,可以通过以下代码显示绘制好轮廓的图像:

代码语言:txt
复制
cv2.imshow("Contours", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

OpenCV的优势在于其强大的图像处理和计算机视觉算法库,可以快速实现各种图像处理任务。它的应用场景包括但不限于人脸识别、目标检测和跟踪、图像增强、图像分割等。

腾讯云提供了云计算相关的产品和服务,其中与图像处理和计算机视觉相关的产品是腾讯云图像处理(Image Processing)服务。该服务提供了丰富的图像处理功能和算法,可以用于图像识别、图像增强、图像分割等应用场景。具体产品介绍和链接地址请参考腾讯云图像处理服务官方文档:腾讯云图像处理

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

相关·内容

体感游戏 | 手势识别玩飞机大战游戏(二) Python+OpenCV实现简易手势识别功能

后面将分四篇文章来介绍实现手势识别控制飞机大战游戏的功能,它们分别是: 使用Pygame实现简易飞机大战小游戏 使用Python+OpenCV实现简单手势识别 使用OpenCV实现手势识别玩飞机大战游戏...使用TensorFlow实现手势识别玩飞机大战游戏 ---- 今天是第二部分:Python+OpenCV实现简易手势识别功能。...手势识别的实现步骤也比较简单,分以下三个步骤: HSV提取包含手势区域轮廓 计算轮廓多边形逼近缺陷 通过缺陷距离来判断手指缝数量来计算手势 ---- (1) HSV提取肤色轮廓,然后筛选找出手部轮廓...contours[0]) if(w0>=100 and h0>=100): cv2.rectangle(img,(x0,y0),(x0+w0,y0+h0),(255,0,255),2) (2) 多边形逼近轮廓缺陷计算...if d >= 13000: cv2.line(img,start,end,[0,255,0],3)# cv2.circle(img,start,10,[0,255,255

2.3K11
  • 一篇文章就梳理清楚了 Python OpenCV 的知识体系

    OpenCV 常用绘图函数 掌握如下函数的用法,即可熟练的 Opencv绘制图形。...图像固定阈值自适应阈值 图像阈值化是图像处理的重要基础部分,应用很广泛,可以根据灰度差异来分割图像不同部分,阈值化处理的图像一般为单通道图像(灰度图),核心要掌握的两个函数: 固定阈值:cv2.threshold...(); 自适应阈值:cv2.adaptiveThreshold()。...轮廓查找与绘制 核心要理解到 OpenCV 中,查找轮廓就像在黑色背景中找白色物体。...轮廓特征属性及应用 这部分内容比较重要,并且知识点比较多,核心内容与函数分别如下: 寻找 cv2.convexHull() 与 性检测 cv2.isContourConvex(); 轮廓外接矩形

    1.6K30

    opencv 图像轮廓的实现示例

    2.查找轮廓需要更改原始图像,通常使用原始图像的一份进行拷贝。 3.opencv里,是从黑色背景里找白色。因此对象必须是白色,背景为黑色。...opencv使用函数cv.convexhull来寻找轮廓,该函数的定义为: hull=cv.convexHull( points[, hull[, clockwise[, returnPoints...它会返回包上点的坐标。如果设置为False,就会返回与点对应的轮廓的点。...,cv.COLOR_GRAY2BGR) #将绘制出来,需要注意的是:这里需要将包上点的坐标写成一个 #列表传入函数cv.ploylines,否则绘制出来的只是包上的一系列点 color=cv.polylines...#columnrow分别存放非零像素点在图像中坐标的列数行数 column=NonZeroPoints[:,0] row=NonZeroPoints[:,1] #新的画板上将这些点绘制出来,将这些坐标对应的像素点的值设为

    1.4K31

    OpenCV实现手指识别:空中移动手指就可以弹钢琴!

    为了制作 Air Piano,我使用了 Python 语言和 OpenCV 库。它是一个开源的计算机视觉机器学习软件库。 另一个帮助我们完成这个项目的重要库是 PyAutoGUI 库。...检测到手后,我们找到轮廓,即我们手的边界。然后我们绘制一个,以找到周围的凸多边形。从这个多边形中,我们使用凸度缺陷函数提取指尖。 什么是,完全包围对象的最小 n 边凸多边形。...轮廓与其的任何偏差都称为性缺陷。 ? 这里还应用了一个过滤器来使用点之间的距离(即指尖关节)来获取指尖,同时您也可以选择使用手指之间的角度来实现相同的效果。...开始使用 PyAutoGUI 功能之前,让我们框架上绘制钢琴键,这将是我们的“Air Paino Keys”。...https://github.com/umar07/OpenCV-Projects/tree/main/Air-Piano 未来方向用例 类似的路线上开发,一整套乐器可以使用与上述相同的原理进行手势控制

    90151

    石头、剪子、布!这些手势都是怎么被计算机识别的?

    逼近多边形是轮廓的高度近似,但是有时候,我们希望使用一个多边形的来简化它。跟逼近多边形很像,只不过它是物体最外层的“”多边形。指的是完全包含原有轮廓,并且仅由轮廓的点所构成的多边形。...例如,图 2中,最外层的多边形为机械手的使用它可以处理手势识别等问题。 图2  示意图 应用轮廓的关系即可判断手势0手势1的差别。...如图 3所示,手势0与手势1以下方面存在着差别: 手势0的,与其轮廓基本一致。 手势1的,要大于其轮廓值。...在手势1的轮廓之间存在着相对较大的凹陷区域(缺陷),凹陷区域面积占比10%以上。当然,这个10%是个大概值,它因人而异,不是固定值。不同的人手指长度一样,因此该值有一定的波动范围。...图5 手势识别 《计算机视觉40例——从入门到深度学习(OpenCV-Python)》中,我们使用大概10页的篇幅,从理论基础(获取缺陷、缺陷与面积比)、识别过程(识别流程、代码实现)等角度系统深入介绍了数字手势识别的具体算法实现流程

    1.4K10

    Python OpenCV 蓝图:1~5

    自适应阈值的结果如下所示: 组合颜色轮廓来制作卡通 最后一步是将两者合并。 只需使用cv2.bitwise_and将两种效果融合在一起成为一张图像。...最终产品如下所示: 无论我伸出左手的手指多少,该算法都会正确分割手部区域(白色),绘制相应的(围绕手的绿线),找到所有属于手指之间的空间的凸度缺陷(绿色的大点),而忽略其他手指(红色的小点),即使是拳头...) 查找轮廓区域的 一旦我们遮罩中识别出最大轮廓,就可以很容易地计算轮廓区域的。...基本轮廓区域的包络。 如果将属于轮廓区域的所有像素视为钉子从板伸出来,则的形状是由围绕所有钉子的紧密橡皮筋形成的。...分段的手部区域周围以黄色绘制看起来像这样: 查找的凸度缺陷 从前面的屏幕快照中可以明显看出,包上的所有点均不是属于分割的手部区域。

    1.7K10

    历时七个月整理出来的《OpenCV4系统化学习路线图》

    同时各个关键节点通过案例教学与代码分析,帮助厘清相关知识点的运用,达到学以致用,培养编程能力,提升个人竞争力!...OpenCV中的基本阈值操作 042. OTSU二值寻找算法 043. TRIANGLE二值寻找算法 044. 自适应阈值算法 045. 图像二值化与去噪 046. 二值图像联通组件寻找 047....二值图像分析—轮廓发现 049. 二值图像分析—轮廓外接矩形 050. 二值图像分析 – 矩形面积与弧长 051. 二值图像分析—使用轮廓逼近 052....二值图像分析—用几何矩计算轮廓中心与横纵比过滤 053. 二值图像分析—Hu矩实现轮廓匹配 054. 二值图像分析—对轮廓圆与椭圆拟合 055. 二值图像分析—检测] 056....视频分析—基于连续自适应均值迁移的对象移动分析 090. 视频分析—对象移动轨迹绘制 091. 对象检测—HAAR级联检测器使用 092. 对象检测—HAAR特征介绍 093.

    2.6K31

    历时七个月整理出来的《OpenCV4系统化学习路线图》

    同时各个关键节点通过案例教学与代码分析,帮助厘清相关知识点的运用,达到学以致用,培养编程能力,提升个人竞争力!...OpenCV中的基本阈值操作 042. OTSU二值寻找算法 043. TRIANGLE二值寻找算法 044. 自适应阈值算法 045. 图像二值化与去噪 046. 二值图像联通组件寻找 047....二值图像分析—轮廓发现 049. 二值图像分析—轮廓外接矩形 050. 二值图像分析 – 矩形面积与弧长 051. 二值图像分析—使用轮廓逼近 052....二值图像分析—用几何矩计算轮廓中心与横纵比过滤 053. 二值图像分析—Hu矩实现轮廓匹配 054. 二值图像分析—对轮廓圆与椭圆拟合 055. 二值图像分析—检测] 056....视频分析—基于连续自适应均值迁移的对象移动分析 090. 视频分析—对象移动轨迹绘制 091. 对象检测—HAAR级联检测器使用 092. 对象检测—HAAR特征介绍 093.

    1.6K10

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

    这些属性可以包括斑点的面积、圆度、性等。 4、斑点标记:对于通过筛选的斑点,可以进行标记,例如绘制边界框、绘制圆形等,以便在图像可视化这些斑点的位置特征。...绘制圆:根据筛选出的圆心半径,原始图像绘制检测到的圆。 Hough Circle Transform 的参数包括边缘检测的参数、参数空间的分辨率、最小半径最大半径的范围等。...轮廓绘制可视化:可以将提取的轮廓绘制原始图像,以便进行可视化结果展示。这可以通过绘制轮廓曲线、外接矩形或其他几何形状来实现。...然后,可以使用OpenCV中的轮廓分析、形状分析等技术对钢管进行进一步处理计数。...总结 本文中,我们介绍了使用OpenCV深度学习来解决数钢管和数串串的问题,使用OpenCV的Blob DetectionHough Circle技术对钢管以及串串进行检测,并使用轮廓分析对钢管进行计数

    33520

    OpenCV4系统化学习路线图与教程

    同时各个关键节点通过案例教学与代码分析,帮助厘清相关知识点的运用,达到学以致用,培养编程能力,提升个人竞争力!...(sobel,scharr,robot,prewitt) 23.拉普拉斯与USM 24.Canny边缘检测 25.图像金字塔(高斯与拉普拉斯) 26.金字塔重建 27.模板匹配 28.图像二值化(全局阈值自适应...) 29.图像连通组件分析(中心位置、外接矩形) 30.图像轮廓发现(树形层次、编码方式、最小外接矩形、面积与周长) 31.轮廓逼近与编码 32.图像距(几何矩、中心矩、hu矩) 33.轮廓拟合(直线/...圆与椭圆) 34.手势检测 35.霍夫变换(直线与圆) 36.形态学基础(腐蚀、膨胀、开闭操作) 37.形态学操作(梯度、击中击不中、顶帽与黑帽) 38.二值图像分析案例(工业刀片缺陷检测) 39....ROI提取 44.视频分析-对象角点检测 45.视频分析-KLT光流分析 46.视频分析-帧差与三帧差法 47.视频分析-FB稠密光流分析 48.视频分析-均值迁移的移动对象跟踪 49.视频分析-连续自适应的对象跟踪与轨迹绘制

    1.9K10

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

    所以边缘提取的阈值选定会影响最终轮廓发现结果 API介绍 findContours发现轮廓 drawContours绘制轮廓 轮廓发现(find contour) Code 二值图像发现轮廓使用API...draw contour) c++ 二值图像发现轮廓使用API cv::findContours之后对发现的轮廓数据进行绘制显示 drawContours( InputOutputArray...,逆时针方向) 对每个点pi来说,如果添加pi点到中导致一个左转向(逆时针方法)则添加该点到, 反之如果导致一个右转向(顺时针方向)删除该点从中 3、API说明cv::convexHull...API调用 绘制显示。...通过相关API轮廓找到最小包含矩形圆,旋转矩形与椭圆。

    2.7K20

    OpenCV4最全系统化学习路线图与教程!

    、HGUI模块(窗口与图形绘制与显示) 03、图像处理基础知识 04、图像卷积操作相关 05、二值图像分析与处理 06、视频分析与对象跟踪 07、特征提取与对象检测 08、深度神经网络DNN模块 同时各个关键节点通过案例教学与代码分析...(sobel,scharr,robot,prewitt) 23.拉普拉斯与USM 24.Canny边缘检测 25.图像金字塔(高斯与拉普拉斯) 26.金字塔重建 27.模板匹配 28.图像二值化(全局阈值自适应...) 29.图像连通组件分析(中心位置、外接矩形) 30.图像轮廓发现(树形层次、编码方式、最小外接矩形、面积与周长) 31.轮廓逼近与编码 32.图像距(几何矩、中心矩、hu矩) 33.轮廓拟合(直线/...圆与椭圆) 34.手势检测 35.霍夫变换(直线与圆) 36.形态学基础(腐蚀、膨胀、开闭操作) 37.形态学操作(梯度、击中击不中、顶帽与黑帽) 38.二值图像分析案例(工业刀片缺陷检测) 39....ROI提取 44.视频分析-对象角点检测 45.视频分析-KLT光流分析 46.视频分析-帧差与三帧差法 47.视频分析-FB稠密光流分析 48.视频分析-均值迁移的移动对象跟踪 49.视频分析-连续自适应的对象跟踪与轨迹绘制

    98620

    基于OpenCV的数字识别系统

    我们可以使用自适应阈值而不是使用常数,这将使用图像的较小部分并确定要使用的不同阈值。这在具有不同照明情况的应用中特别有用,特别是扫描气泵中。...将图像设置为阈值后,可以使用OpenCV的findContours方法查找图像中连接了白色像素部分的区域。绘制轮廓后,便可以裁剪出这些区域并确定它们是否可能是数字以及它是什么数字。...阈值为黑/白 填补空白 由于大多数燃油泵都使用某种7段LCD显示屏,因此数字中存在一些细微的间隙,无法使用轮廓绘制方法,因此我们需要使这些段看起来相连。...查找小数 图像中查找小数点是要解决的另一个问题。由于它很小,有时会连接到它旁边的手指,因此使用我们在手指使用的方法来确定它似乎有问题。当我们过滤轮廓时,我们收集了可能是十进制的正方形轮廓。...结论 这是否是任何人实际都会使用的功能尚待确定,但这在实现某些机器学习概念使用OpenCV方面是一个有趣的练习。到目前为止,我们的测试中,应用程序最大的问题是泵显示屏的眩光。

    1.3K20

    OpenCV中BLOB特征提取与几何形状分类

    OpenCV中BLOB特征提取与几何形状分类 一:方法 二值图像几何形状提取与分离,是机器视觉中重点之一,CT图像分析与机器人视觉感知等领域应用广泛,OpenCV中提供了一个对二值图像几何特征描述与分析最有效的工具...而它之所以强大是因为整合OpenCV中其它一些API的功能,主要是有三个: 自动的图像灰度与二值化,根据输入的步长与阈值,得到半径 实现了轮廓查找功能,可以查找所有轮廓, 然后在此基础基于几何矩的计算实现各种基于几何特征的过滤...惯性率 惯性率是跟偏心率,圆形的偏心率等于0, 椭圆的偏心率介于01之间,直线的偏心率接近于0, 基于几何矩计算惯性率比计算偏心率容易,所以OpenCV选择了惯性率这个特征值,根据惯性率可以计算出来偏心率...凸度 表示几何形状是还是凹的度量。说白了就是可以根据参数过滤凸多边形还是凹多边形, 输入的参数一般0~1之间,最小为0,最大为1。一般圆形多会大于0.5以上 ?...设置最大与最小圆度params.filterByCircularity = true;params.minCircularity = 0.5;params.maxCircularity = 1.0;// 形状分析

    3.8K121

    基于OpenCV的图像形状检测(含源码)

    导读 本文给大家分享一个用OpenCV传统方法实现形状检测的小案例。...阈值 ret,thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU) 【2】 查找轮廓+轮廓多边形逼近...进一步根据外接矩形宽高判断是矩形还是正方形; len(vertices)==8,对应为四角形; len(vertices)==10,对应为五角形; len(vertices)>=12,对应为圆形; 【3】 结果绘制输出...(正八边形/正十边形)除了检测边数还可以加上缺陷计算,可以将二者很好的区分; ③ 上面虽然是比较简单的图形,但是方法思想可以共用,大家可以将自己的图像先处理简单后再做识别,必要时可以使用角点、夹角...、缺陷等方法; 测试图片与源码下载链接: https://github.com/akshaybhatia10/ComputerVision-Projects/tree/master/FindShapes

    2.8K21

    OpenCV4系统化学习路线图与教程

    同时各个关键节点通过案例教学与代码分析,帮助厘清相关知识点的运用,达到学以致用,培养编程能力,提升个人竞争力!...(sobel,scharr,robot,prewitt) 23.拉普拉斯与USM 24.Canny边缘检测 25.图像金字塔(高斯与拉普拉斯) 26.金字塔重建 27.模板匹配 28.图像二值化(全局阈值自适应...) 29.图像连通组件分析(中心位置、外接矩形) 30.图像轮廓发现(树形层次、编码方式、最小外接矩形、面积与周长) 31.轮廓逼近与编码 32.图像距(几何矩、中心矩、hu矩) 33.轮廓拟合(直线/...圆与椭圆) 34.手势检测 35.霍夫变换(直线与圆) 36.形态学基础(腐蚀、膨胀、开闭操作) 37.形态学操作(梯度、击中击不中、顶帽与黑帽) 38.二值图像分析案例(工业刀片缺陷检测) 39....ROI提取 44.视频分析-对象角点检测 45.视频分析-KLT光流分析 46.视频分析-帧差与三帧差法 47.视频分析-FB稠密光流分析 48.视频分析-均值迁移的移动对象跟踪 49.视频分析-连续自适应的对象跟踪与轨迹绘制

    1.3K50

    OpenCV中BLOB特征提取与几何形状分类

    一、方法 二值图像几何形状提取与分离,是机器视觉中重点之一,CT图像分析与机器人视觉感知等领域应用广泛,OpenCV中提供了一个对二值图像几何特征描述与分析最有效的工具 - SimpleBlobDetector...类,使用它可以实现对二值图像几何形状的分离与分析。...而它之所以强大是因为整合OpenCV中其它一些API的功能,主要是有三个: 自动的图像灰度与二值化,根据输入的步长与阈值,得到半径 实现了轮廓查找功能,可以查找所有轮廓, 然后在此基础基于几何矩的计算实现各种基于几何特征的过滤...惯性率 惯性率是跟偏心率,圆形的偏心率等于0, 椭圆的偏心率介于01之间,直线的偏心率接近于0, 基于几何矩计算惯性率比计算偏心率容易,所以OpenCV选择了惯性率这个特征值,根据惯性率可以计算出来偏心率...,偏心率与惯性率之间关系表示如下 凸度 表示几何形状是还是凹的度量。

    1.4K10

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

    这些属性可以包括斑点的面积、圆度、性等。4、斑点标记:对于通过筛选的斑点,可以进行标记,例如绘制边界框、绘制圆形等,以便在图像可视化这些斑点的位置特征。...绘制圆:根据筛选出的圆心半径,原始图像绘制检测到的圆。Hough Circle Transform 的参数包括边缘检测的参数、参数空间的分辨率、最小半径最大半径的范围等。...轮廓绘制可视化:可以将提取的轮廓绘制原始图像,以便进行可视化结果展示。这可以通过绘制轮廓曲线、外接矩形或其他几何形状来实现。...然后,可以使用OpenCV中的轮廓分析、形状分析等技术对钢管进行进一步处理计数。...总结在本文中,我们介绍了使用OpenCV深度学习来解决数钢管和数串串的问题,使用OpenCV的Blob DetectionHough Circle技术对钢管以及串串进行检测,并使用轮廓分析对钢管进行计数

    61610
    领券