康耐视Visionpro脚本编写教程二

本文介绍了如何在C#中编写高级脚本,专注于CogPMAlignTool模板匹配工具的使用。首先定义输出项并初始化,接着创建和配置模板匹配工具。在工具运行后,检查运行状态,获取模板的个数和坐标信息,将结果赋值给输出项。通过脚本实现了自动化处理和结果验证,确保脚本正确性和输出准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文已参与[新人创作礼]活动,一起来开启掘金创作之路。

第二步 开始脚本的编写

上一章我们说到了输出项的配置,那么本文就目前的输出,做一个脚本的编写;
首先我们需要构建一个脚本。

image.png
这里的脚本分为VB和c#,又都分为低级脚本和高级脚本。我们本文主要讲的就是c#的高级脚本,C# Advanced Script
我们先创建一个高级脚本:

在工具组先配置完的情况下可以直接进行脚本的编写,在脚本写完又增加了新的工具时,需要增加一些配置,我们后续再讲,本文不再讲解

image.png
和编程一样,脚本的编写也要遵循先定义,后赋值,再使用的步骤。

定义工具

image.png

    //首先需要给输出项赋值,作为我们的判断依据,必须有初始值
    mToolBlock.Outputs["patCount"].Value = 0;
    mToolBlock.Outputs["patZuoBiao"].Value =" 0.00,0.00";
    //定义模板匹配工具并且赋值
    CogPMAlignTool pat = mToolBlock.Tools["CogPMAlignTool1"] as CogPMAlignTool;

使用工具

image.png
此处工具是自动全部运行,我们也可以讲工具改为手动控制运行,本文不作讲解,有兴趣的朋友可以自行研究。
模板定位工具有很多自己的属性,我们可以根据我们的需求去查找我们需要的属性,并且再脚本中运用。

image.png
通过添加终端可以添加工具的所有属性。
我们这次使用的是模板的个数和坐标,不需要从终端添加,我们不做细致的讲解。

image.png

 //工具运行结束后,我们需要判断工具是否正常运行
    //本文由宋小童创建于2020/05/18
    if( pat.RunStatus.Result == CogToolResultConstants.Accept)
    {
    
    
    }
    else
    {
      mToolBlock.Outputs["patCount"].Value = "error";
      mToolBlock.Outputs["patZuoBiao"].Value = "工具运行失败";
    }
     

image.png


    mToolBlock.Outputs["patCount"].Value = 0;
    mToolBlock.Outputs["patZuoBiao"].Value =" 0.00,0.00";
    CogPMAlignTool pat = mToolBlock.Tools["CogPMAlignTool1"] as CogPMAlignTool;
    // Run each tool using the RunTool function
    foreach(ICogTool tool in mToolBlock.Tools)
      mToolBlock.RunTool(tool, ref message, ref result);
    //工具运行结束后,我们需要判断工具是否正常运行
    //本文由宋小童创建于2020/05/18
    if( pat.RunStatus.Result == CogToolResultConstants.Accept)
    {
      //模板的个数赋值给输出的个数
      mToolBlock.Outputs["patCount"].Value = pat.Results.Count; 
      //模板的第二个坐标的值赋给我们的输出;
      mToolBlock.Outputs["patZuoBiao"].Value = pat.Results[1].GetPose().TranslationX.ToString("0.00") + "," + pat.Results[1].GetPose().TranslationY.ToString("0.00");
    }
    else
    {
      mToolBlock.Outputs["patCount"].Value = "error";
      mToolBlock.Outputs["patZuoBiao"].Value = "工具运行失败";
    }
     
    return false;
    
    

然后我们手动运行工具组,打开模板工具,进入结果

image.png
查看第二个模板的坐标数据为1569.1 1255.66
然后返回我们的工具组,查看我们输出的结果里面的坐标值

image.png
发现结果完全一致,说明我们的脚本目前已经完成了编写,且输出的结果没有问题。

本文主要讲解了脚本的编写,后续我们还会讲到再c#中怎么调用我们输出的结果和图像。

以下是一个简单的VisionPro脚本编写案例: 设想有一个生产线,需要对产品进行自动化检测。我们需要使用VisionPro来检测产品中的缺陷或错误,并将其分类为合格或不合格的产品。 首先,我们需要定义一些图像处理工具和算法,如边缘检测、形状匹配等。然后,我们需要编写脚本,以便在运行时使用这些工具和算法。 以下是一个示例脚本,用于检测产品中的缺陷或错误: ``` '初始化VisionPro工具箱 Set vpp = CreateObject("vispro.vispro") '加载图像 Set img = vpp.OpenImage("C:\Images\Product1.bmp") '定义ROI Set roi = vpp.DefineROI(img, 100, 100, 200, 200) '进行边缘检测 Set edge = vpp.EdgeDetect(roi, 50) '进行形状匹配 Set shape = vpp.MatchShape(edge, "C:\Templates\Defect1.tpl") '判断产品是否合格 If shape.ResultScore > 0.8 Then MsgBox("产品合格") Else MsgBox("产品不合格") End If '释放资源 Set roi = Nothing Set edge = Nothing Set shape = Nothing Set img = Nothing Set vpp = Nothing ``` 以上脚本中,我们首先初始化了VisionPro工具箱,并加载了需要检测的图像。然后,我们定义了一个ROI(感兴趣区域),并使用边缘检测工具检测了该区域的边缘。接着,我们使用形状匹配工具将边缘与一个模板进行匹配,以检测产品中的缺陷或错误。最后,我们根据匹配结果判断产品是否合格,并释放了所有的资源。 当然,这只是一个示例脚本,实际上,我们需要编写更加复杂和完善的脚本来实现自动化检测。但是,这个案例可以帮助我们了解如何使用VisionPro编写脚本,并对其基本功能有一个初步的了解。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宋小童

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值