有没有办法在不使用OpenCV的情况下使用Camera 2 API在Android中找到Intrinsic Camera Parameters?
官方文档包含CameraCharacteristics,其中包含内部参数。但是使用它总是返回null Referred Question。我对Camera2的设备支持级别记录为" LEGACY"。这是内在参数不可用的原因吗?在这种情况下获得它们的方法是什么?
答案 0 :(得分:1)
是的,从opencv documentation开始,您可以自己制作相机内在矩阵。相机内在矩阵是由图像的焦距和主点组成的矩阵。
camera_matrix = [
[fx, 0, cx],
[0, fy, cy],
[0, 0, 1 ],
]
其中 fx
和 fy
是您可以通过 getFocalLength
方法获得的相机焦距:
Camera.getParameters.GetFocalLength() : float
而cx
和cy
是取图像中心或图像[0, 0]
位置(以像素为单位)的主要点。
cx = image.width / 2;
cy = image.height / 2;
答案 1 :(得分:0)
Android设备尚未广泛支持内置摄像头参数。
只有支持DEPTH_OUTPUT功能的设备才能支持它们;特别是,LEGACY设备永远不会支持它们。 没有这种功能的设备可能支持镜头校准字段,但现在相对不太可能。
在即将推出的Android P版本中,支持新LOGICAL_MULTI_CAMERA功能的设备也必须支持一些镜头校准元数据,但目前仅在P beta版本中提供。