private void initFileList()
        {
            lvwFiles.Clear();
            lvwFiles.Columns.Add("Image List", 252);
            ImageList imgList = new ImageList();        //Init thumbnail image list

            imgList.ColorDepth = ColorDepth.Depth24Bit;
            imgList.ImageSize  = new Size(64, 64);
            this.lvwFiles.BeginUpdate();
            for (int i = 0; i < imageFiles.ImgFileList.Count(); i++)
            {
                try
                {
                    var currImage = Image.FromFile(imageFiles.ImgFileList.ElementAt(i).FullName);
                    imgList.Images.Add(ImageProcess.FixedSize(currImage, imgList.ImageSize, Color.White));
                    GC.Collect();
                    ListViewItem listViewItem = new ListViewItem();
                    listViewItem.ImageIndex = i;
                    listViewItem.Text       = imageFiles.ImgFileList.ElementAt(i).Name;
                    listViewItem.Tag        = imageFiles.ImgFileList[i];
                    lvwFiles.Items.Add(listViewItem);
                }
                catch (OutOfMemoryException)
                {
                    MessageBox.Show("Read file failed:" + imageFiles.ImgFileList.ElementAt(i).Name);
                }
            }
            lvwFiles.SmallImageList = imgList;
            this.lvwFiles.EndUpdate();
        }
        private void UpdateObjectList()
        {
            lvwObject.Clear();
            lvwObject.Columns.Add("Object List", 252);
            ImageList imgList = new ImageList();

            imgList.ImageSize  = new Size(64, 64);
            imgList.ColorDepth = ColorDepth.Depth24Bit;
            lvwObject.BeginUpdate();
            for (int i = 0; i < xmlInfo.ObjectList.Count(); i++)
            {
                var currImage = Image.FromFile(ConfigFile.WorkDirectory.FullName + "\\" + xmlInfo.ObjectList[i].Name + "_240px\\" + xmlInfo.ImgFile.Name + "_" + xmlInfo.ObjectList[i].xmin + "_" + xmlInfo.ObjectList[i].ymin + "_" + xmlInfo.ObjectList[i].xmax + "_" + xmlInfo.ObjectList[i].ymax + ".bmp");
                imgList.Images.Add(ImageProcess.FixedSize(currImage, imgList.ImageSize, Color.White));
                GC.Collect();
                ListViewItem listViewItem = new ListViewItem();
                listViewItem.ImageIndex = i;
                listViewItem.Text       = xmlInfo.ObjectList[i].Name;
                listViewItem.ForeColor  = xmlInfo.ObjectList[i].Color;
                listViewItem.Tag        = xmlInfo.ObjectList[i];
                lvwObject.Items.Add(listViewItem);
            }
            lvwObject.SmallImageList = imgList;
            lvwObject.EndUpdate();
        }
        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();
        }