android sutdio bitmap转mat的两种方式尺寸问题

项目场景:

c++写的opencv算法,移植到android上,发现输出结果和输出效率不一致


问题描述

在visual studio上执行的结果和android studio上执行的结果不一致,后来发现android studio输入的Mat尺寸比visual studio输入的mat尺寸大很多。

//方法1 Bitmap转Mat
bitmap_normal = BitmapFactory.decodeResource(getResources(), R.drawable.normal);
Mat bmpMat = new Mat();
Utils.bitmapToMat(bitmap_normal, bmpMat);//转换为后是RGBA 4 通道
Log.d("HAHA","bitmap转mat:  "+ "mat.cols = "+ bmpMat.cols() + " mat.rows = " + bmpMat.rows());

bitmap转mat:  mat.cols = 5280 mat.rows = 2970

visual studio是用Imread从电脑硬盘读取照片,打印结果是mat.cols = 1920 mat.rows = 1080


原因分析:

因为visual studio写的opencv算法是哈特曼算法,要计算的数据量比较大,比较费时间,如果传入mat尺寸比较大的话,会增加很多工作量


解决方案:

//方法2 直接mat加载图片
Mat bmpMat1 = new Mat();
try {
    bmpMat1 = Utils.loadResource(this, R.drawable.normal);//图片名称
} catch (IOException e) {
    e.printStackTrace();
}

我们换一种方式,直接Mat加载图片,并进行打印

2022-08-16 14:14:35.989 19187-19187/com.example.myhatemantest D/HAHA: bitmap转mat:  mat.cols = 5280 mat.rows = 2970
2022-08-16 14:14:36.010 19187-19187/com.example.myhatemantest D/HAHA: 直接mat加载图片:  mat.cols = 1920 mat.rows = 1080

通过比对结果,发现第二种方法获取的mat尺寸小很多,并且和visual studio中打印的尺寸一致,问题解决

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值