51Halcon机器视觉

 找回密码
 会员注册

QQ登录

只需一步,快速开始

查看: 105|回复: 0
收起左侧

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

[复制链接]
  • TA的每日心情
    耍酷
    昨天 10:15
  • 签到天数: 31 天

    连续签到: 1 天

    [LV.5]常住居民I

    11

    主题

    30

    帖子

    117

    积分

    Rank: 7Rank: 7Rank: 7

    积分
    117

    切换助手验证会员

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

    铂金VIP |主题 11|帖子 30|积分 117

    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. }
    复制代码


    1.发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    2.提问请组织好自己的逻辑,标题注明大概是什么问题,问题内容写详细,需提供问题症状、错误代码、截图、位置等等信息,不要让别人去猜你想问啥;

    3.如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    4.回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

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

    本版积分规则

    51Halcon会员技术交流会员技术交流 | 51Halcon官方客服咨询官方客服咨询 | Halcon切换助手使用反馈切换助手使用反馈 | 51Halcon论坛管理团队论坛管理团队

    申请友链| 小黑屋| 手机版| Archiver|  

    粤ICP备15095995号-2 粤公网安备44030602000670号

    Powered by 51Halcon机器视觉 X3.4 Licensed© 2015-2019 Comsenz Inc.

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