AndroidStudio opencv(一)

1、官网下载opencv中Android的sdk https://opencv.org/releases.html
2、在Androidstudio中File——new——import Module导入你的opencv,选择sdk下的java目录,在你的项目中进行引用。
AndroidStudio opencv(一)_第1张图片
ps:导入opencv之后将opencv的compilesdk 跟buildToolsVersion均修改为你项目一致的版本。

3、将opencv中sdk——native——libs放到jniLibs,我只复制了下图
AndroidStudio opencv(一)_第2张图片
补充:jniLibs自动创建只需要在gradle中添加如下代码再build一下。
AndroidStudio opencv(一)_第3张图片
4、经过上面的操作就可以直接使用opencv了,我用的3.3.0的版本。这里说明opencv的版本是因为尝试了3.3.1的版本不知道为什么同样的操作总是找不到Mat类。

public class CameraResultActivity extends AppCompatActivity {
    private String mPath;
    private ImageView mImageView;
    private Bitmap mBitmap;

    //OpenCV库静态加载并初始化
    static {
        boolean load = OpenCVLoader.initDebug();
        if (load) {
            Log.i("CV", "Open CV Libraries loaded...");
        }
    }

    private void convertGray() {
        Mat rgbMat = new Mat();
        Mat grayMat = new Mat();
        Bitmap   grayBitmap = Bitmap.createBitmap( mBitmap .getWidth(),  mBitmap .getHeight(), Bitmap.Config.RGB_565);
        Utils.bitmapToMat( mBitmap , rgbMat);//convert original bitmap to Mat, R G B.
        Imgproc.cvtColor(rgbMat, grayMat, Imgproc.COLOR_RGB2GRAY);//rgbMat to gray grayMat
        Utils.matToBitmap(grayMat, grayBitmap); //convert mat to bitmap
        mImageView.setImageBitmap(grayBitmap);
    }

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_result);
        mImageView = (ImageView) findViewById(R.id.res_imageview);
        mPath = getIntent().getStringExtra("picpath");
        mBitmap=getBitmapFromPath(mPath);
        convertGray();

    }

PS:千万不要 看网上的说需要调用

OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_3_0,getApplicationContext(),mLoaderCallback);

通过回调成功来操作之类的,上面一行的代码是检测你是否安装了opencvmanager的apk,对目前来讲没什么可以借鉴的。

你可能感兴趣的:(Android,opencv)