1点云读取
boost::format fmt( “./%s/%d.%s” )
colorImgs.push_back( cv::imread( (fmt%”color”%(i+1)%”png”).str() ));
这个的用法与printf中的一样,格式化输出的方式
%s :字符串格式 %d:10进制整数格式
而 (fmt%”color”%(i+1)%”png”是实际调用了这个格式, fmt%”color”就是传入这个格式的参数,按照上面初始化fmt时的格式顺序;然后使用boost ::format的str()整个再转为字符串,如
boost::format fmt(“%s %d %2.3f”);
fmt %”first” %121 %1.33333;
std::cout<<fmt.str()<<std::endl;
输出:first 121 1.333
又例如:
//对下面的表达式进行解释,||用来区分格式化选项功能,可以不要,当表达式中含有空格等特殊字符占位时,使用||表达更容易区分些
// %|04d|输出宽度为4的数值,不足位用0补充
// %|-8.4f|左对齐,输出宽度为8,小数位保留4为的浮点数
// %| 8s|输出宽度为8的字符串,不足位用空格填补的字符串
// %|06X|输出宽度为6的大写16进制整数,不足位用0填补
boost::format tmpFormat(“%|04d|\n %|-8.4f|\n %| 8s|\n %|06X|\n”);
tmpFormat % 44 % 3.1415926 %”123456″ % 48;
Eigen::Isometry3d 是一个欧式变换
Eigen版本是3.4 源码是
/** \ingroup Geometry_Module */
typedef Transform<double,2,Isometry> Isometry2d;
2图像转为点云
深度图一般是像素值是16位,最大65536,反映的是实际距离,单位是mm,而实际的点云坐标一般都是m,所以 最大测距是65米,对于一般的相机足够。深度图像的像素值就实际mm,除以1000即为m