返回上级
共14条
跳至  页 
  • 阅读数:5414发布于2020-08-13 01:37:25

    只看该作者
    获取相机内参和外参的方法 复制本文链接

    相机内参:是与相机自身特性相关的参数,比如相机的焦距、像素大小。

    相机外参:在世界坐标系中的参数,比如相机的位置、旋转方向等。分为旋转矩阵和平移

    矩阵,旋转矩阵和平移矩阵共同描述了如何把点从世界坐标系转换到摄像机坐标系。

    1)旋转矩阵:描述了世界坐标系的坐标轴相对于摄像机坐标轴的方向。

    2)平移矩阵:描述了在摄像机坐标系下,空间原点的位置。

    设备的内外参在设备出场的时候一般都会标定好存储在设备的 Flash 中,内外参的获取可以

    通过如下这行代码得到:

    rc = g_Device.getProperty(openni::OBEXTENSION_ID_CAM_PARAMS, (uint8_t
    *)&cameraParam, &dataSize);cameraParam 的结构如下:
    typedef struct OBCameraParams
    {
    float l_intr_p[4];//[fx,fy,cx,cy]
    float r_intr_p[4];//[fx,fy,cx,cy]
    float r2l_r[9];//[r00,r01,r02;r10,r11,r12;r20,r21,r22]
    float r2l_t[3];//[t1,t2,t3]
    float l_k[5];//[k1,k2,p1,p2,k3]
    float r_k[5];
    //int is_mirror;
    }OBCameraParams;
    

    回复 (0)

    举报
  • 发布于2020-12-02 14:27:08

    只看该作者 显示全部
    dataSize是什么类型的参数呢?

    回复 (0)

    举报
  • 发布于2020-12-02 14:30:25

    只看该作者 显示全部
    王大可爱吃面 发表于 2020-12-02 14:27:08

    dataSize是什么类型的参数呢?

    找到说明了,谢谢。 https://developer.orbbec.com.cn/forum_plate_module_details.html?id=184

    回复 (0)

    举报
  • 发布于2020-12-05 15:56:46

    只看该作者 显示全部
    世界坐标在不同的标定图片中都不一样,外參也不一样,请问一下这个外參的具体解释是什么?

    回复 (0)

    举报
  • 发布于2020-12-11 16:08:01

    只看该作者 显示全部
    通过这个获取的参数都是-nan 知道是什么原因吗

    回复 (0)

    举报
  • 发布于2021-09-06 20:55:04

    只看该作者 显示全部

    图片alt

    回复 (2)

    举报
  • 发布于2021-03-22 10:52:16

    只看该作者 显示全部

    图片alt

    回复 (0)

    举报
  • 发布于2021-04-16 10:17:20

    只看该作者 显示全部

    图片alt

    回复 (0)

    举报
  • 发布于2021-04-29 09:33:13

    只看该作者 显示全部

    Orbbec Astra Mini 21010431340
    IR fx = 577.564
    IR fy = 577.564
    IR cx = 316.942
    IR cy = 236.391
    RGB fx = 517.765
    RGB fy = 517.765
    RGB cx = 317.095
    RGB cy = 242.077
    r00 = 0.999935
    r01 = -0.0114163
    r02 = -0.000407821
    r10 = 0.0114149
    r11 = 0.99993
    r12 = -0.00323297
    r20 = 0.000444701
    r21 = 0.0032281
    r22 = 0.999995
    t1 = -25.4318
    t2 = -0.0947862
    t3 = -1.10765
    k1 = -0.0908177
    k2 = 0.29258
    p1 = -0.00146432
    p2 = -0.0010759
    k3 = -0.264946

    回复 (0)

    举报
  • 发布于2021-04-29 09:48:49

    只看该作者 显示全部

    2、内外参标定
    内参指的是相机的光学特性参数(参数矩阵:fx, fy, cx, cy; 径向畸变:k1, k2, k3; 切向畸变:p1, p2),外参指的是两个或多个相机之间的位置关系(旋转矩阵:R; 平移矩阵: T)。内外参标定一般有两个用途:对齐和去畸变。

    【对齐】:是指深度图根据内外参关系进行偏移、平移,将深度图转换到RGB的世界坐标,从而让深度图和彩色图上的点一一对应,简称D2C(Depth to Color)。

    【去畸变】:是指根据IR相机的内参,对深度图进行去畸变,从而矫正深度图因畸变带来的变形。如果没有作去畸变,深度图看起来像“圆饼状”。

    2.1、内外参标定参数
    内外参标定,目的是为了得到两个相机的内外参,可分为去畸变参数、硬件D2C参数、软件D2C参数。

    (1)去畸变参数。标定以后会生成一个类似rectify.bin的文件,写入到flash。固件上电初始化后将flash中的数值写入到相应的rectify寄存器中,由深度引擎作去畸变的动作。

    (2)硬件D2C参数。标定以后会生成一个类似align.bin的文件,写入到flash。固件上电初始化后将flash中的数值写入到相应的d2c寄存器中,由深度引擎作d2c的动作。这种方式使用方便,客户端只需调用开关D2C的接口即可。

    (3)软件D2C参数。标定以后会生成一个类似flash.bin的文件,写入到flash。SDK提供这些参数的接口,平台端根据读取到的参数对深度图作偏移、平移等动作,完成D2C对齐。这种方式实现麻烦,需要消耗客户端的CPU资源。

    2.2、内外参标定方式
    两个相机的组合有一个IR相机一个RGB相机或两个IR相机。常见的标定步骤如下:

    (1)分别拍摄得到三种姿态下的IR图(关闭激光,只打开标定板的红外光)和RGB图(只打开标定板的白炽光)

    (2)调用算法库,得到内外参文件

    (3)将参数文件写入到产品flash

    回复 (0)

    举报
  • 发布于2021-06-03 09:51:25

    只看该作者 显示全部

    请问这段代码在哪里实现?

    回复 (0)

    举报
返回上级
共14条
跳至  页 
举报

请选择举报理由

  • 垃圾广告
  • 违规内容
  • 恶意灌水
  • 重复发帖
提示

奥比中光 · 3D视觉开发者社区...

站长统计