private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
 {
     pictureBox1.Image.Dispose();
     try
     {
         Bitmap b = ScreenshotHandler.getWindowCapture();
         pictureBox1.Image = ImageHandler.imageResize(b, 600.0 / b.Height);
         b.Dispose();
     }
     catch { }
 }
        private void findImg(Image <Gray, byte> target)
        {
            Image <Gray, byte>  img    = new Image <Gray, byte>(ScreenshotHandler.getWindowCapture());
            Image <Gray, float> result = new Image <Gray, float>(img.Width, img.Height);

            result = img.MatchTemplate(target, TemplateMatchingType.CcorrNormed);
            double min = 0, max = 0;
            Point  maxp = new Point(0, 0);
            Point  minp = new Point(0, 0);

            CvInvoke.MinMaxLoc(result, ref min, ref max, ref minp, ref maxp);
            Console.WriteLine(min + " " + max);
            CvInvoke.Rectangle(img, new Rectangle(maxp, new Size(target.Width, target.Height)), new MCvScalar(0, 0, 255), 3);
            pictureBox2.Image = img.ToBitmap();
        }
        /*
         *       public static void findImg(Image<Gray, byte> target)
         *      {
         *          Image<Gray, byte> screenshot = new Image<Gray, byte>(ScreenshotHandler.getWindowCapture());
         *          Image<Gray, float> result = new Image<Gray, float>(screenshot.Width, screenshot.Height);
         *          result = screenshot.MatchTemplate(target, TemplateMatchingType.CcorrNormed);
         *          double min = 0, max = 0;
         *          Point maxp = new Point(0, 0);
         *          Point minp = new Point(0, 0);
         *          CvInvoke.MinMaxLoc(result, ref min, ref max, ref minp, ref maxp);
         *          Console.WriteLine(min + " " + max);
         *          CvInvoke.Rectangle(screenshot, new Rectangle(maxp, new Size(target.Width, target.Height)), new MCvScalar(0, 0, 255), 3);
         *          pictureBox2.Image = screenshot.ToBitmap();
         *
         *      }
         */
        public static Point findImgLocation(string path)
        {
            Image <Gray, byte>  target     = new Image <Gray, byte>(path);
            Image <Gray, byte>  screenshot = new Image <Gray, byte>(ScreenshotHandler.getWindowCapture());
            Image <Gray, float> result     = new Image <Gray, float>(screenshot.Width, screenshot.Height);

            result = screenshot.MatchTemplate(target, TemplateMatchingType.CcorrNormed);
            double min = 0, max = 0;
            Point  maxp = new Point(0, 0);
            Point  minp = new Point(0, 0);

            CvInvoke.MinMaxLoc(result, ref min, ref max, ref minp, ref maxp);
            Console.WriteLine(min + " " + max);

            screenshot.Dispose();
            result.Dispose();

            if (max < 0.99)
            {
                throw new TargetNotFoundException();
            }
            return(new Point(maxp.X + target.Width / 2, maxp.Y + target.Height / 2));
        }