Halcon本身应用需要一定的门槛,但是也可以封装成类似VM简单易操作的样子
上期文章分享的是连线功能,本期分享数据传参
1,定义通用属性和方法
public class BaseModel
{public HObject HInput { get; set; }//图像输入public HObject HOutput { get; set; }//图像输出public HTuple TInput { get; set; }//数据输入public HTuple TOutput { get; set; }//数据输出public HObject RawImage { get; set; }//原始图像}
2,定义灰度化工具的图像
public class GrayModel : BaseModel
{public HObject GrayImage { get; set; }
}
3,定义所有来自模型的数据
public GrayModel Model { get; set; } = new GrayModel();
4,指定Halcon方法
HOperatorSet.Rgb1ToGray(Model.HInput, out var grayImage);
5,保存独有数据
Model.HOutput = grayImage;//输出图像
6,保存通用数据
NodeTool.SetNodeDate(NodeName, Model);//
public void SetNodeDate(string nodeName, BaseModel model)
{//获取当前节点var currentNode = GetNodeForNodeName(nodeName);//获取下一个节点var nextNode = GetNextNode(currentNode);//如果不为空则绑定数据if (nextNode != null){//获取下一个节点执行工具对象中对应的数据模型var nextModel = ToolDict[nextNode.NodeName].GetModel();//设置下一个节点的输入nextModel.TInput=model.TOutput;nextModel.HInput=model.HOutput;}
}