private void CompareFace(
            Damany.Util.DateTimeRange range,
            OpenCvSharp.IplImage targetImage, OpenCvSharp.CvRect rect)
        {
            try
            {
                IsRunning = true;

                targetImage.ROI = rect;
                int count = 0;

                var gray = targetImage.GetSub(rect).CvtToGray();
                var poi  = new PersonOfInterest(targetImage, gray);
                var repo = new PersonOfInterest[] { poi };
                this._comparer.Load(repo.ToList());

                //foreach (var p in portraits)
                //{
                //    if (Exit)
                //    {
                //        break;
                //    }

                //    this.view.CurrentImage = p.GetIpl().ToBitmap();

                //    var colorImg = p.GetIpl();
                //    var imgFromRepository = colorImg.GetSub(p.FaceBounds).CvtToGray();

                //    var result = this._comparer.CompareTo(imgFromRepository);

                //    foreach (var repositoryCompareResult in result)
                //    {
                //        if (repositoryCompareResult.Similarity > Thresholds[ThresholdIndex])
                //        {
                //            count++;
                //            this.view.AddPortrait(p);
                //            this.view.SetStatusText(string.Format("检索到 {0} 个目标", count));
                //        }

                //    }
                //}
            }
            finally
            {
                IsRunning = false;
            }
        }
        public void CompareClicked()
        {
            if (IsRunning)
            {
                this.Exit = true;
            }
            else
            {
                this.Exit = false;

                var from = this.view.SearchFrom;
                var to   = this.view.SearchTo;

                var range = new Damany.Util.DateTimeRange(from, to);

                var image = this.view.Image;
                var rect  = this.view.FaceRect;

                this.view.ClearFaceList();

                System.Threading.ThreadPool.QueueUserWorkItem(o =>
                                                              this.CompareFace(range, image, rect));
            }
        }
        public void CompareClicked()
        {
            if (IsRunning)
            {
                this.Exit = true;
            }
            else
            {
                this.Exit = false;

                var from = this.view.SearchFrom;
                var to = this.view.SearchTo;

                var range = new Damany.Util.DateTimeRange(from, to);

                var image = this.view.Image;
                var rect = this.view.FaceRect;

                this.view.ClearFaceList();

                System.Threading.ThreadPool.QueueUserWorkItem(o =>
                    this.CompareFace(range, image, rect));

            }
        }