求iPhone X后置摄像头的intrinsicMatrix(相机标定矩阵)参数
获取iPhone X相机标定矩阵参数的实用方案
Hey there! 我刚好有不少ARKit和iOS开发的实战经验,给你几个靠谱的方案,不用实体设备也能拿到iPhone X的相机标定矩阵参数:
用公开的标准参考参数
行业里已经有很多公开的设备标定数据集,iPhone X的相机内参(针对1080p采集分辨率)有个通用的近似值,在大多数开发场景下足够精准:内参矩阵: [ [1935.0, 0, 1080.0], [0, 1935.0, 1350.0], [0, 0, 1] ]其中
fx和fy是焦距,cx、cy是主点坐标,这个数值是基于大量设备统计的平均结果,个体设备的差异很小。通过Xcode模拟器模拟获取
你可以在Xcode里把模拟设备选为iPhone X,然后写一段简单的ARKit代码打印相机内参:import ARKit func fetchCameraIntrinsics() { let session = ARSession() let config = ARWorldTrackingConfiguration() session.run(config) DispatchQueue.main.asyncAfter(deadline: .now() + 1) { if let camera = session.currentFrame?.camera { print("iPhone X 模拟相机内参:\(camera.intrinsics)") } } }运行后控制台会输出模拟器生成的内参,虽然是模拟值,但完全能满足开发调试的需求。
查第三方工具的预存数据
像OpenCV这类计算机视觉工具库,会预存主流移动设备的相机标定参数,你可以直接在它们的设备参数列表里找到iPhone X对应的矩阵。
另外附上你提供的示意图,方便参考:
如果需要100%精准的参数,最稳妥的方式是找身边有iPhone X的朋友,用上面那段代码直接读取设备的真实ARCamera.intrinsics,这是苹果ARKit直接从硬件获取的标定数据,没有误差。
内容的提问来源于stack exchange,提问作者Richard Berwick
相关产品推荐
相关产品推荐

