由於TXT格式的點雲文件是下圖中的樣子
因此按行讀取即可,核心代碼段如下
std::string file = fileName.toStdString(); //fileName爲文件名,QString型數據
ifstream infile;
infile.open(file.data()); //將文件流對象與文件連接起來
assert(infile.is_open()); //若失敗,則輸出錯誤消息,並終止程序運行
string s;
while(getline(infile,s))
{
QString ss,s1,s2,s3;
ss=QString::fromStdString(s);
s1=ss.section(" ",0,0); // 用QString的section()函數提取三維座標
s2=ss.section(" ",1,1);
s3=ss.section(" ",2,2);
pcl::PointXYZRGB current_point;
current_point.x=s1.toFloat();
current_point.y=s2.toFloat();
current_point.z=s3.toFloat();
pointptr->push_back(current_point); //pointptr是點雲指針
}
infile.close();
讀取完之後顯示就可以啦,效果如下圖
經典的斯坦福兔子!!!交流:QQ:1826380364