Здравствуйте.
С помощью Opencv я нахожу координаты картинки на скриншоте.
Mat screen = Highgui.imread(image1, Highgui.CV_LOAD_IMAGE_GRAYSCALE);
Mat image = Highgui.imread(image2, Highgui.CV_LOAD_IMAGE_GRAYSCALE);
Mat result = new Mat(screen.cols()- image.cols() + 1, screen.rows()- screen.rows() + 1, CvType.CV_32FC1);
Imgproc.matchTemplate(screen, image, result, Imgproc.TM_SQDIFF_NORMED);
Core.normalize(result, result, 0, 1, Core.NORM_MINMAX, -1, new Mat());
MinMaxLocResult mmr = Core.minMaxLoc(result);
Point matchLoc = mmr.minLoc;
Проблема в том, что если на скриншоте картинки нет Opencv находит нечто похожее и все равно выдает координаты.
Я могу взять и вырезать из скриншоту по тем коородинатах ту часть изображения которая должна была совпадать с шаблоном
Mat search_result = new Mat(screen, new Rect((int) matchLoc.x, (int) matchLoc.y, image.cols(), image.rows()));
Как теперь мне сравнить
search_result и
image например в процентном отношении на совпадение? Если можно получить по другому процент совпадения подскажите пожалуйста код.
Спасибо за ответ