基于eclipse和opencv的android图像处理

基于eclipse和opencv的android图像处理,android,eclipse,opencv,Android,Eclipse,Opencv,如何使用openCV库和eclipse for android从没有cameraview的文件中选择图像来进行图像处理?我尝试了这段代码,但出现了一个错误java.lang.NullPointerException public class MainActivity extends Activity { protected static final String TAG = null; private final String imageInSD1 = "/sdcar

如何使用openCV库和eclipse for android从没有cameraview的文件中选择图像来进行图像处理?我尝试了这段代码,但出现了一个错误java.lang.NullPointerException

public class MainActivity extends Activity {




    protected static final String TAG = null;


    private final String imageInSD1 = "/sdcard/dapi1.jpg";  
    //private final String imageInSD2 = "/sdcard/fitch1.jpg";   
    //private final String imageInSD3 = "/sdcard/txred1.jpg";   

    private BaseLoaderCallback mLoaderCallBack = new BaseLoaderCallback(this){
        @Override
        public void onManagerConnected(int status){
            switch(status){
            case LoaderCallbackInterface.SUCCESS:
            {
                Log.i(TAG,"OpenCV loaded succesfully");
                mOpenCvCameraView.enableView();
            }
            default:
            {
                super.onManagerConnected(status);
            }
            }
        }
    };

     public void onResume(){
            super.onResume();
            OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_9, this, mLoaderCallBack);
        }

    private JavaCameraView mOpenCvCameraView;



    static {
        if (!OpenCVLoader.initDebug()) {
            // Handle initialization error
        }
    }


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ImageView myImageView = (ImageView)findViewById(R.id.imageview);


        Bitmap bitmap = BitmapFactory.decodeFile(imageInSD1);
        Size size = new Size(bitmap.getWidth(), bitmap.getHeight());
        Mat src = new Mat(size,CvType.CV_8UC3);
        Utils.bitmapToMat(bitmap,src);
        Imgproc.cvtColor(src, src, Imgproc.COLOR_RGB2GRAY);
        Imgproc.threshold(src, src, 100, 255, Imgproc.ADAPTIVE_THRESH_GAUSSIAN_C);
        Utils.matToBitmap(src, bitmap);
        myImageView.setImageBitmap(bitmap);


    }



}
错误

08-17 10:21:03.765:E/AndroidRuntime(1014):致命异常:主 08-17 10:21:03.765:E/AndroidRuntime(1014): java.lang.NullPointerException 08-17 10:21:03.765: E/AndroidRuntime(1014):在 com.example.deneme4.MainActivity$1.onManagerConnectioned(MainActivity.java:41) 08-17 10:21:03.765:E/AndroidRuntime(1014):在 org.opencv.android.AsyncServiceHelper$1.onServiceConnected(AsyncServiceHelper.java:318) 08-17 10:21:03.765:E/AndroidRuntime(1014):在 LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1131) 08-17 10:21:03.765:E/AndroidRuntime(1014):在 LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1148) 08-17 10:21:03.765:E/AndroidRuntime(1014):在 android.os.Handler.handleCallback(Handler.java:800)08-17 10:21:03.765:E/AndroidRuntime(1014):在 android.os.Handler.dispatchMessage(Handler.java:100)08-17 10:21:03.765:E/AndroidRuntime(1014):在 android.os.Looper.loop(Looper.java:194)08-17 10:21:03.765: E/AndroidRuntime(1014):在 android.app.ActivityThread.main(ActivityThread.java:5405)08-17 10:21:03.765:E/AndroidRuntime(1014):在 java.lang.reflect.Method.Invokenactive(本机方法)08-17 10:21:03.765:E/AndroidRuntime(1014):在 java.lang.reflect.Method.invoke(Method.java:525)08-17 10:21:03.765: E/AndroidRuntime(1014):在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:838) 08-17 10:21:03.765:E/AndroidRuntime(1014):在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)08-17 10:21:03.765:E/AndroidRuntime(1014):在 dalvik.system.NativeStart.main(本机方法)


请参阅异常堆栈跟踪的这一部分:
E/AndroidRuntime(1014):位于com.example.deneme4.MainActivity$1.onManagerConnected(MainActivity.java:41)08-17
它告诉您引发异常(41)的行以及方法名称的名称(MainActivity$1.onManagerConnected)

查看您的onManagerConnected方法,您似乎试图在未初始化的对象上调用方法:

mOpenCvCameraView.enableView();

要解决此问题,只需首先初始化mOpenCvCameraView。

您应该检查logcat中的stacktrace,并查看在哪一行中通过添加错误部分执行异常,您能帮我吗?