Open3D的算子解析——open3d.camera.PinholeCameraIntrinsic
学习笔记
概要
PinholeCameraIntrinsic class stores intrinsic camera matrix, and image height and width.
Open3D的PinholeCameraIntrinsic类存储相机的内参、图像的宽高。
详细用法请查看帮助文件Open3D 0.19.0 documentation。
构造函数
其中__init__(*args, **kwargs)为构造函数,*args, **kwargs代表其支持函数重载。
方式如下:
1、默认构造 :init(self: open3d.camera.PinholeCameraIntrinsic) -> None,不返回值。
# 默认结构
intrinsic = open3d.camera.PinholeCameraIntrinsic()
2、拷贝构造:
init(self: open3d.camera.PinholeCameraIntrinsic, arg0: open3d.camera.PinholeCameraIntrinsic) -> None
Parameters:
arg0 (open3d.camera.PinholeCameraIntrinsic) –
复制已有内参,arg0 来源于另一个PinholeCameraIntrinsic的对象
# 复制已有的内参
intrinsic_copy = open3d.camera.PinholeCameraIntrinsic(intrinsic)
3、内参矩阵构造:
init(self: open3d.camera.PinholeCameraIntrinsic,
width: int, height: int,
intrinsic_matrix: numpy.ndarray[numpy.float64[3, 3]]) -> None
import numpy as np
K = np.array([[fx, 0, cx],
[0, fy, cy],
[0, 0, 1]]) # 相机内参矩阵
intrinsic = open3d.camera.PinholeCameraIntrinsic(640, 480, K) # 通过矩阵创建
# 图像宽、图像高、3*3矩阵。
4、直接输入相机参数:
init(self: open3d.camera.PinholeCameraIntrinsic,
width: int, height: int,
fx: float, fy: float, cx: float, cy: float) -> None
# 图像宽、图像高、fx,fy,cx,cy
intrinsic = open3d.camera.PinholeCameraIntrinsic(640, 480, 525.0, 525.0, 320.0, 240.0)
5、利用预设的参数:
init(self: open3d.camera.PinholeCameraIntrinsic,
param: open3d.camera.PinholeCameraIntrinsicParameters) -> None
利用默认参数进行函数的构造。
# 直接使用默认参数
param = open3d.camera.PinholeCameraIntrinsicParameters.PrimeSenseDefault
intrinsic = open3d.camera.PinholeCameraIntrinsic(param)
方法
get*
1、获取参数焦距fx,fy
get_focal_length(self: open3d.camera.PinholeCameraIntrinsic) → tuple[float, float]
# 获取焦距参数
fx, fy = intrinsic.get_focal_length()
2、获取图像中心cx,cy(一般情况下就是图像中心)
get_principal_point(self: open3d.camera.PinholeCameraIntrinsic) → tuple[float, float]
# 获取图像中心
cx, cy = intrinsic.get_principal_point()
3、斜切skew
get_skew(self: open3d.camera.PinholeCameraIntrinsic) → float
斜切skew的概念不在此赘述了,其使用方式为:
# 获取斜切
skew = intrinsic.get_skew()
4、检查当前参数是否有效
is_valid(self: open3d.camera.PinholeCameraIntrinsic) → bool
set*
1、修改参数
set_intrinsics(self: open3d.camera.PinholeCameraIntrinsic,
width: int, height: int,
fx: float, fy: float, cx: float, cy: float) → None
intrinsic.set_intrinsics(640, 480, 525.0, 525.0, 320.0, 240.0)
属性
原帮助文档按首字母排序,调整顺序如下:
1、property width
图像宽度
type:int;
2、property height
图像高度
type:int
3、property intrinsic_matrix
内参矩阵
[fx, 0, cx], [0, fy, cy], [0, 0, 1]]
小结
以前有个坏习惯,不太喜欢解析算子的帮助文档,用算子时总是去搜,没网了就不会用了。半路出家没有系统性学习带来的恶习,需要克服。
更多推荐



所有评论(0)