Opencv进阶篇---轮廓检测 图像轮廓边缘检测只要梯度发生变化零散的点都算作边缘轮廓检测一个链接的整体cv.findContours(image,mode,method)mode:轮廓检测模式cv.RETR_EXTERNAL只检测最外面的轮廓cv.RETR_LIST检测其所有轮廓并将其保存到一条链表中cv.RETR_CCOMP检测所有的轮廓并将它们组织为两层顶层是各部分的外部边界第二层时空洞的边界cv.RETR_TREE检测左右的轮廓并构建嵌套轮廓的整个层次-----常用method:轮廓逼近常用两种方法cv.CHAIN_APPROX_NONE以Freeman链码的方式输出轮廓所有其他方式输出多边形定点序列cv.CHAIN_APPROX_SIMPLE压缩水平的、垂直的和斜的部分即函数只保留他们的重点部分逼近方法示意步骤检测并绘制1、为了更高的准确率使用二值图像2、轮廓绘制srccv.imread(E:\OpenCVTests\Samples\sample\contours.png) graycv.cvtColor(src,cv.COLOR_BGR2GRAY) ret,threshcv.threshold(gray,127,255,cv.THRESH_BINARY) contours,hierarchycv.findContours(thresh,cv.RETR_TREE,cv.CHAIN_APPROX_NONE) drawSrcsrc.copy()#注意需要copy否则原图会发生改变 rescv.drawContours(drawSrc,contours,-1,(0,0,255),1)#倒数第三个参数默认为-1表示绘制全部轮廓指定为其他值则在图像中进行选择单个并且有内外圈之分 # 最后一个参数为颜色宽度 cv.imshow(COntours,res)简单的轮廓检测较为复杂的轮廓检测轮廓特征可以根据自身需要去构建其他一些衍生特征cntcontours[0]#当对轮廓进行特征计算时需要取对应轮廓设置取值 arecv.contourArea(cnt)#面积 lengthcv.arcLength(cnt,True)#周长True表示闭合 print(Area%s%are) print(Length%s%length)轮廓逼近轮廓逼近原理epsilon0.001*cv.arcLength(cnt,True)#该阈值很重要决定了轮廓逼近的精度可以根据检测结果适当调整 approxcv.approxPolyDP(cnt,epsilon,True)#轮廓逼近运算第二个值则为比较的阈值可以自己设定一般为周长的百分比 drawSrc1src.copy() dstcv.drawContours(drawSrc1,[approx],-1,(255,0,0),3) cv.imshow(ApproxControus,dst)外接矩形、外接圆x,y,w,hcv.boundingRect(cnt)#外接矩形API dst2cv.rectangle(src,(x,y),(xw,yh),(0,255,0),2)#矩形的绘制起点、以及长宽的指定 cv.imshow(boundingRect,dst2) (x,y),radiuscv.minEnclosingCircle(cnt)#外接圆API center(int(x),int(y)) radiusint(radius) dst3cv.circle(src,center,radius,(0,255,0),2) cv.imshow(boundigCirclet,dst3)

相关新闻

最新新闻

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现 【免费下载链接】serenity The Serenity Operating System 🐞 项目地址: https://gitcode.com/GitHub_Trending/se/serenity 导读 本文以 getopt(3) 手册 为核心&a…

2026/9/23 4:54:42
轻量服务器还是ECS?大促云服务器选购与避坑实战指南

轻量服务器还是ECS?大促云服务器选购与避坑实战指南

每年大促节点,群里永远有人在问同一个问题:“38元的轻量服务器到底怎么抢?为什么我每次点进去都是已售罄?68元直购和99元的ECS我到底选哪个?”作为一个常年帮团队和自己采购云服务器的老用户,我太清楚这种纠…

2026/9/24 14:25:52
为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南 【免费下载链接】agents Multi-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity 项目地址:…

2026/9/24 14:49:33
PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署 【免费下载链接】PaddleOCR Turn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between i…

2026/9/23 8:01:38
Spring源码解析:构造器注入的类型转换与候选匹配机制

Spring源码解析:构造器注入的类型转换与候选匹配机制

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

2026/9/24 14:28:18
openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由 【免费下载链接】openai-agents-python A lightweight, powerful framework for multi-agent workflows 项目地址: https://gitcode.com/GitHub_Trending/op/openai-agents-pyth…

2026/9/24 11:09:24

日新闻

周新闻