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;}
}