Cognex Vision Suite(ViDi):如何实现大ROI减去内部小ROI的区域去除
康耐视实现大ROI减去内部小ROI的方法
VisionPro工具链实现步骤
- 创建大矩形ROI(
CogRectangleAffine)和内部小矩形ROI(同样用CogRectangleAffine),确保小ROI完全处于大ROI范围内。 - 调用
CogRegionDifference工具,将大ROI设为InputRegionA,小ROI设为InputRegionB,工具会自动计算两个区域的差值,得到大框减去小框的目标区域。 - 将该差值区域直接作为后续图像处理步骤的输入ROI,不会改变原图像尺寸,仅限定有效处理范围。
- 创建大矩形ROI(
EasyBuilder可视化操作流程
- 在图像界面框选大矩形ROI,保存为区域变量。
- 再框选内部小矩形ROI,保存为另一区域变量。
- 找到「区域运算」类工具,选择「区域差」功能,将大区域设为被减区域、小区域设为减去区域,生成新的目标ROI。
- 将新ROI关联到后续检测、测量等工具的ROI输入端口即可。
关键注意点
- 避免使用单纯的「ROI裁剪滤镜」,这类工具会直接输出裁剪后的图像块,而非保留原图像尺寸的区域掩码。
- 若基于脚本开发(如C#调用VisionPro),可通过代码实例化工具实现:
CogRectangleAffine bigRoi = new CogRectangleAffine(); bigRoi.CenterX = 500; bigRoi.CenterY = 300; bigRoi.Width = 800; bigRoi.Height = 400; bigRoi.Rotation = 0; CogRectangleAffine smallRoi = new CogRectangleAffine(); smallRoi.CenterX = 500; smallRoi.CenterY = 300; smallRoi.Width = 200; smallRoi.Height = 100; smallRoi.Rotation = 0; CogRegionDifference regionDiff = new CogRegionDifference(); regionDiff.InputRegionA = bigRoi; regionDiff.InputRegionB = smallRoi; ICogRegion finalRoi = regionDiff.OutputRegion;
内容的提问来源于stack exchange,提问作者Francisco Cardão
相关产品推荐
相关产品推荐

