Android Kotlin学习(五)-OpenCV

Android Kotlin学习(五)-OpenCV


因为经常需要使用OpenCV,所以试下Kotlin如何使用OpenCV库

OpenCV导入

OpenCV有封装好的Android库,直接去这里下载:
OpenCV
下载好后在项目里通过Import Module导入到项目中

初始化

OpenCV在Application中初始化:

class MainApplication : Application() {

    override fun onCreate() {
        super.onCreate()
        MMKV.initialize(this);
        if (!OpenCVLoader.initDebug()){
            OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_0_0, this, mLoaderCallback);
        } else {
            mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);
        }
    }
    private val mLoaderCallback: BaseLoaderCallback = object : BaseLoaderCallback(this) {
        override fun onManagerConnected(status: Int) {

        }
    }
}

格式转换

  1. 首先加载Assets目录下图片,通过ImageView展示

     var am = this.resources.assets;
     var inputStream = am.open("test.jpg");
     var bitmap = BitmapFactory.decodeStream(inputStream);
     binding.iv1.setImageBitmap(bitmap);
    
  2. Bitmap转Mat,然后转成灰度图

    var mat = Mat(bitmap.width,bitmap.height,CvType.CV_8UC3);
    Utils.bitmapToMat(bitmap,mat);
    Imgproc.cvtColor(mat,mat,Imgproc.COLOR_RGB2GRAY);
    

绘制文字和图形

	var point1 = Point(100.0, 100.0);
    var point2 = Point(200.0, 200.0);
    Imgproc.line(mat, point1, point2, rectScalar, 5);
    Imgproc.putText(mat,"Hello",point1,4, 1.0,rectScalar,5);

最后再转Bitmap展示

    var bitmap2 = Bitmap.createBitmap(bitmap.width, bitmap.height, Bitmap.Config.RGB_565);
    Utils.matToBitmap(mat,bitmap2);
    binding.iv2.setImageBitmap(bitmap2);

效果如下:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值