使用OpenCV开发iOS增强现实应用程序。我在创建相机投影矩阵时遇到问题,以允许OpenGL覆盖图直接映射到标记顶部。我觉得这是由于我的iPhone 6相机没有正确校准到应用程序。我知道有OpenCV代码来校准摄像头等使用国际象棋板,但我找不到一种方法来校准我的嵌入式iPhone摄像头。OpenCV Iphone 6相机校准
有没有办法?或者是否有iPhone 6的估算值?其中包括:x和y的焦距,x和y的主要点以及失真系数矩阵。
任何帮助将不胜感激。
编辑:
fx=1229
cx=360
fy=1153
cy=640
该代码提供焦距为设备的准确估计和主点:
如下(使用iPhone 6,相机馈送分辨率1280×720)推导的值目前运行的是iOS 9.1。
AVCaptureDeviceFormat *format = deviceInput.device.activeFormat;
CMFormatDescriptionRef fDesc = format.formatDescription;
CGSize dim = CMVideoFormatDescriptionGetPresentationDimensions(fDesc, true, true);
float cx = float(dim.width)/2.0;
float cy = float(dim.height)/2.0;
float HFOV = format.videoFieldOfView;
float VFOV = ((HFOV)/cx)*cy;
float fx = abs(float(dim.width)/(2 * tan(HFOV/180 * float(M_PI)/2)));
float fy = abs(float(dim.height)/(2 * tan(VFOV/180 * float(M_PI)/2)));
注:
我有这个代码初始化问题。我建议一旦这些值被初始化并正确设置,将它们保存到一个数据文件并读取这个文件的值。
非常感谢这一点。 – nnrales