Python OpenCV 轮廓分析(Contour Analysis)详解与实战
📅 2026/7/16 18:03:55
👁️ 次浏览
1. 什么是轮廓Contour轮廓Contour是图像中目标的边界点集合。通常先经过灰度化、二值化再利用findContours()提取。典型流程原图 → 灰度 → 二值化 → findContours → 轮廓分析工业视觉中常用于元件定位Connector 外形检测OCR 字符区域提取缺件检测尺寸测量2. findContours() 详解函数原型contours,hierarchycv2.findContours(image,mode,method)参数说明image必须是二值图。graycv2.cvtColor(img,cv2.COLOR_BGR2GRAY)_,binarycv2.threshold(gray,0,255,cv2.THRESH_BINARYcv2.THRESH_OTSU)mode检索模式RETR_EXTERNAL仅外轮廓工业视觉最常用RETR_LIST所有轮廓不保存层级RETR_CCOMP两层层级RETR_TREE完整树结构method近似方式CHAIN_APPROX_NONE保存所有点CHAIN_APPROX_SIMPLE仅保存关键点推荐完整示例importcv2 imgcv2.imread(test.png)graycv2.cvtColor(img,cv2.COLOR_BGR2GRAY)_,binarycv2.threshold(gray,0,255,cv2.THRESH_BINARYcv2.THRESH_OTSU)contours,hierarchycv2.findContours(binary,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)drawimg.copy()cv2.drawContours(draw,contours,-1,(0,255,0),2)cv2.imshow(Contours,draw)cv2.waitKey(0)3. 轮廓几何特征分析面积areacv2.contourArea(cnt)作用过滤噪声判断目标大小周长lengthcv2.arcLength(cnt,True)作用多边形逼近圆度计算外接矩形x,y,w,hcv2.boundingRect(cnt)作用ROI 提取OCR 定位最小外接矩形rectcv2.minAreaRect(cnt)boxcv2.boxPoints(rect)适用于旋转目标。重心Mcv2.moments(cnt)cxint(M[m10]/M[m00])cyint(M[m01]/M[m00])用于目标定位和运动控制。4. Moments 与 Hu 不变矩图像矩用于描述目标形状。Mcv2.moments(cnt)hucv2.HuMoments(M)print(hu)Hu 不变矩特点平移不变缩放不变基本旋转不变适用于形状识别、Logo 检测。5. approxPolyDP 多边形逼近epsilon0.02*cv2.arcLength(cnt,True)approxcv2.approxPolyDP(cnt,epsilon,True)应用三角形检测矩形检测元件识别6. Convex Hull 与 Convexity Defects凸包hullcv2.convexHull(cnt)作用获取最小凸包外形分析凸缺陷idxcv2.convexHull(cnt,returnPointsFalse)defectscv2.convexityDefects(cnt,idx)作用Connector 防呆槽检测缺口检测手势识别7. matchShapes()scorecv2.matchShapes(cnt1,cnt2,cv2.CONTOURS_MATCH_I1,0)返回值越小越相似。应用Connector 插反检测极性检测Logo 比对8. 综合案例forcntincontours:areacv2.contourArea(cnt)ifarea300:continuex,y,w,hcv2.boundingRect(cnt)cv2.rectangle(img,(x,y),(xw,yh),(0,255,0),2)cv2.putText(img,fArea:{area:.1f},(x,y-5),cv2.FONT_HERSHEY_SIMPLEX,0.6,(0,0,255),2)总结API用途findContours提取轮廓contourArea面积arcLength周长moments几何矩HuMoments形状描述approxPolyDP多边形逼近convexHull凸包convexityDefects凸缺陷matchShapes轮廓匹配
Dolphin3-Cyber-8B-GGUF伦理使用指南:在合法合规框架下发挥AI安全能力 【免费下载链接】Dolphin3-Cyber-8B-GGUF 项目地址: https://ai.gitcode.com/hf_mirrors/RavichandranJ/Dolphin3-Cyber-8B-GGUF
Dolphin3-Cyber-8B-GGUF作为一款专注于网络安全领域的A…
📅 2026/7/16 18:03:55
【客观测评声明】本文为中立财经择校测评,无硬性广告植入,基于2026年公开院校数据、学员真实反馈,从民企经营视角拆解大湾区主流EMBA项目适配度与短板,理性分析择校价值,规避夸大宣传与恶意对比。不少实体企业家、科创…
📅 2026/7/16 18:03:55
1. Linux进程管理概述在Linux系统中,进程管理是系统管理员和开发人员必须掌握的核心技能之一。每个运行中的程序都会创建一个或多个进程,这些进程需要被有效地监控和管理,以确保系统资源的合理分配和系统稳定运行。关键点:Linux采…
📅 2026/7/16 18:02:55
3个必学技巧:让你的Gogs自建Git服务告别文件管理混乱 【免费下载链接】gogs The painless way to host your own Git service 项目地址: https://gitcode.com/GitHub_Trending/go/gogs
你是否曾经因为代码仓库中的大文件而头痛?团队协作时&#x…
📅 2026/7/16 19:03:13
# 矩阵计算单元 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: htt…
📅 2026/7/16 19:03:13
第20.3篇:Java面向对象生产环境避坑清单(2026版) 📌 系列导航:《Java 100 天进阶之路》完整目录 | ⬅️ 上一篇:第20.2篇:Java核心语法面试官追问陷阱合集 | ➡️ 下一篇:第20.4篇&a…
📅 2026/7/16 19:03:13
mevi源码解读:Rust异步编程在系统工具中的应用 【免费下载链接】mevi A memory visualizer in Rust (ptrace userfaultfd) 项目地址: https://gitcode.com/gh_mirrors/me/mevi
你是否曾经想过,如何在Linux系统中实时监控和可视化进程的内存使用情…
📅 2026/7/16 19:03:13
如何高效批量下载抖音视频:douyin-downloader完整指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback suppo…
📅 2026/7/16 19:03:13
scrcpy视频流优化:分辨率、码率与帧率的专业调优指南 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy
scrcpy作为一款强大的Android设备投屏工具,其核心价值在于提供…
📅 2026/7/16 19:02:13
1. 项目概述:为什么用遗传算法解5皇后问题,而不是直接回溯?我带过十几届算法课,也给不少初创团队做过AI架构咨询。每次讲到组合优化问题,学生和工程师的第一反应永远是“写个回溯试试”。这没错——55棋盘上找所有合法…
📅 2026/7/16 0:00:02
前几天调试一个简单的电源模块,用到了5.1V稳压管。电路接好,上电测试,万用表一量——输出居然只有4.7V。第一反应是稳压管坏了,换了一个新的,结果还是4.7V。这让我想起很多初学者都会遇到的困惑:明明标称5.…
📅 2026/7/16 0:00:02
1. 项目概述与核心价值 在高速数字系统、通信设备乃至精密测量仪器中,一个稳定、纯净且可精确调控的时钟信号,往往是整个系统稳定运行的“心跳”。无论是确保数据在光纤中无误传输,还是让ADC/DAC芯片精准采样,亦或是让多块FPGA板卡…
📅 2026/7/16 0:00:02
豆包openclaw最近圈子里都在聊豆包openclaw,我也没忍住,掏腰包入手了一套。说实话,刚拿到手的时候,心里是打鼓的。毕竟市面上类似的智能硬件太多了,有的吹得天花乱坠,用起来却是一堆bug。为了不让大家的钱打水漂,我连续用了半个月。从开箱到日常高频使用,甚至故意测试它…
📅 2026/7/15 22:51:06
SQLyog 13.3.1 社区版在Windows 10/11上的完整安装与连接指南 对于刚接触MySQL数据库管理的开发者和学生来说,选择一个直观易用的图形化管理工具至关重要。SQLyog作为一款轻量级但功能强大的MySQL GUI工具,能够显著提升数据库操作的效率和体验。本文将详…
📅 2026/7/15 19:03:10
SPEC CPU 2006 跨平台基准测试深度实战:ARM/X86/MIPS 架构配置优化与结果分析方法论在当今多元化的计算架构时代,如何客观评估不同处理器平台的真实性能成为系统工程师和性能优化专家的核心挑战。SPEC CPU 2006 作为业界公认的计算密集型基准测试套件&am…
📅 2026/7/16 14:13:12
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/15 22:46:06
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/16 4:59:31
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/15 22:51:03