【问题标题】:How can I use OpenCV with stored images, without a camera?如何在没有相机的情况下将 OpenCV 与存储的图像一起使用?
【发布时间】:2013-09-05 00:08:15
【问题描述】:

如何在不使用 JavaCameraView 的情况下使用 OpenCV 处理智能手机上保存的一些图像?

我想处理保存在 SD 卡上的图像,然后在屏幕上显示处理结果。我根据opencv4android库中的教程实现了我的,他们使用onCameraFrame方法来显示图像并实现CameraViewListener并使用CameraBridgeViewBase。但是,我只想处理图像,我不想使用相机来捕捉图像,我认为这些元素可能是不必要的。

如何在不使用相机的情况下使用 OpenCV 更改 opencv4android 库和处理存储的图像?

【问题讨论】:

    标签: android opencv


    【解决方案1】:

    如果有人还在寻找答案:

    package com.example.ocv4androidwithoutcamera;
    
    import org.opencv.android.BaseLoaderCallback;
    import org.opencv.android.InstallCallbackInterface;
    import org.opencv.android.LoaderCallbackInterface;
    import org.opencv.android.OpenCVLoader;
    import org.opencv.core.Mat;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.util.Log;
    import android.widget.Toast;
    
    public class MainActivity extends Activity implements LoaderCallbackInterface {
    
        protected BaseLoaderCallback mOpenCVCallBack = new BaseLoaderCallback(this) {
            @Override
            public void onManagerConnected(int status) {
                switch (status) {
                case LoaderCallbackInterface.SUCCESS:
                {
                    onOpenCVReady();
                } break;
                default:
                {
                    super.onManagerConnected(status);
                } break;
                }
            }
        };
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    
        @Override
        protected void onResume()
        {
            super.onResume();
    
            Log.i("DEMO", "Trying to load OpenCV library");
            if (!OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_4, this, mOpenCVCallBack))
            {
                Log.e("DEMO", "Cannot connect to OpenCV Manager");
            }
        }
    
        protected void onOpenCVReady(){
            //this should crash if opencv is not loaded
            Mat img = new Mat();
            Toast.makeText(getApplicationContext(), "opencv ready", Toast.LENGTH_LONG).show();
    
        }
    
        @Override
        public void onManagerConnected(int status) {
            // TODO Auto-generated method stub
    
        }
    
        @Override
        public void onPackageInstall(int operation,
                InstallCallbackInterface callback) {
            // TODO Auto-generated method stub
    
        }
    
    }
    

    不要忘记在 Project Properties => Android => Library 中添加 opencv 库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-21
      • 1970-01-01
      • 1970-01-01
      • 2012-08-24
      • 2016-02-21
      • 2021-10-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多