Есть ли способ сравнить изображения, кроме библиотеки Java OpenCV? - PullRequest
1 голос
/ 26 сентября 2019

Код, созданный через Googleing.Вы найдете маленькое изображение в большом изображении, но вы найдете результат, даже если вы сравните его с совершенно не связанным изображением.Как можно решить эту проблему?

После нескольких тестов я устал от значения 0-1, хотя изображения не совпадают. Разрабатывается программа, которая ищет конкретное изображение меню с экрана.выстрел из экрана компьютера.Результаты не отличались, хотя данные уже были найдены и выполнены.Помимо библиотеки opencv, есть ли библиотека Java, в которой вы можете видеть значения результатов маленького изображения на большом изображении?

private boolean matchingImage(String existing_image, String check_image) {
        System.loadLibrary("opencv_java320");
        Mat img = Imgcodecs.imread(existing_image);
        Mat templ = Imgcodecs.imread(check_image);

        // / Create the result matrix
        int result_cols = img.cols() - templ.cols() + 1;
        int result_rows = img.rows() - templ.rows() + 1;
        Mat result = new Mat(result_rows, result_cols, CvType.CV_32FC1);

        for(int i=0; i<2; i++) {
            // / Do the Matching and Normalize
            Imgproc.matchTemplate(img, templ, result, i);
            Core.normalize(result, result, 0, 1, Core.NORM_MINMAX, -1, new Mat());
            // / Localizing the best match with minMaxLoc
            MinMaxLocResult mmr = Core.minMaxLoc(result);           
            Point matchLoc;

            if (i == Imgproc.TM_SQDIFF
                    || i == Imgproc.TM_SQDIFF_NORMED) {
                matchLoc = mmr.minLoc;
            } else {
                matchLoc = mmr.maxLoc;
            }

            //matching value
            //System.out.println(matchLoc);
            /*System.out.println(mmr.minVal);
            System.out.println(mmr.maxVal);
            System.out.println();*/
            // / Show me what you got
            Imgproc.rectangle(img, matchLoc, new Point(matchLoc.x + templ.cols(), matchLoc.y + templ.rows()),
                    new Scalar(0, 0, 0), 2, 8, 0);  
        }
        // Save the visualized detection.
        // System.out.println("Writing " + outFile);


        return false;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...