org.openpnp.vision.pipeline.stages.MaskCircle
文章目录org.openpnp.vision.pipeline.stages.MaskCircle功能参数生成测试图片例子 - 对圆形外部做掩码效果例子 - 对圆形内部做掩码ENDorg.openpnp.vision.pipeline.stages.MaskCircle功能用于对当前工作图像应用圆形掩码。该阶段会创建一个以图像中心为圆心、指定直径的圆形区域并将该区域之外的所有像素设置为黑色即掩码效果。若直径值为负则掩码效果反转圆形区域内部变为黑色外部保留。此外支持通过 propertyName 属性在管道运行时动态覆盖直径和圆心位置例如通过脚本或执行器调整。若直径设置为 0该阶段会将整个图像变为黑色常用于调试或清空图像。该阶段不直接修改原始工作图像而是生成一个新的掩码后的图像作为输出。参数参数名类型默认值描述diameterint100圆形掩码的直径像素。若为正值保留圆形内部若为负值保留圆形外部反转掩码。若为0则整个图像被设为黑色。propertyNameStringMaskCircle用于动态覆盖该阶段参数的属性名。通过pipeline.setProperty(propertyName .diameter, value)或pipeline.setProperty(propertyName .center, value)可在运行时调整直径或圆心位置。若diameter 0则该属性名会被清空禁用动态控制。生成测试图片importcv2importnumpy as np def generate_circle_test_image(output_pathcircle_test.png,size(640,480)):# 创建彩虹渐变背景BGRbgnp.zeros((size[1],size[0],3),dtypenp.uint8)for y in range(size[1]):for x in range(size[0]):# 彩虹色色调随 x 和 y 变化 hue(x*180//size[0]y*180//size[1])%180sat255val200int(55*np.sin(x/50)*np.cos(y/50))# HSV 转 BGRhsvnp.uint8([[[hue, sat, val]]])bgrcv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)[0][0]bg[y, x]bgr# 在中心添加一个明显的圆形图案白色圆环 红色实心圆center(size[0]//2, size[1]//2)radius80# 红色实心圆cv2.circle(bg, center, radius,(0,0,255), -1)# 白色圆环cv2.circle(bg, center, radius10,(255,255,255),5)# 添加一些噪声noisenp.random.randint(0,20, bg.shape,dtypenp.uint8)bgcv2.add(bg, noise)cv2.imwrite(output_path,bg)print(f测试图片已生成: {output_path})if__name____main__:generate_circle_test_image()例子 - 对圆形外部做掩码cv-pipelinestagescv-stageclassorg.openpnp.vision.pipeline.stages.ImageReadnamereadenabledtruefileD:\3rd\openpnp_prj\openpnp-official\openpnp-test-images\my_test\circle_test.pngcolor-spaceBgrhandle-as-capturedfalse/cv-stageclassorg.openpnp.vision.pipeline.stages.MaskCirclenamemaskInsideenabledtruediameter200property-nameMaskCircle/cv-stageclassorg.openpnp.vision.pipeline.stages.ImageWritenamesaveenabledtruefileoutput_mask_inside.png//stages/cv-pipeline效果例子 - 对圆形内部做掩码cv-pipelinestagescv-stageclassorg.openpnp.vision.pipeline.stages.ImageReadnamereadenabledtruefileD:\3rd\openpnp_prj\openpnp-official\openpnp-test-images\my_test\circle_test.pngcolor-spaceBgrhandle-as-capturedfalse/cv-stageclassorg.openpnp.vision.pipeline.stages.MaskCirclenamemaskInsideenabledtruediameter-200property-nameMaskCircle/cv-stageclassorg.openpnp.vision.pipeline.stages.ImageWritenamesaveenabledtruefileoutput_mask_inside.png//stages/cv-pipelineEND