using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace HalconTools { [Serializable] public class MatchingParamSave { public double StartingAngle { get; set; } public double AngleExtent { get; set; } public double MinScale { get; set; } public double MaxScale { get; set; } public double MinScore { get; set; } public int NumMatches { get; set; } public double MaxOverlap { get; set; } public string Subpixel { get; set; } public int NumLevel { get; set; } public int LastPyramidLevel { get; set; } public double Greediness { get; set; } private MatchingParamSave SaveParam(MatchingAssistant param)// { MatchingParamSave paramSave = new MatchingParamSave(); paramSave.StartingAngle = param.getParameterSet.mStartingAngle; paramSave.AngleExtent = param.getParameterSet.mAngleExtent; paramSave.MinScale = param.getParameterSet.mMinScale; paramSave.MaxScale = param.getParameterSet.mMaxScale; paramSave.MinScore = param.getParameterSet.mMinScore; paramSave.NumMatches = param.getParameterSet.mNumMatches; paramSave.MaxOverlap = param.getParameterSet.mMaxOverlap; paramSave.Subpixel = param.getParameterSet.mSubpixel; paramSave.NumLevel = param.getParameterSet.mNumLevel; paramSave.LastPyramidLevel = param.getParameterSet.mLastPyramidLevel; paramSave.Greediness = param.getParameterSet.mGreediness; return paramSave; } public MatchingParam TranParam(MatchingParamSave paramSave) { MatchingParam param = new MatchingParam(); param.mStartingAngle = paramSave.StartingAngle; param.mAngleExtent = paramSave.AngleExtent; param.mMinScale = paramSave.MinScale; param.mMaxScale = paramSave.MaxScale; param.mMinScore = paramSave.MinScore; param.mNumMatches = paramSave.NumMatches; param.mMaxOverlap = paramSave.MaxOverlap; param.mSubpixel = paramSave.Subpixel; param.mNumLevel = paramSave.NumLevel; param.mLastPyramidLevel = paramSave.LastPyramidLevel; param.mGreediness = paramSave.Greediness; return param; } public bool Save(MatchingAssistant mAssistant) { string path = System.Windows.Forms.Application.StartupPath + "\\MatchingConfige"; if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } System.Windows.Forms.SaveFileDialog saveMatchingConfige = new System.Windows.Forms.SaveFileDialog(); saveMatchingConfige.InitialDirectory = System.Windows.Forms.Application.StartupPath + "\\MatchingConfige"; saveMatchingConfige.Filter = "xml|*.xml"; if (saveMatchingConfige.ShowDialog() == System.Windows.Forms.DialogResult.OK) { string files = saveMatchingConfige.FileName; SerializeFileTool MatchingConfige = new SerializeFileTool(); HalconTools.MatchingParamSave param = new HalconTools.MatchingParamSave(); param = param.SaveParam(mAssistant); ; MatchingConfige.SetConfig(files, param); return true; } else { return false; } } public MatchingParamSave Load(string path) { SerializeFileTool MatchingConfige = new SerializeFileTool(); MatchingParamSave param = new MatchingParamSave(); //if (!path.EndsWith(".xml")) //{ // return param; //} param = MatchingConfige.GetConfig(path); return param; } } }