У меня действительно проблемы с реализацией некоторого кода C ++ в моем Android-приложении для обнаружения встроенных функций в изображении.
Таким образом, проблема, похоже, заключается в методе обнаружения (). Это код:
#include <jni.h>
#include <opencv2/core.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/features2d.hpp>
#include <opencv2/features2d/features2d.hpp>
#include <vector>
extern "C" {
JNIEXPORT void JNICALL Java_com_example_moritz_ndktest_MainActivity_FindFastFeatures(
JNIEnv *, jobject, jlong addrGray, jlong addrRgba) {
cv::Mat& mGr = *(cv::Mat*)addrGray;
cv::Mat& mRgb = *(cv::Mat*)addrRgba;
std::vector<cv::KeyPoint> v;
cv::FastFeatureDetector *detector = cv::FastFeatureDetector::create(10,20,2);
detector->detect(mGr, v); //causes "Fatal signal 11 (SIGSEGV), code 1"for( unsigned int i = 0; i < v.size(); i++ )
{
const cv::KeyPoint& kp = v[i];
cv::circle(mRgb, cv::Point(kp.pt.x, kp.pt.y), 10, cv::Scalar(255,0,0,255));
}
}
...
Детектор линии -> обнаружение (mGr, v) вызывает ошибку «Фатальный сигнал 11 (SIGSEGV), код 1» и вылетает из приложения. Я не знаю, где может быть ошибка, поскольку каждый пример кода, который я видел, был таким.
Моя структура выглядит так:
Структура приложения
Я использую Android Studio 1.5.1, OpenCV4Android 3.1 и Gradle-экспериментальный: 0.7.0-alpha1. Любая помощь или намек будут очень благодарны !!!
Задача ещё не решена.
Других решений пока нет …