public static void Main(ViDi2.Training.ITool tool) { bool scriptResult = false; if (tool == null) { Console.WriteLine("No Tool selected"); return; } //Create a directory to store view images var dir = Directory.CreateDirectory(string.Format("{0}\\{1}", basePath, tool.Name)); basePath = dir.FullName; //Save views IGreenDatabase dbase = tool.Database as IGreenDatabase; //SaveViews(dbase, false); //Run Auto label suggestions scriptResult = RunScript(basePath, 30); //Import lableing if (scriptResult) { ImportLabels("pred.csv", dbase); } }
public static void ImportLabels(string filename, IGreenDatabase gdbase) { Console.WriteLine("Importing labels into Cognex DL...."); StreamReader sr = null; string line, extension = ".png"; try { sr = new StreamReader(string.Format("{0}\\{1}", basePath, filename)); while ((line = sr.ReadLine()) != null) { var imgAndLabels = line.Split(','); var filter = Path.GetFileNameWithoutExtension(imgAndLabels[0]); filter = string.Format("filename=\'{0}{1}\' and view_index={2}", filter.Substring(0, filter.Length - 2), extension, filter[filter.Length - 1]); //Console.WriteLine(filter); gdbase.Tag(filter, imgAndLabels[1]); } gdbase.Update("all", false, true); Console.WriteLine("Labels Imported Successfully"); } catch (System.Exception e) { Console.WriteLine(e.Message); } finally { if (sr != null) { sr.Close(); sr.Dispose(); } } }
public static void SaveViews(IGreenDatabase db, bool isLabeled, string filter = "all") { string className = "", path = basePath; int dbIndex = 0; ICollection <SortedViewKey> dbViews = db.List("all"); int totalCount = dbViews.Count, showLogEvery = 20; //EncoderParameters enc = new EncoderParameters(1); //var depth = new EncoderParameter(System.Drawing.Imaging.Encoder.ColorDepth, 24L); //enc.Param[0] = depth; //var codec = ImageCodecInfo.GetImageEncoders().Where(x => x.MimeType == "image/tiff").First(); if (isLabeled) { foreach (var tag in ((ViDi2.IGreenTool)db.Tool).KnownTags) { Directory.CreateDirectory(string.Format("{0}\\{1}", basePath, tag)); } } else { var dir = Directory.CreateDirectory(string.Format("{0}\\{1}", basePath, "data")); path = dir.FullName; } foreach (SortedViewKey k in dbViews) { string img_path; IImage img = db.GetViewImage(k); if (isLabeled) { className = db.GetMarking(k.SampleName).Views[k.Index].Tags[0].Name; img_path = string.Format("{0}\\{1}\\{2}_{3}.png", path, className, Path.GetFileNameWithoutExtension(k.SampleName), k.Index); } else { img_path = string.Format("{0}\\{1}_{2}.png", path, Path.GetFileNameWithoutExtension(k.SampleName), k.Index); } img.Bitmap.Save(img_path, System.Drawing.Imaging.ImageFormat.Png); dbIndex++; if (dbIndex % showLogEvery == 0 || dbIndex == totalCount) { Console.WriteLine("Images Saved = {0}/{1}..", dbIndex, totalCount); } } }