VisionPro之ToolBlock使用代碼添加輸出類型


VisionPro中ToolBlock工具允許用戶添加系統默認(bool、int、double等)數據類型以及VisionPro自定義(CogImage8Grey、ICogImage等)數據類型,常見數據類型的添加入下圖所示。

 

 

但是,有時需要在ToolBlock輸出端添加List等相對復雜的數據類型。例如,返回當前匹配工具獲取到的多個產品的XY坐標以及角度。首先,每個變量需要存儲X、Y、A三個維度的信息。其次,每張圖像中可能含有多個產品且產品個數不確定。具體實現方式如下:

添加List的程序集以及命名空間
創建List 對象
在初始化函數中創建CogToolBlockTerminal 對象與創建的List對象進行綁定,用CogToolBlockTerminal類的Add方法添加到ToolBlock的輸出終端。
在GroupRun中對List實例對象進行數據的修改

using System;
using System.Collections;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using Cognex.VisionPro;
using Cognex.VisionPro.ToolBlock;
using System.Collections.Generic;
public class CogToolBlockAdvancedScript : CogToolBlockAdvancedScriptBase
{

  private Cognex.VisionPro.ToolBlock.CogToolBlock mToolBlock;
  List<Tuple<double,double,double>> MatchedPosition= null;
  public override bool GroupRun(ref string message, ref CogToolResultConstants result)
  {
    foreach(ICogTool tool in mToolBlock.Tools)
      mToolBlock.RunTool(tool, ref message, ref result);
      //此處添加對MatchedPosition的訪問與修改
    return false;
  }
 
  public override void Initialize(Cognex.VisionPro.ToolGroup.CogToolGroup host)
  {
    base.Initialize(host);
    this.mToolBlock = ((Cognex.VisionPro.ToolBlock.CogToolBlock)(host));
    if(MatchedPosition== null)
    {
      MatchedPosition = new List<Tuple<double,double,double>>();
    }
    if(!mToolBlock.Outputs.Contains("MatchedPosition"))
    {
      CogToolBlockTerminal m = new CogToolBlockTerminal("MatchedPosition", MatchedPosition.GetType());
      mToolBlock.Outputs.Add(m);
    }
  
  }
}

轉自:

VisionPro之ToolBlock輸出添加復雜輸出類型_dongxin_ming的博客-CSDN博客

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM