点云技术相关产学研社区

 找回密码
 立即注册加入PCL中国点云技术相关产学研社区

扫一扫,访问微社区

查看: 7395|回复: 11

将其他形式点云转换成PCD时 颜色出现nan?(已经搞定)

[复制链接]
发表于 2013-7-30 15:24:09 | 显示全部楼层 |阅读模式
本帖最后由 你猜 于 2013-7-30 16:39 编辑

#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <string>
#include <fstream>
#include <vector>

using namespace std;
int  main(int argc,char**argv)
{
        //读入txt到数组中
        ifstream mycloud ("220cp0.txt");
        if(!mycloud){
                cout<<"unable to open myfile";
                exit(1);}//报错        
        //

pcl::PointCloud<pcl::PointXYZRGB> cloud;
// 创建点云
cloud.width=640;
cloud.height=480;
cloud.is_dense=false;
cloud.points.resize(cloud.width*cloud.height);

float x,y,z,r,g,b;
//x=y=z=0;
//r=g=b=0;
//int i=0;
char buffer[1024];
//while (! mycloud.eof() )
         for(size_t i=0;i<cloud.points.size();i++)
  {
     mycloud.getline(buffer,1000);
    sscanf(buffer,"%f %f %f %f %f %f",&x,&y,&z,&r,&g,&b);
        //cout<<buffer<<endl;
        
        cloud.points.x=x;
        cloud.points.y=y;
    cloud.points.z=z;
        cloud.points.r=static_cast<uint8_t>(r);
        cloud.points.g=static_cast<uint8_t>(g);
        cloud.points.b=static_cast<uint8_t>(b);
        //cloud.points.a=static_cast<uint8_t>(255);
        //cerr<<cloud.points.x<<" "<<cloud.points.y<<" "<< cloud.points.z<<" "<<cloud.points.r<<" "<<cloud.points.g<<" "<<cloud.points.b<<endl;
   // i++;
  }
mycloud.close();
//

//
//for(size_t i=0;i<cloud.points.size();++i)
//{
////cloud.points.x=1024*rand()/(RAND_MAX+1.0f);
////cloud.points.y=1024*rand()/(RAND_MAX+1.0f);
////cloud.points.z=1024*rand()/(RAND_MAX+1.0f);
// }
pcl::io::savePCDFileASCII("test_pcd.pcd",cloud);
//std::cerr<<"Saved "<<cloud.points.size()<<" data points to test_pcd.pcd."<<std::endl;
//for(size_t i=0;i<cloud.points.size();++i)
//std::cerr<<"    "<<cloud.points.x<<" "<<cloud.points.y<<" "<<cloud.points.z<<"    "<<cloud.points.r<<" "<<cloud.points.g<<" "<<cloud.points.b<<std::endl;
return(0);
}





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册加入PCL中国点云技术相关产学研社区

x
回复

使用道具 举报

 楼主| 发表于 2013-7-30 15:48:34 | 显示全部楼层
感觉是转换时 溢出问题 但不知道该怎么办
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-30 15:48:52 | 显示全部楼层
本帖最后由 你猜 于 2013-7-30 16:35 编辑

搞定了 颜色编码问题
回复 支持 反对

使用道具 举报

发表于 2013-7-30 15:51:28 | 显示全部楼层
你猜 发表于 2013-7-30 15:48
感觉是转换时 溢出问题 但不知道该怎么办

你看看滤波模块,里面应该可以去除这种数据。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-30 16:38:01 | 显示全部楼层
mypcl 发表于 2013-7-30 15:51
你看看滤波模块,里面应该可以去除这种数据。

搞定了 刚才我没有搞定PointT 的颜色编码原理,是我颜色赋值的方法不对 应该整天赋值 看了看 说明 搞定了 谢谢
回复 支持 反对

使用道具 举报

发表于 2013-9-5 09:45:54 | 显示全部楼层
你猜 发表于 2013-7-30 16:38
搞定了 刚才我没有搞定PointT 的颜色编码原理,是我颜色赋值的方法不对 应该整天赋值 看了看 说明 搞定了 ...

请问哪里有彩色赋值的方法?谢谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-5 20:49:59 | 显示全部楼层
点心 发表于 2013-9-5 09:45
请问哪里有彩色赋值的方法?谢谢

我在论坛里放源代码了 你搜搜看
回复 支持 反对

使用道具 举报

发表于 2014-6-4 10:44:07 | 显示全部楼层
急求源代码,楼主放在哪里了?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-24 15:18:09 | 显示全部楼层
Dr.sea 发表于 2014-6-4 10:44
急求源代码,楼主放在哪里了?

帖子上不就是代码吗:o
回复 支持 反对

使用道具 举报

发表于 2014-7-3 22:14:41 | 显示全部楼层
亲,写的有点乱,和前面那个帖子写的有点矛盾了
回复 支持 反对

使用道具 举报

本版积分规则

QQ|小黑屋|点云技术相关产学研社区 ( 陕ICP备13001629号 )

GMT+8, 2024-4-28 06:45 , Processed in 2.031795 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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