直接上**:
dev_update_off (
)filename :
='1.txt'
//點雲資料的名稱,.txt、.csv、.asc等格式的都可以
numcolumns :=3
//如果點雲的每行資料有3個數字就寫3 (只有xyz 的資料)
count_seconds (then)
open_file (filename,
'input'
, filehandle)
vecoutline.
clear()
repeat
fread_line (filehandle, vecoutline.
at(vecoutline.
length()
), iseof)
until (iseof)
convert_vector_to_tuple (vecoutline, p)
p := p[0:
|p|-2]
p :=
split
(p,' '
)stop ()*
//最重要的就是理解這些正則運算子代表的意思。
*^ 匹配字串開頭
* \ 轉義字元
* \s 匹配空白字元
** 允許前面的文字或 組0次或多次重複
* ()對子模式進行分組,並建立乙個捕獲組
*. 匹配除換行符以外的任何字元
*+ 允許1次或多次重複
* ? 允許1次或者多次重複
* $ 匹配字串的結尾(允許尾部換行符)
number :
=number
(regexp_replace
(p,'^\\s*0*(.+?)\\s*\n*$'
,'$1'))
p := hnull
indexisstring :
=find
(type_elem
(number)
,h_type_string)
if(indexisstring >-1
)throw
('could not convert "'
+ number[indexisstring]
+'" to a number'
)endif
x := number[[0
:numcolumns:
|number|-1
]]y := number[[1
:numcolumns:
|number|-1
]]z := number[[2
:numcolumns:
|number|-1
]]number :
= hnull
close_file (filehandle)
count_seconds (now)
durationseconds :
= now - then
msg :
='opening file '
+ filename +
' in '
+ durationseconds +
's'dev_inspect_ctrl (msg)
gen_object_model_3d_from_points (x, y, z, objectmodel3d)
x := hnull
y := hnull
z := hnull
dev_get_window (windowhandle)
visualize_object_model_3d (windowhandle, objectmodel3d,
,,['lut'
,'color_attrib'
,'disp_pose'],
['color1'
,'coord_z'
,'true'],
,[],
, poseout)
使用這個方法讀取點雲,測試過160萬個資料只需要30幾秒左右。 python快速讀取非常大的檔案
讀取大檔案是我們平時經常會遇到的問題,我這裡給出兩個比較好的解決方案。第一種 with open test.txt as f for line in f do something with data這種做法非常的簡單。這個 在開啟檔案的過程中,不會一次性讀取全部檔案,而是採用每次讀取一行的方式,類似...
增加快速讀寫的兩個方法
1.在主函式的開頭加入下面一段 ios sync with stdio false cin.tie 0 2.快速讀寫 首先要引入 cstdio 和 iostream 這兩個庫 其次再加入下面一系列 using namespace std namespace fast io while isdigit...
PCL點雲的基本讀取和顯示
廢話不多說,直接上 這是最基本的讀取與顯示,皆是利用pcl庫 include 標準輸入輸出流 include pcl的pcd格式檔案的輸入輸出標頭檔案 include pcl對各種格式的點的支援標頭檔案 include int main int argc,char argv std cout loa...