Intereting Posts
Сохранение и восстановление состояния Android Завод по переоборудованию преобразователя не может получить доступ к GsonConverterFactory Как очистить уведомление, если происходит сбой активности? Как получить видимый размер на мероприятии? Правильный способ обработки кнопки действий вверх? Облачные сообщения Firebase не принимаются, когда приложение в фоновом режиме Как обнаружить поддельные GPS-координаты в Android? Как реализовать круговую полосу прогресса дизайна материалов в android Анализатор моментальных снимков со студией Android Studio – что представляет собой «доминирующий размер»? Android-приложение Android не может обрабатывать javascript? Использование Youtube Intent для запуска видео с определенной начальной точки Android HTML5 – мягкая клавиатура перекрывает входное поле Переопределение Android ArrayAdapter Внедрение приложения Silent Install на платформе Google Play на Android SQLite .query (), предложение WHERE принимает только строки с двойными кавычками

Не удалось реализовать дескрипторы в android

Я создаю приложение для поиска совпадений между двумя изображениями. Я не могу правильно найти результаты матчей.

Методы сопоставления дают мне такое же количество дескрипторов, что и входные ключевые точки, и я также не могу сделать этот результат. Я использую OpenCV в качестве библиотеки в рабочей области.

Вот мой код.

Bitmap mBitmap1 = mimage1.copy(Bitmap.Config.ARGB_8888, false); Bitmap mBitmap2 = mimage2.copy(Bitmap.Config.ARGB_8888, false); Mat s_image1 = Utils.bitmapToMat(mBitmap1); Mat s_image2 = Utils.bitmapToMat(mBitmap2); Mat rgb1 = new Mat(); Mat rgb2 = new Mat(); Mat rgb3 = new Mat(); Mat temp = new Mat(); Mat o_image1 = new Mat(); Mat o_image2 = new Mat(); Mat o_image3 = new Mat(); List<KeyPoint> points1 = new ArrayList<KeyPoint>(); List<KeyPoint> points2 = new ArrayList<KeyPoint>(); List<DMatch> matches = new ArrayList<DMatch>(); FeatureDetector surf = FeatureDetector.create(FeatureDetector.SURF); surf.detect(s_image1, points1); surf.detect(s_image2, points2); Scalar color1 = new Scalar(0,255,0); Scalar color2 = new Scalar(255,0,0); Imgproc.cvtColor(s_image1, rgb1, Imgproc.COLOR_RGBA2RGB); Imgproc.cvtColor(s_image2, rgb2, Imgproc.COLOR_RGBA2RGB); Mat descriptors1 = new Mat(), descriptors2 = new Mat(); Features2d.drawKeypoints(rgb1, points1, rgb1, color2); Features2d.drawKeypoints(rgb2, points2, rgb2, color2); DescriptorExtractor extracter = DescriptorExtractor.create(DescriptorExtractor.SURF); extracter.compute(rgb1, points1, descriptors1); extracter.compute(rgb2, points2, descriptors2); int k = 5; DescriptorMatcher matcher = DescriptorMatcher.create(DescriptorMatcher.BRUTEFORCE); matcher.match(descriptors2, descriptors1, matches); Features2d.drawMatches(rgb1, points1, rgb2, points2, matches, rgb3, color1, color2); Imgproc.cvtColor(rgb1, o_image1, Imgproc.COLOR_RGB2RGBA); Imgproc.cvtColor(rgb2, o_image2, Imgproc.COLOR_RGB2RGBA); Utils.matToBitmap(o_image1, mBitmap1); mimageview1.setImageBitmap(mBitmap1); Utils.matToBitmap(o_image2, mBitmap2); mimageview2.setImageBitmap(mBitmap2); Utils.matToBitmap(o_image3, mBitmap3); mimageview3.setImageBitmap(mBitmap3); s_image1.release(); s_image2.release(); o_image1.release(); o_image2.release(); 

Solutions Collecting From Web of "Не удалось реализовать дескрипторы в android"