livox_lidar_camera_calibration学习--改进的pcd点的提取

开源代码位于:GitHub - Shelfcol/livox_camera_lidar_calibration_modified: livox_camera_lidar_calibration的改进得

运行:

roslaunch camera_lidar_calibration cornerPcd.launch

1. 读取文件夹内的所有文件

// 遍历path下面的所有文件,保存在filenames里面
void GetFileNames(string path,vector<string>& filenames)
{
    DIR *pDir;
    struct dirent* ptr;
    if(!(pDir = opendir(path.c_str()))){
        std::cerr<<path<<"  open failed"<<std::endl;
         return;
    }
    while((ptr = readdir(pDir))!=0) {
        if (strcmp(ptr->d_name, ".") != 0 && strcmp(ptr->d_name, "..") != 0  && ptr->d_name[0]!='.')
            filenames.push_back(path + "/" + ptr->d_name);
    }
    // for_each(filenames.begin(),filenames.end(),[&](auto a){
    //     printf("%s\n",a.c_str());
    // });
    sort(filenames.begin(),filenames.end());
    closedir(pDir);
}

2. 利用点云viewer的回调函数来获取角点

运行代码后,按住shift,鼠标左键选择激光点,顺序与相片角点的选择顺序一致。shift+Q结束当前pcd的操作,进行下一个pcd操作。

如果中途发现选择的点错误,则在viewer上选择大于4个点,就会重新进入当前pcd的点的选择。

3. 保存数据

猜你喜欢

转载自blog.csdn.net/qq_38650944/article/details/124129916
今日推荐