VTK從CSV檔案中讀取資料

2021-07-10 09:02:55 字數 1939 閱讀 2896

csv也是一種文字檔案,類似於txt文字檔案。但是由於csv檔案的特殊用途,本身可以由excel辦公軟體獲得,也有廣泛的用途。以下示例演示採用c++方式讀取csv檔案的點雲資料,然後借助vtk視覺化管線,渲染讀取的點雲資料。

//刪除字串中空格,製表符tab等無效字元

string trim(string& str)

int main( )

string sx = trim(fields[0]);

string sy = trim(fields[1]);

string sz = trim(fields[2]);

//字串轉換成double型數字

istringstream streamx,streamy,streamz;

streamx.str(sx),streamy.str(sy),streamz.str(sz);

streamx>>x,streamy>>y,streamz>>z;

points->insertnextpoint(x, y, z); //新讀取的資料賦予點的幾何結構

} fin.close(); //關閉檔案

vtksmartpointerpolydata = vtksmartpointer::new();

polydata->setpoints(points);

vtksmartpointerglyphfilter = vtksmartpointer::new();

#if vtk_major_version <= 5

glyphfilter->setinputconnection(polydata->getproducerport());

#else

glyphfilter->setinputdata(polydata);

#endif

glyphfilter->update();

// visualize

vtksmartpointeractor = vtksmartpointer::new();

actor->getproperty()->setpointsize(4);

actor->getproperty()->setcolor(0.0,0.0,0.0);

vtksmartpointerrenderer = vtksmartpointer::new();

renderer->addactor(actor);

renderer->setbackground(1.3, 1.6, 1.3); // background color green

vtksmartpointerrenderwindow = vtksmartpointer::new();

renderwindow->addrenderer(renderer);

vtksmartpointerrenderwindowinteractor = vtksmartpointer::new();

renderwindowinteractor->setrenderwindow(renderwindow);

renderwindow->render();

renderwindowinteractor->start();

return exit_success;

}excel檔案中的點雲資料如下圖所示:

生成的csv檔案如下圖所示:

讀取point.csv檔案中的點雲資料,並經由vtk視覺化管線渲染之後的點雲資料如下圖所示,

Qt 從csv檔案中讀取資料

最近專案中提出的需求是從excel 中匯入資料,查閱了很多資料之後,發現直接操作xls格式檔案並不容易,之後找到了乙個比較好的解決辦法,那就是把xls檔案另存為csv檔案,然後在程式中進行操作。首先大致說明一下這兩種格式的區別 xls檔案是excel電子 的檔案格式,而csv是一種比較通用的檔案格式...

python學習之從csv檔案中讀取資料

python學習之將資料寫入到csv檔案中介紹了如何將記憶體中資料寫入到csv檔案中,這節將介紹如何從csv檔案中讀取資料,讀取資料也分為返回的是列表形式和字典形式 按行讀取,返回每行內容 import csv with open test.csv r encoding utf 8 as f f r...

C 讀取CSV檔案中的資料

csv檔案是一種文字檔案,表示的是excel 資料,可以由辦公軟體excel輕鬆生成。為了在程式中使用excel資料,就需要以文字的形式操作excel資料,具體就是操作csv 資料。如下所示,include include include include include using namespac...