获取相机焦距 OpenCV Android

Posted

技术标签:

【中文标题】获取相机焦距 OpenCV Android【英文标题】:Get camera focal length OpenCV Android 【发布时间】:2012-06-02 04:36:02 【问题描述】:

我可以像这样使用 android 中的相机参数获取焦距:

Camera.Parameters parameters = camera.getParameters();
Log.d(TAG, "Focal length:"+parameters.getFocalLength());

它给了我 3.97(正确)。由于我的项目使用 OpenCV,所以我想使用已经提供的变量,即:

Log.d(TAG, "Focal length:"+Highgui.CV_CAP_PROP_ANDROID_FOCAL_LENGTH);

但它给了我一个 8005 的结果。我是 OpenCV 的新手,所以如果有人能给我一个提示,我将非常感激。

【问题讨论】:

我相信这与单位有关。并且快速谷歌建议openCV在世界坐标中工作,所以8005是一个像素距离。为了从一个转换到另一个年轻需要弄清楚转换率,我认为有一个校准功能。 +1 谢谢!然后我将首先研究相机校准。稍后会更新帖子。 @will:我刚刚按照链接se.cs.ait.ac.th/cvwiki/opencv:tutorial:camera_calibration 所示校准了相机,与使用Highgui 的相机相比,得到了不同的值。 fx= 3.81674438e+003 和 fy = 3.90492334e+003 (我想是像素坐标)。这是为什么?请原谅我的无知。 你们的价值观有何不同?我以前从未真正做过这样的事情,只是在发表评论之前阅读它。但是你应该记住这是一个校准,每个相机都会有所不同。如果它们不是完全不同,就不需要进行这种校准。 是的,我不知道为什么它与 highgui 不同,抱歉。 【参考方案1】:

您在 Highgui 中使用的是 Constant。无论相机是什么,它都是一样的。我认为您要坚持使用android相机参数

【讨论】:

啊,谢谢!我的大脑放假了,我需要两天时间才能理解您的答案。大声笑。

以上是关于获取相机焦距 OpenCV Android的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Java在Android中获取相机的焦距

关于相机内参中的焦距fx和fy

获取iOS设备的焦距

OpenCV:计算相机和物体之间的角度

OpenCV相机标定及距离估计(单目)

如何校准具有长焦距固定焦距的相机?