1.前言
最近在看slam中的第九章,说句实话,代码如果自己不编真的无法将其融汇贯通,不写个博客也很难对其有所理解。希望这篇博客对跟我一样是菜鸟的你有所帮助。
2.代码解析部分
1.关于头文件部分,我就不过多的讲解,不懂的可以去看一下c++,主要就是定义自己的头文件,定义自己的类,类里面的函数
并没有写出具体的方法,一般都是在对应的cpp文件中,将其函数的具体实现方式给写出来。
#ifndef CAMERA_H
#define CAMERA_H
#include "myslam/common_include.h"
namespace myslam
{
// Pinhole RGBD camera model
class Camera
{
public:
typedef std::shared_ptr<Camera> Ptr;
float fx_, fy_, cx_, cy_, depth_scale_; // Camera intrinsics
Camera();
Camera ( float fx, float fy, float cx, float cy, float depth_scale=0 ) :
fx_ ( fx ), fy_ ( fy ), cx_ ( cx ), cy_ ( cy ), depth_scale_ ( depth_scale )
{}
// coordinate transform: world, camera, pixel
Vector3d world2camera( const Vector3d& p_w, const SE3& T_c_w );
Vector3d camera2world( const Vector3d& p_c, const SE3