Обнаружение объектов Android OpenCV
Я пытаюсь реализовать что-то вроде этого: http://www.youtube.com/watch?v=zjxWpKCQqJc на Android.
Здесь мой код:
public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
Mat novo = new Mat();
Mat resp = new Mat();
Mat homer = new Mat();
//resp = inputFrame.gray();
novo = inputFrame.gray();
Mat lido = new Mat();
try {
lido = Utils.loadResource(this, R.drawable.homer);
} catch (IOException e) {
e.printStackTrace();
}
Imgproc.cvtColor(lido, homer, Imgproc.COLOR_RGB2GRAY);
FeatureDetector surf = FeatureDetector.create(FeatureDetector.FAST);
MatOfKeyPoint keypointsHomer = new MatOfKeyPoint();
MatOfKeyPoint keypoints = new MatOfKeyPoint();
surf.detect(homer, keypointsHomer);
surf.detect(novo, keypoints);
DescriptorExtractor SurfExtractor = DescriptorExtractor.create(FeatureDetector.SURF);
Mat descriptors = new Mat();
Mat homerDescriptors = new Mat();
SurfExtractor.compute(novo, keypoints, descriptors);
SurfExtractor.compute(homer, keypointsHomer, homerDescriptors);
DescriptorMatcher m = DescriptorMatcher.create(DescriptorMatcher.BRUTEFORCE);
MatOfDMatch matches = new MatOfDMatch();
m.match(descriptors, homerDescriptors, matches);
Features2d.drawMatches(novo, keypoints, homer, keypointsHomer, matches, resp);
return resp;
}
И я получил следующую ошибку: https://dl.dropboxusercontent.com/u/2345114/error_android.png
Если я попытаюсь нарисовать ключевые точки следующим образом:
Features2d.drawKeypoints(novo, keypoints, resp);
Features2d.drawKeypoints(homer, keypointsHomer, resp);
Оба отлично работают!
Что я делаю неправильно?
Ответы
Ответ 1
Я наконец закончу это!
Вот ссылка с окончательным результатом.
Simpson Detector (OpenCV)
Надеюсь, это поможет вам каким-то образом, в Google Play вы сможете увидеть более подробную информацию об этом проекте и загрузить исходный код. Не стесняйтесь присылать мне электронное письмо.
Я обошел проблему по-другому.
Я думаю, что функции2d.drawMatches не работают на Android. Вероятно, работает только с JVM и с компонентами, которых нет в android. Если кто-нибудь может подтвердить, что я благодарен.
Google удалил приложение и не сказал почему! знак равно
Но исходный код доступен вместе с apk на моем сайте!
quintao.info
Результат: https://www.youtube.com/watch?v=h2KHje-Pf10
Источник: github.com/raphaelquintao/SimpsonDetector
Надеюсь, я помог!