首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在16:9传感器阵列的摄像头上,通过android Camera2接口采集4:3摄像头画面

在16:9传感器阵列的摄像头上,通过android Camera2接口采集4:3摄像头画面
EN

Stack Overflow用户
提问于 2015-04-03 19:07:42
回答 2查看 4.6K关注 0票数 5

我想要捕获视频与4:3宽高比从安卓前置摄像头使用Camera2接口(增加在5.0版本的安卓)。它可以正常工作,除非摄像头有16:9传感器阵列(作为三星Galaxy S5的前置摄像头)。在这种情况下,图片看起来像是16:9的图片被捕捉并被压缩到由MediaRecorder提供的4:3的表面上。

根据文档,只要MediaRecorder的大小设置为getOutputSizes(MediaRecorder.class)提供的大小之一,就不需要任何额外的配置。相机应自动裁剪图片,使其适合媒体录像机的表面大小。

我还测试了相反的情况-用4:3传感器阵列(Nexus-5的前置摄像头)在摄像头上录制16:9视频。它工作正常-图片被裁剪为16:9的纵横比。

我假设这是android API中的一个bug,但我想看看这里是否遗漏了什么。

重现这个问题的最简单方法是使用谷歌提供的camera2Basic示例应用程序,其中包含以下change,切换为使用前置摄像头和4:3大小的预览。它在Nexus-5上工作正常,但在三星Galaxy S5上提供拉伸图像。下面是三星Galaxy S5 (Android5.0)上的camera2Basic应用程序截图。

EN

回答 2

Stack Overflow用户

发布于 2015-04-04 05:30:15

您可以(也应该)使用内置裁剪功能来选择图像的4x3区域(如果该区域为16x9 )。也就是说,只需裁剪即可丢弃两边“不必要”的像素。这可以通过使用CaptureRequest.SCALER_CROP_REGION向CaptureRequest添加一个字段/值来完成。

链接对此进行了更多的解释,但您真正需要的只是一个if语句来检查传感器的比率,以及一些数学运算来计算出您想要选择的区域的边界。

票数 0
EN

Stack Overflow用户

发布于 2015-11-13 18:29:22

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29431021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档