【发布时间】: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 不同,抱歉。
标签: android opencv android-camera