2014-09-03 109 views
1

我想加載圖像與Android類opencv上的墊子,但我有一些錯誤。 我在我的項目中添加庫。我的代碼是: private CameraBridgeViewBase mOpenCvCameraView;
私人BaseLoaderCallback mLoaderCallback =新BaseLoaderCallback(本){ @覆蓋 公共無效onManagerConnected(INT狀態){ 開關(狀態){ 情況LoaderCallbackInterface.SUCCESS: { Log.i(TAG, 「OpenCV的成功加載」 ); mOpenCvCameraView.enableView(); } break; 默認值: { super.onManagerConnected(status); } break; } } };無法加載圖像到墊子opencv

@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(); 
} 

登錄:

enter image description here

感謝

回答

1

不能使用中的onCreate(任何 OpenCV的代碼)

所謂與OpenCV中的本地代碼未加載然而,你將不得不等待,直到mLoaderCallback 完成

是,將席子任何操作onCameraViewStarted()

+0

感謝,它的工作 – 2014-09-03 08:23:26