Opencv

遇到的问题

2020/11/13 start
在这里插入图片描述
嗯!怎么都解决不了!很气。
最后看到这篇教程Android Studio4.0导入OpenCv4.3.0,(我的android studio是3.5.1的,OpenCv4.4.0,但是不影响,照样好使!这里由衷感谢!!)运行起来简直不要太顺畅!!瞬间解决纠结了一天的问题,太令人开心了叭!

这里和其他教程的区别在于这里是直接加载sdk,其他是选择sdk -> java,至于其他步骤没什么区别。

其他步骤:

  1. 新建一个jniLibs

在这里插入图片描述

  1. 这里把jni改成jniLibs,并且勾选main,我这里是已经创建了所以没有显示main

在这里插入图片描述
去存储在你电脑里的Opencv文件夹
sdk -> native ->libs , all copy
去你当前project文件夹下的
app -> jniLibs , paste

  1. 查看两个gradle的Version是否一致
    app在这里插入图片描述
    opencvSdk
    在这里插入图片描述
  2. 到这里就导入ok了
  3. 测试是否成功
    还是那位大佬提供的教程里面的测试
    就加这两个代码片段
//OpenCV库加载并初始化成功后的回调函数
    private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
        @Override
        public void onManagerConnected(int status) {
            // TODO Auto-generated method stub
            switch (status){
                case BaseLoaderCallback.SUCCESS:
                    Log.i(TAG, "成功加载opencv");
                    Toast toast = Toast.makeText(getApplicationContext(),
                            "成功加载opencv!", Toast.LENGTH_LONG);
                    toast.setGravity(Gravity.CENTER, 0, 0);
                    toast.show();
                    break;
                default:
                    super.onManagerConnected(status);
                    Log.i(TAG, "加载失败");
                    Toast toast1 = Toast.makeText(getApplicationContext(),
                            "加载失败!", Toast.LENGTH_LONG);
                    toast1.setGravity(Gravity.CENTER, 0, 0);
                    toast1.show();
                    break;
            }

        }
    };
@Override
    public void onResume()
    {
        super.onResume();
        if (!OpenCVLoader.initDebug()) {
            Log.d(TAG, "Internal OpenCV library not found. Using OpenCV Manager for initialization");
            OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_0_0, this, mLoaderCallback);
        } else {
            Log.d(TAG, "OpenCV library found inside package. Using it!");
            mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);
        }
    }

这里发现了一点问题:
用其他复杂的教程时,会弹出提示框:Package not found
需要安装OpenCV Manager!,不安装的话直接退出。
其他:
在这里插入图片描述

  1. 项目测试
    使用这个教程灰度图来测试一下是不是真的安装好opencv了吧
    (十分感谢!!!!)
    在这里插入图片描述
    在这里插入图片描述
	private static final String TAG = "MainActivity";
    private ImageView iv_image;
    private Button bt_test;
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        iv_image = findViewById(R.id.iv_image);
        bt_test = findViewById(R.id.bt_test);
        final Bitmap bitmap = ((BitmapDrawable)getResources().getDrawable(R.drawable.aa)).getBitmap();
        iv_image.setImageBitmap(bitmap);
        bt_test.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Bitmap grayBitmap = toGrayByOpencv(bitmap);
                iv_image.setImageBitmap(grayBitmap);
            }
        });
    }
/**
     * 灰度化
     * @param srcBitmap
     * @return
     */
    public Bitmap toGrayByOpencv(Bitmap srcBitmap){
        Mat mat = new Mat();
        Utils.bitmapToMat(srcBitmap,mat);
        Mat grayMat = new Mat();
        Imgproc.cvtColor(mat, grayMat, Imgproc.COLOR_BGRA2GRAY, 1);
        Utils.matToBitmap(grayMat,srcBitmap);
        return srcBitmap;
    }

终于成功了!
可以开心的探索了!
十分感谢编写教程的人,帮助小白能够入门学习,
以上实践了两位大佬的教程,十分感谢!!

嗯,开心的起始也是悲伤的起始。
又开始了,真的就是那个方法显示是否调试成功,但其实你再添加别的方法之后又开始弹出需要安装manage了!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值