安卓图像处理(四)使用javacameraview实时显示相机图像 并且 去除Javacameraview四周的黑框

源码地址:https://github.com/SFUMECJF/imagedetect
看不懂可以在下面加我微信交流。

Javacameraview和surfaceview区别

总而言之,Javacameraview是经过优化后的显示类,在适用性上要更好。缺点只有帧率会低一些。所以,在配置好Open CV后,还是要选择javacameraview。

利用javacameraview显示图像

这个内容很简单,教程也很多,最重要的是在oncameraframe这个函数里面,对相机的帧最处理。

效果以及缺点

真正使用javacameraview后,会发现四周有不少黑边。我将oncameraframe里的帧resize之后,会直接报错。实在搞不定。

去除黑边

去除黑边的思路,将javacameraview缩小到1dp,然后用一个大的imageview覆盖这个javacameraview,然后,在javacameraview里,将原本要返回给javacameraview的图像,先resize到我需要的大小,铺满左右屏幕,再同时返回给imageview,可实现去除黑边功能。注意,这里因为imageview是主活动里的ui,不可以直接设置,要借助于runOnUiThread.
在oncameraview中添加如下代码,即可。

        runOnUiThread(new Runnable() {
            @Override
            public void run() {


                bmap = Bitmap.createBitmap(iv3.getWidth(),  iv3.getHeight(), Bitmap.Config.ARGB_8888);
                resize(mRGBAT, topMat, new Size(iv3.getWidth(), iv3.getHeight()));
                Utils.matToBitmap(topMat, bmap);
                iv1.setImageBitmap(bitmap);
                iv3.setImageBitmap(bmap);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值