public override void Work() { ICommImage socket = (ICommImage)_in[0]; IImage[] img = socket.Images; IImage[] orig = socket.OriginalImages; images = new Gdk.Pixbuf[img.Length]; thumbs = new Gdk.Pixbuf[img.Length]; cat = socket.Categories; double scale; for (int i = 0; i < img.Length; i++) { IImage _img = new IImage(orig[i].BPP, orig[i].W, orig[i].H, orig[i].Data); images[i] = HistogramGraph(img[i]); Gdk.Pixbuf pixbuf = _img.CreatePixbuf(); if (_img.W > _img.H) { scale = _img.W / 64.0; } else { scale = _img.H / 64.0; } thumbs[i] = pixbuf.ScaleSimple(Scale(_img.W, scale), Scale(_img.H, scale), Gdk.InterpType.Bilinear); } _workdone = true; }
private Gdk.Pixbuf HistogramGraph(IImage img) { IImage graph = new IImage(BPP.Grayscale, img.W, 260); graph.Clear((byte)255); for (int i = 0; i < img.W; i++) { int hval = (byte)img[i, 0]; for (int j = 0; j < hval; j++) { graph[i, 255 - j] = (byte)0; } for (int j = 0; j < 3; j++) { graph[i, 259 - j] = (byte)((i * 255) / img.W); } } return(graph.CreatePixbuf()); }
public override void Work() { ICommImage socket = (ICommImage)_in[0]; IImage[] img = socket.Images; images = new Gdk.Pixbuf[img.Length]; thumbs = new Gdk.Pixbuf[img.Length]; cat = socket.Categories; double scale; for (int i = 0; i < img.Length; i++) { IImage _img = new IImage(img[i].BPP, img[i].W, img[i].H, img[i].Data, invert); if (invert) { _img.Invert(); } images[i] = _img.CreatePixbuf(); if (_img.W > _img.H) { scale = _img.W / 64.0; } else { scale = _img.H / 64.0; } thumbs[i] = images[i].ScaleSimple(Scale(_img.W, scale), Scale(_img.H, scale), Gdk.InterpType.Bilinear); } _workdone = true; }
public override void Work() { ICommResult r = _in[0] as ICommResult; int[] res = r.FindResultsSimple(); int numcat = FindNumCategories(r.TestCategories); cat = new Category[numcat + 1]; for (int i = 0; i < numcat + 1; i++) { cat[i] = new Category(); } total = r.Length; matched = 0; for (int i = 0; i < r.Length; i++) { int tc = r.TestCategory(i); int bc = r.BaseCategory(res[i]); cat[tc].total++; if (cat[tc].image == null) { double scale; IImage img = null; for (int j = 0; j < r.OriginalBaseImages.Length; j++) { if (r.BaseCategory(j) == tc) { img = r.OriginalBaseImages[j]; if (first) { break; } } } if (img == null) { cat[tc].image = new Gdk.Pixbuf(Assembly.GetEntryAssembly(), "no-base.png"); } else { if (img.W > img.H) { scale = img.W / 48.0; } else { scale = img.H / 48.0; } Gdk.Pixbuf tmp = img.CreatePixbuf(); cat[tc].image = tmp.ScaleSimple(Scale(img.W, scale), Scale(img.H, scale), Gdk.InterpType.Bilinear); } } if (tc == bc && r.Match[i]) { cat[tc].matched++; matched++; } } _workdone = true; }
public override void Work() { ICommResult r = _in[0] as ICommResult; itest = new Gdk.Pixbuf[r.Length]; ibase = new Gdk.Pixbuf[r.OriginalBaseImages.Length]; double scale; for (int i = 0; i < itest.Length; i++) { IImage img = r.OriginalTestImages[i]; if (img.W > img.H) { scale = img.W / 32.0; } else { scale = img.H / 32.0; } Gdk.Pixbuf tmp = img.CreatePixbuf(); itest[i] = tmp.ScaleSimple(Scale(img.W, scale), Scale(img.H, scale), Gdk.InterpType.Bilinear); } for (int i = 0; i < ibase.Length; i++) { IImage img = r.OriginalBaseImages[i]; if (img.W > img.H) { scale = img.W / 32.0; } else { scale = img.H / 32.0; } Gdk.Pixbuf tmp = img.CreatePixbuf(); ibase[i] = tmp.ScaleSimple(Scale(img.W, scale), Scale(img.H, scale), Gdk.InterpType.Bilinear); } res = new IResult[r.Length]; for (int i = 0; i < r.Length; i++) { res[i] = r[i]; } match = r.FindResultsSimple(); for (int i = 0; i < r.Length; i++) { if (!r.Match[i]) { match[i] = -1; } } _workdone = true; }
public override void Work() { ICommResult r = _in[0] as ICommResult; itest = new Gdk.Pixbuf[r.Length]; thumbs = new Gdk.Pixbuf[r.Length]; ibase = new Gdk.Pixbuf[r.OriginalBaseImages.Length]; double scale; for (int i = 0; i < itest.Length; i++) { IImage _img = r.OriginalTestImages[i]; IImage img = new IImage(_img.BPP, _img.W, _img.H, _img.Data, invert); if (invert) { img.Invert(); } if (img.W > img.H) { scale = img.W / 256.0; } else { scale = img.H / 256.0; } Gdk.Pixbuf tmp = img.CreatePixbuf(); itest[i] = tmp.ScaleSimple(Scale(img.W, scale), Scale(img.H, scale), Gdk.InterpType.Bilinear); if (img.W > img.H) { scale = img.W / 64.0; } else { scale = img.H / 64.0; } thumbs[i] = itest[i].ScaleSimple(Scale(img.W, scale), Scale(img.H, scale), Gdk.InterpType.Bilinear); } for (int i = 0; i < ibase.Length; i++) { IImage _img = r.OriginalBaseImages[i]; IImage img = new IImage(_img.BPP, _img.W, _img.H, _img.Data, invert); if (invert) { img.Invert(); } if (img.W > img.H) { scale = img.W / 256.0; } else { scale = img.H / 256.0; } Gdk.Pixbuf tmp = img.CreatePixbuf(); ibase[i] = tmp.ScaleSimple(Scale(img.W, scale), Scale(img.H, scale), Gdk.InterpType.Bilinear); } res = r.FindResultsSimple(); cat1 = r.BaseCategories; cat2 = r.TestCategories; match = r.Match; _workdone = true; }