- dev_update_off ()
- Filename := './LMI-testdata0609/6#.csv'//点云数据的名称,.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 ()
- tuple_split (P, ';', Substrings)
- Number := number(regexp_replace(Substrings,'^\\s*0*(.+?)\\s*\n*$', '$1'))
- 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]]
- close_file (FileHandle)
- count_seconds (Now)
- DurationSeconds := Now - Then
- Msg := 'opening file ' + Filename + ' in ' + DurationSeconds + 's'
- dev_inspect_ctrl (Msg)
- gen_image_const (Image, 'real', 4777, 1689)
- for Index := 0 to 1688 by 1
- for Index1 := 0 to 4776 by 1
- set_grayval (Image, Index, Index1, Z[4777*Index+Index1])
- endfor
- endfor
- scale_image_range (Image, ImageScaled, -154, -151)
- gen_object_model_3d_from_points (X, Y, Z, ObjectModel3D)
- dev_get_window (WindowHandle)
- visualize_object_model_3d (WindowHandle, ObjectModel3D, [], [], ['lut','color_attrib','disp_pose'], ['color1','coord_z','true'], [], [], [], PoseOut)
复制代码 |