patrick.xu
2022-07-28 45a1c9f2540754e7cea2b58cd736bc677b2d4fdc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
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<HalconTools.MatchingParamSave> MatchingConfige = new SerializeFileTool<HalconTools.MatchingParamSave>();
                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<HalconTools.MatchingParamSave> MatchingConfige = new SerializeFileTool<HalconTools.MatchingParamSave>();
 
            MatchingParamSave param = new MatchingParamSave();
            //if (!path.EndsWith(".xml"))
            //{
            //    return param;
            //}
 
            param = MatchingConfige.GetConfig(path);
 
            return param;
        }
 
    }
}