String weightsDir; //weights directory #endregion Fields #region Constructors /** * Set the base directory (where all the images are), weights directory (wDir), and pass in the filepath * for the color names json data */ public PaletteExtractor(String directory, String wDir, String json, bool debugLogs=false) { debug = debugLogs; dir = directory; weightsDir = wDir; colorNames = new ColorNames(json); int numBins = colorNames.map.Keys.Count(); cnCache = new double[numBins, numBins]; cacheLocks = new object[256]; for (int i = 0; i < numBins; i++) { for (int j = 0; j < numBins; j++) { cnCache[i, j] = -1; } } for (int i = 0; i < cacheLocks.Length; i++) cacheLocks[i] = new object(); featureName = new FeatureName(); //create base subdirectories Directory.CreateDirectory(Path.Combine(dir, "swatches")); Directory.CreateDirectory(Path.Combine(dir, "out")); Directory.CreateDirectory(Path.Combine(dir, "saliency")); Directory.CreateDirectory(Path.Combine(dir, "segments")); }
String weightsDir; //weights directory #endregion Fields #region Constructors //Set the base directory (where all the images are), and pass in the filepath //for the color names data public PaletteExtractor(String directory, String wDir, String json) { dir = directory; weightsDir = wDir; colorNames = new ColorNames(json); int numBins = colorNames.map.Keys.Count(); cnCache = new double[numBins, numBins]; for (int i = 0; i < numBins; i++) { for (int j = 0; j < numBins; j++) cnCache[i, j] = -1; } featureName = new FeatureName(); //create base subdirectories Directory.CreateDirectory(dir + "\\swatches\\"); Directory.CreateDirectory(dir + "\\out\\"); Directory.CreateDirectory(dir + "\\saliency\\"); Directory.CreateDirectory(dir + "\\segments\\"); }
public Extract() { InitializeComponent(); reference = new List<EvalItem>(); compare = new List<EvalItem>(); featureName = new FeatureName(); diagramLeft = new List<EvalItem>(); diagramRight = new List<EvalItem>(); //load the config file String[] lines = File.ReadAllLines(config); foreach (String l in lines) { String[] fields = l.Split('>'); String param = fields.First().Trim(); String[] subfields; switch (param) { case "dir": dir = fields.Last().Trim(); break; case "json": json = fields.Last().Trim(); break; case "weightsDir": weightsDir = fields.Last().Trim(); break; case "trainInDir": trainInDir = fields.Last().Trim(); break; case "trainOutDir": trainOutDir = fields.Last().Trim(); break; case "trainRef": subfields = fields.Last().Split('^'); if (subfields.Length > 1) trainReference = new EvalItem("Palettes", subfields[0].Trim(), subfields[1].Trim().ToLower() == "filter"); else trainReference = new EvalItem("Palettes", subfields[0].Trim(), false); break; case "evalInOutDir": evalDir = fields.Last().Trim(); break; case "ref": subfields = fields.Last().Split('^'); if (subfields.Length > 2) reference.Add(new EvalItem(subfields[0].Trim(), subfields[1].Trim(), subfields[2].Trim().ToLower()=="filter")); else reference.Add(new EvalItem(subfields[0].Trim(), subfields[1].Trim(), false)); break; case "compare": subfields = fields.Last().Split('^'); if (subfields.Length > 2) compare.Add(new EvalItem(subfields[0].Trim(), subfields[1].Trim(), subfields[2].Trim().ToLower() == "filter")); else compare.Add(new EvalItem(subfields[0].Trim(), subfields[1].Trim(), false)); break; case "refkeys": refkeys = fields.Last().Trim(); break; case "diagramLeft": subfields = fields.Last().Split('^'); if (subfields.Length > 2) diagramLeft.Add(new EvalItem(subfields[0].Trim(), subfields[1].Trim(), subfields[2].Trim().ToLower() == "filter")); else diagramLeft.Add(new EvalItem(subfields[0].Trim(), subfields[1].Trim(), false)); break; case "diagramRight": subfields = fields.Last().Split('^'); if (subfields.Length > 2) diagramRight.Add(new EvalItem(subfields[0].Trim(), subfields[1].Trim(), subfields[2].Trim().ToLower() == "filter")); else diagramRight.Add(new EvalItem(subfields[0].Trim(), subfields[1].Trim(), false)); break; default: break; } } //resolve relative paths refkeys = Path.Combine(evalDir, refkeys); trainReference.Path = Path.Combine(trainInDir, trainReference.Path); ResolveRelativePaths(compare, evalDir); ResolveRelativePaths(reference, evalDir); ResolveRelativePaths(diagramLeft, evalDir); ResolveRelativePaths(diagramRight, evalDir); }