Halcon视觉之家-Halcon视觉技术论坛

 找回密码
 会员注册

QQ登录

只需一步,快速开始

扫一扫,微信登录

查看: 1604|回复: 0

[资料] qt+pcl之pcd转ply格式文件代码

[复制链接]

签到天数: 1 天

连续签到: 1 天

[LV.1]初来乍到

18

主题

45

帖子

246

积分

Rank: 6Rank: 6

积分
246

切换助手验证会员

发表于 2019-9-19 20:04:17 | 显示全部楼层 |阅读模式

51Halcon诚邀您的加入,专注于机器视觉开发与应用技术,我们一直都在努力!

您需要 登录 才可以下载或查看,没有账号?会员注册

x
  1. #include <iostream>
  2. #include <pcl/point_types.h>
  3. #include <pcl/PCLPointCloud2.h>
  4. #include <pcl/io/pcd_io.h>
  5. #include <pcl/io/ply_io.h>
  6. #include <QApplication>
  7. #include <QFileDialog>
  8. #include <QString>

  9. using namespace std;

  10. int main (int argc, char *argv[])
  11. {
  12.     QApplication a (argc, argv);
  13.    
  14.     pcl::PCDReader pcdreader;
  15.     pcl::PCDWriter pcdwriter;
  16.     pcl::PLYReader plyreader;
  17.     pcl::PLYWriter plywriter;

  18.     //QString q_filename = QFileDialog::getExistingDirectory(Q_NULLPTR,
  19.     //                                                    "Select .pcd or .ply file",
  20.     //                                                    ".");
  21.     QString q_name = QFileDialog::getOpenFileName(Q_NULLPTR,
  22.                                                       "Select .pcd or .ply file",
  23.                                                       ".");
  24.     string name = q_name.toStdString();
  25.     cout << "read: " << name << endl;

  26.     int path_i = name.find_last_of("\")+1;
  27.     int ext_i = name.find_last_of(".");
  28.     string extname = name.substr(ext_i,name.size()-ext_i);
  29.     string filename = name.substr(path_i,ext_i-path_i);
  30.    
  31.     pcl::PCLPointCloud2 cloud2;

  32.     if(extname == ".pcd")
  33.     {
  34.         int ret = pcdreader.read(name, cloud2);
  35.         if (ret == -1) //* load the file
  36.         {
  37.             PCL_ERROR ("Couldn't read pcd file \n");
  38.             return (-1);
  39.         }
  40.         plywriter.writeASCII(filename+".ply", cloud2);
  41.         cout << "write: " << filename+".ply" << endl;
  42.     }
  43.    
  44.     else if(extname == ".ply")
  45.     {
  46.         int ret = plyreader.read(name, cloud2);
  47.         if (ret == -1) //* load the file
  48.         {
  49.             PCL_ERROR ("Couldn't read ply file \n");
  50.             return (-1);
  51.         }
  52.         pcdwriter.writeASCII(filename+".pcd", cloud2);
  53.         cout << "write: " << filename+".pcd" << endl;
  54.     }
  55.    
  56.     else cout << "please choose .pcd or .ply file" << endl;

  57.     return 0;
  58. }
复制代码


您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

视觉培训招生

建议您使用Chrome、Firefox、Edge、360、IE10以上等主流浏览器浏览本论坛

算子查询| 申请友链| 小黑屋| 手机版| Archiver| 业务支持|

© 2015-2021 Halcon视觉之家  X3.4  粤ICP备15095995号 粤公网安备44030602000670号

本站已安全运行:

快速回复 返回顶部 返回列表