news 2026/4/15 17:14:55

org.openpnp.vision.pipeline.stages.FilterContours

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
org.openpnp.vision.pipeline.stages.FilterContours

文章目录

  • org.openpnp.vision.pipeline.stages.FilterContours
    • 功能
    • 参数
    • 例子
      • 生成测试图片
      • cv-pipeline config
    • 效果
    • END

org.openpnp.vision.pipeline.stages.FilterContours

功能

根据轮廓面积对轮廓进行过滤。它从前序阶段获取轮廓列表(List),计算每个轮廓的面积,只保留面积在指定范围内的轮廓,输出过滤后的轮廓列表。

该阶段常用于去除噪声、小斑点或过大干扰区域,只保留感兴趣的目标轮廓,以便后续处理(如拟合椭圆、旋转矩形等)。

参数

参数类型必需说明
contoursStageNameString指定流水线中提供轮廓列表(List<MatOfPoint>)的那个阶段的名称。如果为空或找不到对应结果,则跳过处理。
minAreadouble轮廓的最小面积阈值。只有面积 ≥minArea的轮廓才被保留。设置为-1表示无下限。
maxAreadouble轮廓的最大面积阈值。只有面积 ≤maxArea的轮廓才被保留。设置为-1表示无上限。
propertyNameString用于动态覆盖minAreamaxArea的属性名前缀。格式:propertyName.minAreapropertyName.maxArea。默认值为"FilterContours"

例子

生成测试图片

importcv2importnumpy as np# 创建白色背景 (600x600)img=np.ones((600,600,3),dtype=np.uint8)*255# 绘制三个不同面积的黑色圆形(实心)# 小圆 (面积 ≈ π*20² ≈ 1256)cv2.circle(img,(150,150),20,(0,0,0), -1)# 中圆 (面积 ≈ π*40² ≈ 5026)cv2.circle(img,(300,300),40,(0,0,0), -1)# 大圆 (面积 ≈ π*70² ≈ 15394)cv2.circle(img,(500,500),70,(0,0,0), -1)# 添加一个极小的噪声点(面积很小,用于演示过滤)cv2.circle(img,(100,500),3,(0,0,0), -1)# 保存图片cv2.imwrite("filter_test.png", img)print("测试图片已生成: filter_test.png (包含小圆、中圆、大圆和一个小噪点)")

cv-pipeline config

<cv-pipeline><stages><cv-stageclass="org.openpnp.vision.pipeline.stages.ImageRead"name="read"enabled="true"file="D:\3rd\openpnp_prj\openpnp-official\openpnp-test-images\my_test\filter_test.png"color-space="Bgr"handle-as-captured="false"/><cv-stageclass="org.openpnp.vision.pipeline.stages.ConvertColor"name="gray"enabled="true"conversion="Bgr2Gray"/><cv-stageclass="org.openpnp.vision.pipeline.stages.Threshold"name="thresh"enabled="true"threshold="127"auto="false"invert="true"/><cv-stageclass="org.openpnp.vision.pipeline.stages.FindContours"name="contours"enabled="true"retrieval-mode="External"approximation-method="Simple"/><cv-stageclass="org.openpnp.vision.pipeline.stages.ImageRecall"name="recall"enabled="true"image-stage-name="read"/><cv-stageclass="org.openpnp.vision.pipeline.stages.DrawContours"name="draw"enabled="true"contours-stage-name="contours"thickness="2"index="-1"><colorr="255"g="0"b="0"a="255"/></cv-stage><cv-stageclass="org.openpnp.vision.pipeline.stages.ImageWrite"name="save"enabled="true"file="output_one_contour.png"/></stages></cv-pipeline>

效果

index = -1, 圈住所有目标

index = 0 圈住第1个目标。
index = n - 1, 圈住最后一个目标

index >= n, 报错

END

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 17:14:17

SAP Fiori Launchpad 的三种形态

很多朋友一看到 SAP Fiori Launchpad,就会把它理解成一个带磁贴的首页。 这样理解当然没有什么错误。 但如果多做几个 Fiori 项目之后,就会发现 Fiori Launchpad 背后还是有点东西的。 它更像一个统一壳层,负责把 SAP 用不同技术栈写出来的应用装进同一套入口(Shell)里,…

作者头像 李华
网站建设 2026/4/15 17:14:16

OpenModScan:让Modbus调试变得像聊天一样简单

OpenModScan&#xff1a;让Modbus调试变得像聊天一样简单 【免费下载链接】OpenModScan Open ModScan is a Free Modbus Master (Client) Utility 项目地址: https://gitcode.com/gh_mirrors/op/OpenModScan 如果你在工业自动化领域工作&#xff0c;一定对Modbus协议不陌…

作者头像 李华
网站建设 2026/4/15 17:14:14

3分钟掌握Obsidian加密插件:保护你的数字隐私笔记

3分钟掌握Obsidian加密插件&#xff1a;保护你的数字隐私笔记 【免费下载链接】obsidian-encrypt Hide secrets in your Obsidian.md vault 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-encrypt 在数字时代&#xff0c;我们的笔记中常常包含敏感信息&#xf…

作者头像 李华
网站建设 2026/4/15 17:08:01

【国家级AI治理实验室内部方法论】:基于172万图文对+43万音频样本验证的偏见动态监测系统(含GitHub可运行Pipeline)

第一章&#xff1a;多模态大模型偏见检测与消除 2026奇点智能技术大会(https://ml-summit.org) 多模态大模型在图像-文本对齐、跨模态推理等任务中展现出强大能力&#xff0c;但其训练数据固有的社会性偏差常被放大并编码为隐式决策偏好&#xff0c;导致性别刻板印象、种族关联…

作者头像 李华
网站建设 2026/4/15 17:07:58

从Stable Diffusion到Qwen-VL,实测12家主流多模态框架备份兼容性:3种不可逆损坏场景与2.1版容灾Checklist

第一章&#xff1a;多模态大模型容灾备份策略的演进与范式重构 2026奇点智能技术大会(https://ml-summit.org) 传统容灾体系面向单模态模型设计&#xff0c;依赖静态快照与主备切换机制&#xff0c;在多模态大模型场景下已显乏力&#xff1a;参数量超千亿、跨模态对齐状态强耦…

作者头像 李华