如何在unity中获得网络摄像头的视野?

问题描述 投票:-1回答:1

我正在开发一个使用设备摄像头的应用程序。我需要知道设备摄像头的FOV。如何通过脚本获取?

c# unity3d webcam
1个回答
3
投票

我认为Unity中没有这个功能。你可以得到一个虚拟摄像头的FOV(Camera.fieldOfView),但由于你无法真正计算一个真实摄像头的FOV,所以没有办法通过Unity简单地得到它(据我所知)。如果你真的很需要FOV,而且你使用的是android 5.0或更新的设备,你可以通过android API的 摄像机特性. 然后,你可以从用它拍摄的照片实例的元数据中获得相机的焦距。使用传感器的尺寸和焦距,你可以(根据 本文 我发现)然后粗略地计算FOV。或者,如果你只是粗略地需要它,你可以做同样的,但不是使用Android API,简单地使用一个平均传感器的大小(也许36mm x 24mm)。但这一切都只是猜测,我对相机和计算的精确性了解不多。也许确实有一个更简单的方法,我没有发现,但如果没有,你可能应该尝试解决这个问题。也许你可以使用一个平均的FOV或类似的东西... ...


1
投票

我找到了一个解决我的问题的方法。我在我的项目中使用Vuforia。我可以写

Vuforia.CameraDevice.Instance.GetCameraFieldOfViewRads();

GetCameraFieldOfViewRads 返回 vector2;其第一个参数是垂直视场,第二个参数是水平视场。

© www.soinside.com 2019 - 2024. All rights reserved.