я могу получить фокусное расстояние, используя параметры камеры в Android, как это:Получить фокусное расстояние камеры OpenCV 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, так что если кто-нибудь может дать мне намек, я был бы очень признателен.
Я считаю, что это как-то связано с устройствами. и быстрый Google на нем предлагает openCV работает в мировых координатах, поэтому 8005 - это расстояние в пикселях. Чтобы скрывать от одного к другому молодому нужно выяснить коэффициент конверсии, я думаю, что для этого есть функция калибровки. – will
+1 Спасибо! Затем я сначала посмотрю на калибровку камеры. Обновит сообщение позже. – springrolls
@will: Я только что откалибровал камеру, как показано в этой ссылке, http://se.cs.ait.ac.th/cvwiki/opencv:tutorial:camera_calibration, и получил разные значения по сравнению с тем, который использует Highgui. fx = 3.81674438e + 003 и fy = 3.90492334e + 003 (в пиксельных координатах, я предположил). Почему это? Извините меня за мое невежество. – springrolls