news 2026/4/19 17:56:17

org.openpnp.vision.pipeline.stages.MaskCircle

作者头像

张小明

前端开发工程师

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

文章目录

  • org.openpnp.vision.pipeline.stages.MaskCircle
    • 功能
    • 参数
    • 生成测试图片
    • 例子 - 对圆形外部做掩码
      • 效果
    • 例子 - 对圆形内部做掩码
    • END

org.openpnp.vision.pipeline.stages.MaskCircle

功能

用于对当前工作图像应用圆形掩码。该阶段会创建一个以图像中心为圆心、指定直径的圆形区域,并将该区域之外的所有像素设置为黑色(即掩码效果)。若直径值为负,则掩码效果反转:圆形区域内部变为黑色,外部保留。此外,支持通过 propertyName 属性在管道运行时动态覆盖直径和圆心位置(例如通过脚本或执行器调整)。若直径设置为 0,该阶段会将整个图像变为黑色(常用于调试或清空图像)。

该阶段不直接修改原始工作图像,而是生成一个新的掩码后的图像作为输出。

参数

参数名类型默认值描述
diameterint100圆形掩码的直径(像素)。若为正值,保留圆形内部;若为负值,保留圆形外部(反转掩码)。若为0,则整个图像被设为黑色。
propertyNameString"MaskCircle"用于动态覆盖该阶段参数的属性名。通过pipeline.setProperty(propertyName + ".diameter", value)pipeline.setProperty(propertyName + ".center", value)可在运行时调整直径或圆心位置。若diameter = 0,则该属性名会被清空(禁用动态控制)。

生成测试图片

importcv2importnumpy as np def generate_circle_test_image(output_path="circle_test.png",size=(640,480)):# 创建彩虹渐变背景(BGR)bg=np.zeros((size[1],size[0],3),dtype=np.uint8)for y in range(size[1]):for x in range(size[0]):# 彩虹色:色调随 x 和 y 变化 hue=(x*180//size[0]+y*180//size[1])%180sat=255val=200+int(55*np.sin(x/50)*np.cos(y/50))# HSV 转 BGRhsv=np.uint8([[[hue, sat, val]]])bgr=cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)[0][0]bg[y, x]=bgr# 在中心添加一个明显的圆形图案(白色圆环 + 红色实心圆)center=(size[0]//2, size[1]//2)radius=80# 红色实心圆cv2.circle(bg, center, radius,(0,0,255), -1)# 白色圆环cv2.circle(bg, center, radius+10,(255,255,255),5)# 添加一些噪声noise=np.random.randint(0,20, bg.shape,dtype=np.uint8)bg=cv2.add(bg, noise)cv2.imwrite(output_path,bg)print(f"测试图片已生成: {output_path}")if__name__=="__main__":generate_circle_test_image()

例子 - 对圆形外部做掩码

<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\circle_test.png"color-space="Bgr"handle-as-captured="false"/><cv-stageclass="org.openpnp.vision.pipeline.stages.MaskCircle"name="maskInside"enabled="true"diameter="200"property-name="MaskCircle"/><cv-stageclass="org.openpnp.vision.pipeline.stages.ImageWrite"name="save"enabled="true"file="output_mask_inside.png"/></stages></cv-pipeline>

效果

例子 - 对圆形内部做掩码

<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\circle_test.png"color-space="Bgr"handle-as-captured="false"/><cv-stageclass="org.openpnp.vision.pipeline.stages.MaskCircle"name="maskInside"enabled="true"diameter="-200"property-name="MaskCircle"/><cv-stageclass="org.openpnp.vision.pipeline.stages.ImageWrite"name="save"enabled="true"file="output_mask_inside.png"/></stages></cv-pipeline>

END

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

PCB布局之电源完整性设计:低阻抗路径与去耦策略

调试电路时常见电源噪声超标、纹波过大、芯片工作不稳定等问题&#xff0c;根源多为电源布局不合理 —— 电源路径过长、去耦电容缺失或摆放偏远、电源 / 地平面不完整&#xff0c;导致电源阻抗过高、噪声无法滤除。电源完整性&#xff08;PI&#xff09;布局的核心&#xff0c…

作者头像 李华
网站建设 2026/4/19 3:05:24

PCB布局散热与可制造性

作为硬件工程师&#xff0c;布局时往往侧重电气性能&#xff0c;忽视散热与可制造性&#xff08;DFM&#xff09;&#xff0c;导致产品批量生产时良率低、焊接不良、器件过热老化等问题。散热布局核心是热均衡、防热耦合、留散热通道&#xff1b;DFM 布局核心是适配工艺、简化装…

作者头像 李华
网站建设 2026/4/18 21:34:41

学生管理系统(单链表练习)

功能&#xff1a; 录入学生信息打印学生信息统计学生人数查找学生信息修改学生信息删除学生信息按成绩排序退出系统#include <stdio.h> #include <stdlib.h> #include <conio.h>//学生信息 typedef struct _Student {int stuNum;char name[20];int score; }S…

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

头歌实训-图论实战:从概念到最短路径的Python实现

1. 图论基础&#xff1a;从零理解数据结构 第一次接触图论时&#xff0c;我完全被各种术语搞晕了。直到在头歌实训平台反复练习后&#xff0c;才发现图论其实就像我们日常生活中的社交网络。想象一下微信好友关系&#xff1a;每个人是一个顶点&#xff0c;好友关系就是边&#…

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

intv_ai_mk11镜像免配置:开箱即用Web界面+独立venv环境部署详解

intv_ai_mk11镜像免配置&#xff1a;开箱即用Web界面独立venv环境部署详解 1. 快速了解intv_ai_mk11 intv_ai_mk11是一个基于Llama架构的中等规模文本生成模型&#xff0c;特别适合日常的文本处理任务。想象一下&#xff0c;它就像一个随时待命的文字助手&#xff0c;能帮你回…

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

DynamoDB 交易写操作的计费解析

引言 在使用 AWS DynamoDB 进行数据库操作时,计费是每个开发者都需要考虑的重要因素之一。特别是当我们使用 DynamoDB 进行交易写操作时,计费方式可能会直接影响应用程序的设计和成本。本文将详细探讨 DynamoDB 交易写操作的计费机制,并通过一个聊天应用的实例来说明其实际…

作者头像 李华