我想在Android opencv上使用Mat类加载图像,但出现一些错误。我在我的项目上添加库。我的代码:private CameraBridgeViewBase mOpenCvCameraView;
私有BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this){@Override public void onManagerConnected(int status){switch(status){case LoaderCallbackInterface.SUCCESS:{Log.i(TAG,“ OpenCV成功加载”); mOpenCvCameraView.enableView(); } 休息; 默认值:{super.onManagerConnected(status); } 休息; }}};
@Override
public void onResume()
{
super.onResume();
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_6, this, mLoaderCallback);
}
@Override
public void onCreate(Bundle savedInstanceState) {
Log.i(TAG, "called onCreate");
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
setContentView(R.layout.activity_main);
mOpenCvCameraView = (CameraBridgeViewBase) findViewById(R.id.HelloOpenCvView);
mOpenCvCameraView.setVisibility(SurfaceView.VISIBLE);
mOpenCvCameraView.setCvCameraViewListener(this);
if (!OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_9, this, mLoaderCallback))
{
Log.e(TAG, "Cannot connect to OpenCV Manager");
}
else
Log.i(TAG, "Load it");
Mat Image = Highgui.imread("/mnt/sdcard/1.jpg");
}
@Override
public void onPause()
{
super.onPause();
if (mOpenCvCameraView != null)
mOpenCvCameraView.disableView();
}
public void onDestroy() {
super.onDestroy();
if (mOpenCvCameraView != null)
mOpenCvCameraView.disableView();
}
public void onCameraViewStarted(int width, int height) {
}
public void onCameraViewStopped() {
}
public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
return inputFrame.rgba();
}
日志:
谢谢
你不能在onCreate()中使用任何opencv代码
尚未加载opencv的本机代码,因此必须等待,直到mLoaderCallback完成。
因此,将Mat上的所有操作移至onCameraViewStarted()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句