コード例 #1
0
    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);
        }
    }
コード例 #2
0
    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();
            }
        }
    }
コード例 #3
0
    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);
            }
        }
    }