private void picShow_MouseUp(object sender, MouseEventArgs e) { if (isDrag == true) { isDrag = false; int x1, y1, x2, y2; Image source = Image.FromFile(xmlInfo.ImgFile.FullName); ImageProcess.InOrder(startPoint, e.Location, out x1, out y1, out x2, out y2, source); var p1 = new Point(x1, y1); var p2 = new Point(x2, y2); if (ImageProcess.isRectangle(p1, p2)) { p1 = ImageProcess.ResizedToSource(startPoint, source.Size, picShow.Image.Size); p2 = ImageProcess.ResizedToSource(e.Location, source.Size, picShow.Image.Size); FormClass formClass = new FormClass(ImageProcess.CropRectangle(p1, p2, source), Control.MousePosition); formClass.ShowDialog(); if (formClass.result != -1) { ImageProcess.InOrder(p1, p2, out x1, out y1, out x2, out y2, source); MyObject myObject = new MyObject(formClass.result, x1, y1, x2, y2); xmlInfo.AddObject(myObject); tempBitmap = ImageProcess.DrawRectangle(startPoint, e.Location, tempBitmap, true, 2, myObject.Color); UpdateObjectList(); } } picShow.Image = tempBitmap; GC.Collect(); } }
private void lvwObject_DoubleClick(object sender, EventArgs e) { Image source = Image.FromFile(xmlInfo.ImgFile.FullName); MyObject selected = (MyObject)lvwObject.SelectedItems[0].Tag; FormClass formClass = new FormClass(ImageProcess.CropRectangle(selected.Min, selected.Max, source), Control.MousePosition); formClass.ShowDialog(); if (formClass.result == -1) { xmlInfo.DelObject(selected); } else { xmlInfo.DelObject(selected); selected.NameID = formClass.result; xmlInfo.AddObject(selected); } showImage(); }
public void AddObject(MyObject myobject) { var sourceimg = Image.FromFile(ImgFile.FullName); if (!Directory.Exists(imgFile.DirectoryName + "\\" + myobject.Name)) { Directory.CreateDirectory(imgFile.DirectoryName + "\\" + myobject.Name); } if (!Directory.Exists(imgFile.DirectoryName + "\\" + myobject.Name + "_240px")) { Directory.CreateDirectory(imgFile.DirectoryName + "\\" + myobject.Name + "_240px"); } ImageProcess.CropRectangle(new Point(myobject.xmin, myobject.ymin), new Point(myobject.xmax, myobject.ymax), sourceimg).Save(imgFile.DirectoryName + "\\" + myobject.Name + "\\" + imgFile.Name + "_" + myobject.xmin + "_" + myobject.ymin + "_" + myobject.xmax + "_" + myobject.ymax + ".bmp", ImageFormat.Bmp); Image image240 = ImageProcess.Crop240Rectangle(new Point(myobject.xmin, myobject.ymin), new Point(myobject.xmax, myobject.ymax), sourceimg); ImageProcess.FixedSize(image240, new Size(240, 240), Color.Black).Save(imgFile.DirectoryName + "\\" + myobject.Name + "_240px\\" + imgFile.Name + "_" + myobject.xmin + "_" + myobject.ymin + "_" + myobject.xmax + "_" + myobject.ymax + ".bmp", ImageFormat.Bmp); root.Add ( new XElement ( "object", new XElement ( "name", myobject.Name ), new XElement ( "pose", "Unspecified" ), new XElement ( "truncated", "0" ), new XElement ( "difficult", "0" ), new XElement ( "bndbox", new XElement ( "xmin", myobject.xmin.ToString() ), new XElement ( "ymin", myobject.ymin.ToString() ), new XElement ( "xmax", myobject.xmax.ToString() ), new XElement ( "ymax", myobject.ymax.ToString() ) ) ) ); SaveToFile(); }