using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using CommonMethods; using HalconDotNet; using static DataStruct.DataStruct; namespace CaliperTool { [Serializable] public class CaliperTool:IToolInfo { public bool toolEnable = true; /// /// 输入姿态 /// public PosXYU inputPose = new PosXYU(); /// /// 制作模板时的输入位姿 /// public PosXYU templatePose = new PosXYU(); /// /// 卡尺 /// public HObject contoursDisp = null; /// /// 箭头 /// public HObject arrowDisp = null; /// /// 交点 /// public HObject crossDisp = null; /// /// 期望矩形中心行坐标 /// public HTuple expectRecStartRow = 200; /// /// 期望矩形中心列坐标 /// public HTuple expectRecStartColumn = 200; /// /// 期望矩形起点方向 /// public HTuple expectAngle = 0; /// /// 卡尺高 /// public int length1 = 40; /// /// 卡尺宽 /// public int length2 = 40; /// /// 找边极性,从明到暗或从暗到明 /// public string polarity = "negative"; /// /// 边阈值 /// public int threshold = 30; /// /// 边Sigma /// public double sigma = 1.0; /// /// 选择所查找到的点 /// public string edgeSelect = "all"; /// /// 矩形框显示 /// public bool dispRec = true; /// /// 交点显示 /// public bool dispCross = true; /// /// 找到的线段 /// public Point resultPoint = null; /// /// 显示的线 /// public HObject LineDisp = null; /// /// 新的跟随姿态变化后的预期线信息 /// HTuple newExpectLineStartRow = new HTuple(200), newExpectLineStartCol = new HTuple(200), newExpectLineEndRow = new HTuple(200), newExpectLineEndCol = new HTuple(600); /// /// 查找到的线的起点行坐标 /// private HTuple _resultLineStartRow = 0; internal HTuple ResultLineStartRow { get { _resultLineStartRow = Math.Round((double)_resultLineStartRow, 3); return _resultLineStartRow; } set { _resultLineStartRow = value; } } /// /// 查找到的线的起点列坐标 /// private HTuple _resultLineStartCol = 0; internal HTuple ResultLineStartCol { get { _resultLineStartCol = Math.Round((double)_resultLineStartCol, 3); return _resultLineStartCol; } set { _resultLineStartCol = value; } } /// /// 查找到的线的终点行坐标 /// private HTuple _resultLineEndRow = 0; internal HTuple ResultLineEndRow { get { _resultLineEndRow = Math.Round((double)_resultLineEndRow, 3); return _resultLineEndRow; } set { _resultLineEndRow = value; } } /// /// 查找到的线的终点列坐标 /// private HTuple _resultLineEndCol = 0; internal HTuple ResultLineEndCol { get { _resultLineEndCol = Math.Round((double)_resultLineEndCol, 3); return _resultLineEndCol; } set { _resultLineEndCol = value; } } /// /// 查找到线的方向 /// private HTuple _angle = 0; internal HTuple Angle { get { _angle = Math.Round((double)_angle, 3); return _angle; } set { _angle = value; } } public HObject inputImage { get; set; } = null; public ToolRunStatu toolRunStatu { get; set; } = ToolRunStatu.Not_Run; } }