Я использую OpenCV4Android версии 2.4.10, и я проверяю свой код на Samsung Galayx GT-I9300. проблема в том, что я должен загрузить Opencv Manager из игрового магазина, чтобы мой код opencv работал, иначе приложение не запустится. Я упомянул некоторые сообщения "как показано здесь Как интегрировать OpenCV Manager в Android-приложение", чтобы узнать, как я могу запустить код opncv на андроид без необходимости загрузки OpenCV-менеджера но, к сожалению, приложение не запускается, пока OpenCV Manager не установлен.
Я попробовал следующее
static {
if (!OpenCVLoader.initDebug()) {
// Handle initialization error
}
}
private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
@Override
public void onManagerConnected(int status) {
switch (status) {
case LoaderCallbackInterface.SUCCESS:
{
Log.i(TAG, "OpenCV loaded successfully");
mOpenCvCameraView.enableView();
} break;
default:
{
super.onManagerConnected(status);
} break;
}
}
};
...
...
...
@Override
public void onResume() {
super.onResume();
Log.w(TAG, "onResume");
if (!OpenCVLoader.initDebug()) {
Log.d(TAG, "Internal OpenCV library not found. Using OpenCV Manager for initialization");
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_10, getActivity(), mLoaderCallback);
} else {
Log.d(TAG, "OpenCV library found inside package. Using it!");
mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);
}
}
но это не решило проблему. Пожалуйста, дайте мне знать, как запустить opencv-код на андроид без загрузки Opencv Manager?
Обновление
использование initAsync:
Вы могли бы привести пример использования "initAsync()" в производственной версии приложения? потому что я пытался это сделать, но, конечно, я не могу использовать его в статическом блоке, потому что подпись "intiAsync" выглядит следующим образом: "OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_10, this, mLoaderCallback); и я не могу использовать ключевое слово "this" или ссылку на обратный вызов" mLoaderCallback" внутри статического блока
public class MainActivity extends AppCompatActivity {
static {
//OpenCVLoader.initDebug();
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_10, this, mLoaderCallback); //this keyword and "mLoaderCallback" are not defined in this scope
}
private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
@Override
public void onManagerConnected(int status) {
switch (status) {
case LoaderCallbackInterface.SUCCESS: {
Log.i("MainActivity", "OpenCV loaded successfully");
}
break;
default: {
super.onManagerConnected(status);
}
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Mat m = new Mat(100, 100, CvType.CV_8UC4);
Log.d("MainActivity", "m.width()" + m.width());
Log.d("MainActivity", "m.height()" + m.height());
}
}