ARCore中的摄像机校准(内在函数)参数

问题描述 投票:5回答:5

有没有办法从ARCore获取相机内在参数,类似于ARKit提供的?我已经尝试过使用ImageMetadata中的LENS_INTRINSIC_CALIBRATION,但显然这个常量实际上并不支持(我已尝试在Pixel 2上使用它)。

android augmented-reality arcore
5个回答
2
投票

据我所知,目前在ARCore中肯定没有,特别是因为焦距被锁定了。我建议你在ARCore github上报告这是一个问题,并让人们写下他们对该功能的支持,希望它会得到实现!


1
投票

1.3 release开始,相机内在函数被添加到ARCore。


0
投票

现在你可以使用投影矩阵来获得fx, fy, cx, cy。但是失真是不可能获得的,尽管有可能图像已经不失真。


0
投票

尝试了一些灵感来自here描述的第一步的东西,我能够在ARCore APK中找到支持设备的内在参数。您需要获取apktool并在您下载ARCore APK的同一文件夹中运行它(在此示例中为v1.2):

apktool -q d -s -r ARCore_1_2.apk -o ARCore_1_2

这将创建一个名为ARCore_1_2的文件夹,然后转到./lib/arm64-v8a并将libdevice_profile_loader.so(例如7zip)解压缩到一个新文件夹中以方便使用。然后,使用文本编辑器在新创建的文件夹中打开文件.rodata。大多数文件的内容都被格式化为XML,只需查找您正在使用的手机的名称,您就会在标签中找到内在参数。还有一些IMU校准数据和外部学,但目前尚不清楚它们是如何使用的。

我自己没有测试过这些参数,但在接下来的几天内会做的...


0
投票

这是可能的。但这些参数也只能得到(比如在ARKit中)。

ARCore的类CameraIntrinsics提供有关设备相机的物理特性,相机图像(CPU)或纹理(GPU)的信息。 CameraIntrinsics是一个长寿命的对象,CameraIntrinsics的属性可能会在每次调用Session.update()时更新。

public class CameraIntrinsics

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.