OpenCV竖屏问题---为何setDisplayOrientation(90)不生效?

OpenCV竖屏问题

为何camera.setDisplayOrientation(90)不生效?

相信研究OpenCV的同仁很多都试过竖屏问题,尝试过很多种方案,包括软件旋转并拉伸图像等等,效率也有高低——但是无论哪种方案性能都有损失,达不到系统相机哪种流畅的感觉。而在所有可能的方案中,camera.setDisplayOrientation(90)是最有可能不损失任何性能的,但是偏偏在代码中调用此方法不生效。

笔者经过测试发现:自己定制的相机中camera.setDisplayOrientation(90)是可以旋转图像到竖屏的,所以问题出在OpenCV上。

进一步研读代码发现:定制相机中,是申请一个SurfaceView,然后将其成员SurfaceHolder mSurfaceHolder交给相机来完成显示的——这时调用setDisplayOrientation就有效;而我们在实时处理数据时,得到的也是横屏的。
而在OpenCV中,它的图像其实是就是那个横屏数据自己转换、处理,然后也是进行拉伸之后显示在屏幕上。

结论:基于OpenCV4Android目前的结构,想通过setDisplayOrientation来实现实时旋转完全是努力错了方向。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值