OpenCV实战篇

发布时间:2026/10/4 10:54:26

OpenCV实战篇
1.轮廓查找 findContourscontours, hierarchy cv2.findContours(image, mode, method)返回值contours列表存储所有轮廓每一个轮廓是一组坐标点数组(N,1,2)代表一条闭合曲线。hierarchy层级数组记录轮廓父子嵌套关系仅层级模式需要。参数image必须是二值图0 黑255 白白色为前景轮廓 推荐前置灰度→二值化 / Canny 边缘图。mode 轮廓检索模式表格模式抓取范围层级结构常用场景RETR_EXTERNAL仅最外层轮廓无层级物体检测、计数、框选首选RETR_LIST所有轮廓无层级单纯统计轮廓总数RETR_CCOMP外层 紧邻孔洞仅限 2 层区分物体与内部孔洞RETR_TREE全部轮廓完整树形多层嵌套复杂多层镂空图形分析method 轮廓逼近方式表格常量作用特点cv2.CHAIN_APPROX_NONE存储轮廓所有像素点点极多占用内存大cv2.CHAIN_APPROX_SIMPLE压缩拐点只存顶点只保留拐角坐标大幅精简日常首选2.轮廓绘制cv2.drawContours(image, contours, contourIdx, color, thickness, lineTypeNone, hierarchyNone, maxLevelNone, offsetNone)核心常用参数image绘制画布建议传入原图副本不要直接修改原图格式BGR 彩色图。contoursfindContours得到的轮廓列表。contourIdx填数字绘制第 N 个轮廓填-1一次性绘制全部轮廓。colorBGR 格式颜色元组 红色(0,0,255)、绿色(0,255,0)、蓝色(255,0,0)、白色(255,255,255)、黑色(0,0,0)。thickness正数轮廓线条粗细-1把轮廓围成的区域内部全部填充。3.轮廓的面积与周长一、轮廓面积cv2.contourArea(contour)作用计算单个闭合轮廓包围区域的像素面积。参数contour单条轮廓contours列表里其中一个元素二、轮廓周长cv2.arcLength(contour, closed)作用计算轮廓边线的像素长度。参数contour单条轮廓closed布尔值True闭合轮廓首尾相连日常绝大多数场景用 TrueFalse开放曲线不闭合。4.多边形逼近与凸包approx cv2.approxPolyDP(curve, epsilon, closed)参数curve单条原始轮廓cntepsilon逼近精度最重要参数含义原始轮廓与拟合多边形最大允许距离 常用写法epsilon 0.02 * cv2.arcLength(cnt, True)epsilon 越大顶点越少、图形越粗糙越小越贴近原图。closedTrue闭合多边形False开放折线hull cv2.convexHull(points, clockwiseFalse, returnPointsTrue)参数points轮廓点集合单条轮廓 cntreturnPoints默认 True返回凸包顶点坐标False 返回点索引5.外接矩阵函数形状能否旋转紧凑程度适用场景boundingRect正矩形不可旋转松散常规框选、快速定位minAreaRect斜矩形可旋转最紧凑倾斜物体定位minEnclosingCircle圆形无旋转适中圆形目标检测rect cv2.minAreaRect(contour)返回值rect ((cx, cy), (w, h), angle)(cx,cy)矩形中心点坐标(w,h)矩形宽、高angle旋转倾斜角度1.轮廓查找 findContourscontours, hierarchy cv2.findContours(image, mode, method)返回值contours列表存储所有轮廓每一个轮廓是一组坐标点数组(N,1,2)代表一条闭合曲线。hierarchy层级数组记录轮廓父子嵌套关系仅层级模式需要。参数image必须是二值图0 黑255 白白色为前景轮廓 推荐前置灰度→二值化 / Canny 边缘图。mode 轮廓检索模式表格模式抓取范围层级结构常用场景RETR_EXTERNAL仅最外层轮廓无层级物体检测、计数、框选首选RETR_LIST所有轮廓无层级单纯统计轮廓总数RETR_CCOMP外层 紧邻孔洞仅限 2 层区分物体与内部孔洞RETR_TREE全部轮廓完整树形多层嵌套复杂多层镂空图形分析method 轮廓逼近方式表格常量作用特点cv2.CHAIN_APPROX_NONE存储轮廓所有像素点点极多占用内存大cv2.CHAIN_APPROX_SIMPLE压缩拐点只存顶点只保留拐角坐标大幅精简日常首选2.轮廓绘制cv2.drawContours(image, contours, contourIdx, color, thickness, lineTypeNone, hierarchyNone, maxLevelNone, offsetNone)核心常用参数image绘制画布建议传入原图副本不要直接修改原图格式BGR 彩色图。contoursfindContours得到的轮廓列表。contourIdx填数字绘制第 N 个轮廓填-1一次性绘制全部轮廓。colorBGR 格式颜色元组 红色(0,0,255)、绿色(0,255,0)、蓝色(255,0,0)、白色(255,255,255)、黑色(0,0,0)。thickness正数轮廓线条粗细-1把轮廓围成的区域内部全部填充。3.轮廓的面积与周长一、轮廓面积cv2.contourArea(contour)作用计算单个闭合轮廓包围区域的像素面积。参数contour单条轮廓contours列表里其中一个元素二、轮廓周长cv2.arcLength(contour, closed)作用计算轮廓边线的像素长度。参数contour单条轮廓closed布尔值True闭合轮廓首尾相连日常绝大多数场景用 TrueFalse开放曲线不闭合。4.多边形逼近与凸包approx cv2.approxPolyDP(curve, epsilon, closed)参数curve单条原始轮廓cntepsilon逼近精度最重要参数含义原始轮廓与拟合多边形最大允许距离 常用写法epsilon 0.02 * cv2.arcLength(cnt, True)epsilon 越大顶点越少、图形越粗糙越小越贴近原图。closedTrue闭合多边形False开放折线hull cv2.convexHull(points, clockwiseFalse, returnPointsTrue)参数points轮廓点集合单条轮廓 cntreturnPoints默认 True返回凸包顶点坐标False 返回点索引5.外接矩阵函数形状能否旋转紧凑程度适用场景boundingRect正矩形不可旋转松散常规框选、快速定位minAreaRect斜矩形可旋转最紧凑倾斜物体定位minEnclosingCircle圆形无旋转适中圆形目标检测rect cv2.minAreaRect(contour)返回值rect ((cx, cy), (w, h), angle)(cx,cy)矩形中心点坐标(w,h)矩形宽、高angle旋转倾斜角度x, y, w, h cv2.boundingRect(contour)参数与返回值入参单条轮廓cnt返回x,y矩形左上角坐标w矩形宽度h矩形高度x, y, w, h cv2.boundingRect(contour)参数与返回值入参单条轮廓cnt返回x,y矩形左上角坐标w矩形宽度h矩形高度

相关新闻

日文游戏乱码终极解决方案:5分钟掌握Locale-Emulator轻松运行日本游戏

日文游戏乱码终极解决方案:5分钟掌握Locale-Emulator轻松运行日本游戏

2026/10/2 8:16:42

日文游戏乱码终极解决方案:5分钟掌握Locale-Emulator轻松运行日本游戏 【免费下载链接】Locale-Emulator Yet Another System Region and Language Simulator 项目地址: https://gitcode.com/gh_mirrors/lo/Locale-Emulator Locale-Emulator是一款强大的系统…

第一章:为什么 SA8775P 和 SA8797P 成为下一代智能汽车核心计算平台?

第一章:为什么 SA8775P 和 SA8797P 成为下一代智能汽车核心计算平台?

2026/10/3 8:09:48

第一章 为什么 SA8775P 和 SA8797P 成为下一代智能汽车核心计算平台? ——从 MCU 控制时代,到舱驾融合 AI 计算时代的汽车电子架构演进过去几十年,汽车电子的发展经历了一次又一次架构革命。 从最初几十个简单控制器,到现在一辆智…

成本管理形考任务全解析:从本量利分析到业绩评价的实战指南

成本管理形考任务全解析:从本量利分析到业绩评价的实战指南

2026/8/8 11:32:37

1. 项目背景与核心价值:为什么“形考任务”是成本管理学习的关键最近在和一些从事财务、项目管理或者正在进修国开电大相关课程的朋友交流时,发现一个普遍现象:大家拿到《成本管理》这门课的形考任务(1-4)时&#xff0…

CANN/GE ACL数据集缓冲区添加函数

CANN/GE ACL数据集缓冲区添加函数

2026/9/29 22:00:59

aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

用ffmpeg高效批量调整图片尺寸的实战指南

用ffmpeg高效批量调整图片尺寸的实战指南

2026/10/2 14:34:27

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

2026/9/30 20:35:38

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu…

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

2026/10/3 15:21:17

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup…

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

2026/10/4 5:19:11

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

2026/9/30 8:20:32

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…