该用户从未签到


- 积分
- 5
|
19视觉币
我换成线阵相机后,取的点云是横向排列的了。变成一条点云图像了。
代码如下:
dev_close_window ()
dev_open_window(0,0,600,400,'black',WindowHandle1)
dev_set_draw ('margin') //设置轮廓
dev_set_line_width (3) //设置线宽
dev_set_color ('green') //设置颜色为绿色
dev_set_lut ('default') //
* 设置相机内外参,光平面位姿,移动位姿
CamParam := [0.00922382,-1194.63,2.67343e-006,3.2e-006,396.822,244.077,720,480]
Campose :=[0.000185546,0.00743155,0.0657843,317.33,355.751,267.007,0]
LightplanePose :=[0.00817876, 0.0173276, -0.000317222, 179.997, 358.681, 360.0, 0]
MovementPose :=[0.0529332, 0.00642633, 0.0561776, 0, 0, 0, 0]
*建立sheetoflight模型,并设置参数
gen_rectangle1 (ProfileRegion,25.5, 1.1875, 310.833, 569.313)
dev_update_off()
create_sheet_of_light_model (ProfileRegion,['min_gray','num_profiles','ambiguity_solving'],[60,1450,'brightest'],SheetOfLightModelID)
set_sheet_of_light_param (SheetOfLightModelID, 'calibration', 'xyz') //将标定变形应用在不同的图像中
set_sheet_of_light_param (SheetOfLightModelID, 'scale', 'mm') //单位
set_sheet_of_light_param (SheetOfLightModelID, 'camera_parameter', CamParam) //相机内部参数
set_sheet_of_light_param (SheetOfLightModelID, 'camera_pose', Campose) //相机坐标系统
set_sheet_of_light_param (SheetOfLightModelID, 'lightplane_pose', LightplanePose) //相机姿态,如果与测的物体相同平面
set_sheet_of_light_param (SheetOfLightModelID, 'movement_pose', MovementPose) //移动姿态,移动过程中通常为大地坐标
*连续读图,计算中心并保存
i:=1
open_framegrabber ('DirectShow', 1, 1, 0, 0, 0, 0, 'default', 8, 'rgb', -1, 'false', 'default', '[1] AV TO USB2.0', 0, -1, AcqHandle)
set_framegrabber_param (AcqHandle,'gamma',7)
dev_update_off()
grab_image_start (AcqHandle, -1)
while (i<1450)
grab_image_async (Image, AcqHandle, -1)
measure_profile_sheet_of_light(Image,SheetOfLightModelID,[])
dev_display (Image)
dev_display(ProfileRegion)
i:=i+1
endwhile
close_framegrabber (AcqHandle)
* 获取片光图像
get_sheet_of_light_result (Disparity, SheetOfLightModelID, 'disparity') //返回片光深度距离
get_sheet_of_light_result (X, SheetOfLightModelID, 'x') //返回片光x数据
get_sheet_of_light_result (Y, SheetOfLightModelID, 'y') //返回片光y数据
get_sheet_of_light_result (Z, SheetOfLightModelID, 'z') //返回片光z数据
get_sheet_of_light_result_object_model_3d (SheetOfLightModelID, ObjectModel3DID) //返回片光3D模型数据
clear_sheet_of_light_model (SheetOfLightModelID) //清除指定片光模型
*
* 显示视差图像
get_image_size (Disparity, Width, Height) //获取图像大小
dev_set_window_extents (0, 0, Width, Height) //调整大小
dev_set_lut ('temperature') //
set_display_font (WindowHandle1, 16, 'mono', 'true', 'false') //设置字体
dev_clear_window () //清除窗体
dev_display (Disparity)
disp_message (WindowHandle1, '重建片光生产的视差图像', 'window', -1, -1, 'black', 'true') //显示信息
disp_continue_message (WindowHandle1, 'black', 'true') //显示暂停信息
stop () //暂停
*
* 显示Z坐标
dev_close_window () //关闭窗体
dev_open_window (Height + 10, 0, Width * .5, Height * .5, 'black', WindowHandle3) //打开窗体3
set_display_font (WindowHandle3, 16, 'mono', 'true', 'false')//设置字体
dev_display (Z) //显示Z信息
disp_message (WindowHandle3, '标定的 Z 坐标', 'window', -1, -1, 'black', 'true') //显示信息
*
* 显示Y坐标
dev_open_window ((Height + 10) * .5, 0, Width * .5, Height * .5, 'black', WindowHandle2) //打开窗体2
set_display_font (WindowHandle2, 16, 'mono', 'true', 'false')//设置字体
dev_display (Y)//显示Z信息
disp_message (WindowHandle2, '标定的 Y 坐标', 'window', -1, -1, 'black', 'true')
*
* 显示X坐标
dev_open_window (0, 0, Width * .5, Height * .5, 'black', WindowHandle1) //打开窗体1
dev_display (X)//显示Z信息
dev_set_lut ('default')
set_display_font (WindowHandle1, 16, 'mono', 'true', 'false')//设置字体
disp_message (WindowHandle1, '标定的 X 坐标', 'window', -1, -1, 'black', 'true') //显示信息
disp_continue_message (WindowHandle3, 'black', 'true') //显示暂停信息
stop () //暂停
get_object_model_3d_params(ObjectModel3DID,'point_coord_z',zvalue)
get_object_model_3d_params(ObjectModel3DID,'point_coord_y',yvalue)
get_image_size(Z,Width1,Height1)
*
* Display the 3d object model
CameraParam1 := [0.00922382,-1194.63,2.67343e-006,3.2e-006,396.822,244.077,720,480] //相机内部参数
Instructions[0] := '旋转: Left 鼠标左键'
Instructions[1] := '缩放: Shift + 鼠标左键'
Instructions[2] := '移动Move: Ctrl + 鼠标左键'
PoseIn := [0,-10,300,-30,0,-30,0]
dev_close_window () //关闭窗体2
dev_close_window () //关闭窗体3
dev_close_window () //关闭窗体12
dev_open_window (0, 0, CameraParam1[6], CameraParam1[7], 'black', WindowHandle) //打开新窗体
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')//设置字体
visualize_object_model_3d (WindowHandle,ObjectModel3DID ,CameraParam1 , PoseIn, 'color', 'blue', \
'重建', '', Instructions, PoseOut)//显示信息
write_object_model_3d(ObjectModel3DID,'om3','D:/3d',[],[])
|
-
|