ceres使用心得

首篇CSDN博客

转战CSDN的首篇博客,主要原因是有道云笔记在ubuntu系统下,太难受了!

ceres介绍

一、用途:

曲线拟合、计算机视觉中的三维模型构建,优化转换参数。

二、构成模块:

文件数据读取与存储
构建残差方程计算模型
main{
	构建problem问题;
	构建solver计算拟合参数;
	}		

示例代码

以官网示例代码simple_bundle_adjuster为例;
测试数据:problem-16-22106-pre.txt;

代码实现目的:
相机传感器在16个位置对空间中的22106个路标点成像,由于存在重复观测,共观测到路标点83718个像素坐标。

数据记录下83718个像素坐标所对应的相机位姿序号、路标点序号。

一、文件数据读取与存储

读取文件第一行数据:
int num_cameras_=16;
int num_points_=22106;
int num_observations_=83718;

读取文件数据并开辟存储空间:
开辟的三块空间的起始地址:point_index_、camera_index_、observations_

开辟需要优化的量的存储空间:parameters_
空间大小为9x16+3x22106,即位参数个数num_parameters_

template <typename T>
  void FscanfOrDie(FILE* fptr, const char* format, T* value) {
    int num_scanned = fscanf(fptr, format, value);
    if (num_scanned != 1) {
      LOG(FATAL) << "Invalid UW data file.";
    }
  }
  
bool LoadFile(const char* filename) {
    FILE* fptr = fopen(filename, "r");
    if (fptr == NULL) {
      return false;
    };

    FscanfOrDie(fptr, "
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值