9:点云处理—坐标和点云图互转

1.XYZ点文件→图→整体点文件

**********读txt文件并将文件的数字存入元组*********

dev_open_window (0, 0, 512, 512, 'black', WindowHandle)

read_tuple ('./x.tup', x)
read_tuple ('./y.tup', y)
read_tuple ('./z.tup', z)
gen_object_model_3d_from_points (x, y, z, ObjectModel3D)
stop()


GenParamName := ['lut','intensity','light_position','disp_pose','alpha']
GenParamValue := ['color1','coord_z','1.0 0.0 0.3 1.0','true',1]

smallest_bounding_box_object_model_3d (ObjectModel3D, 'oriented', Pose, Length1, Length2, Length3)
* gen_box_object_model_3d (Pose, Length1, Length1, Length1, ObjectModel3D1)
pose_invert (Pose, PoseInvert)
rigid_trans_object_model_3d (ObjectModel3D, PoseInvert, ObjectModel3DRigidTrans)

visualize_object_model_3d (WindowHandle, [ObjectModel3DRigidTrans], [], [], [GenParamName], [GenParamValue], [], [], [], PoseOut)

stop()



pose:=[0,194,0,0,0,0,0]
rigid_trans_object_model_3d (ObjectModel3DRigidTrans, pose, ObjectModel3DRigidTrans1)

visualize_object_model_3d (WindowHandle, [ObjectModel3DRigidTrans1], [], [], [GenParamName], [GenParamValue], [], [], [], PoseOut)
stop()



get_object_model_3d_params (ObjectModel3DRigidTrans1, 'point_coord_x', x)
get_object_model_3d_params (ObjectModel3DRigidTrans1, 'point_coord_y', y)
get_object_model_3d_params (ObjectModel3DRigidTrans1, 'point_coord_z', z)



if (|x| != |y| or |y| != |z|)
    throw('Error: Tuple length mismatch')
endif

open_file('./123.txt', 'output', FileHandle)

* 创建格式化字符串


for i := 0 to |x| - 1 by 1
    * 分别格式化每个坐标值

line := (x[i]+';') +' '+ (y[i]+';')+' ' + (z[i]+';\n')

    
    fwrite_string(FileHandle, line)
endfor

close_file(FileHandle)


stop()

dev_open_window (0, 0, 512, 512, 'black', WindowHandle)


read_object_model_3d ('./111.stl', 'm', [], [], ObjectModel3D, Status)

visualize_object_model_3d (WindowHandle, ObjectModel3D, [], [], [], [], [], [], [], PoseOut)
stop()


* sample_object_model_3d (ObjectModel3D, 'fast', 0.01, [], [], SampledObjectModel3D)

GenParamName := ['lut','intensity','light_position','disp_pose','alpha']
GenParamValue := ['color1','coord_z','1.0 0.0 0.3 1.0','true',1]
* visualize_object_model_3d (WindowHandle, SampledObjectModel3D, [], [], [GenParamName], [GenParamValue], [], [], [], PoseOut)
* stop()



smallest_bounding_box_object_model_3d (ObjectModel3D, 'oriented', Pose, Length1, Length2, Length3)
pose_invert (Pose, PoseInvert)
rigid_trans_object_model_3d (ObjectModel3D, PoseInvert, ObjectModel3DRigidTrans)
visualize_object_model_3d (WindowHandle, [ObjectModel3DRigidTrans], [], [], [GenParamName], [GenParamValue], [], [], [], PoseOut)
stop()




pose:=[0,68-3.02366,0,180,0,0,0]
rigid_trans_object_model_3d (ObjectModel3DRigidTrans, pose, ObjectModel3DRigidTrans1)
visualize_object_model_3d (WindowHandle, [ObjectModel3DRigidTrans1], [], [], [GenParamName], [GenParamValue], [], [], [], PoseOut)
stop()




get_object_model_3d_params (ObjectModel3DRigidTrans1, 'point_coord_x', x)
get_object_model_3d_params (ObjectModel3DRigidTrans1, 'point_coord_y', y)
get_object_model_3d_params (ObjectModel3DRigidTrans1, 'point_coord_z', z)

tuple_min (y, Min)


if (|x| != |y| or |y| != |z|)
    throw('Error: Tuple length mismatch')
endif

open_file('./1235.txt', 'output', FileHandle)

* 创建格式化字符串


for i := 0 to [|x|/8] - 1 by 1
    * 分别格式化每个坐标值

line := (x[i]+';') +' '+ (y[i]+';')+' ' + (z[i]+';\n')

    
    fwrite_string(FileHandle, line)
endfor

close_file(FileHandle)


stop()



2.整体点文件→图

**********读txt文件并将文件的数字存入元组*********


Filename := './123.txt'
open_file(Filename, 'input', FileHandle)
IsEOF := 0
x := []
y := []
z := []

while (IsEOF == 0)
    fread_line(FileHandle, outLine, IsEOF)
    
    if (IsEOF == 0)
        
        * 分割行数据,移除逗号和换行符
        tuple_split(outLine, '; \n', outLineSplit)
        
        * 确保每行有三个元素
        if (|outLineSplit| == 3)
            * 转换并存储到对应数组
            tuple_number(outLineSplit[0], numX)
            tuple_number(outLineSplit[1], numY)
            tuple_number(outLineSplit[2], numZ)
            
            x := [x, numX]
            y := [y, numY]
            z := [z, numZ]
        else
            * 可选:处理格式错误的行
            * throw('Invalid format in line: ' + outLine)
        endif
    endif
endwhile
close_file(FileHandle)
stop()

*保存点
dev_get_window (WindowHandle)
* write_tuple (x, 'x1.tup')
* write_tuple (y, 'y1.tup')
* write_tuple (z, 'z1.tup')
* stop()

* read_tuple ('./x1.tup', x)
* read_tuple ('./y1.tup', y)
* read_tuple ('./z1.tup', z)
gen_object_model_3d_from_points (x, y, z, ObjectModel3D)
stop()

GenParamNames := ['lut', 'intensity', 'light_position', 'disp_pose', 'alpha']
GenParamValues := ['color1', 'coord_z', '0.0 0.0 -0.3 1.0', 'true', 1]
dev_open_window (0, 0, 512, 512, 'black', WindowHandle1)
visualize_object_model_3d (WindowHandle1, ObjectModel3D, [], [], [GenParamNames], [GenParamValues], [], [], [], PoseOut)




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值