设为首页收藏本站
授权版本:2024_07
开启左侧

线阵相机取点云出问题了

[复制链接]
jasiya1 发表于 2020-7-16 22:17:40 | 显示全部楼层 |阅读模式
悬赏19视觉币
我换成线阵相机后,取的点云是横向排列的了。变成一条点云图像了。
代码如下:
  1. dev_close_window ()
  2. dev_open_window(0,0,600,400,'black',WindowHandle1)
  3. dev_set_draw ('margin') //设置轮廓
  4. dev_set_line_width (3) //设置线宽
  5. dev_set_color ('green') //设置颜色为绿色
  6. dev_set_lut ('default') //
  7. * 设置相机内外参,光平面位姿,移动位姿

  8. CamParam := [0.00922382,-1194.63,2.67343e-006,3.2e-006,396.822,244.077,720,480]
  9. Campose  :=[0.000185546,0.00743155,0.0657843,317.33,355.751,267.007,0]
  10. LightplanePose :=[0.00817876, 0.0173276, -0.000317222, 179.997, 358.681, 360.0, 0]
  11. MovementPose :=[0.0529332, 0.00642633, 0.0561776, 0, 0, 0, 0]
  12. *建立sheetoflight模型,并设置参数
  13. gen_rectangle1 (ProfileRegion,25.5, 1.1875, 310.833, 569.313)
  14. dev_update_off()
  15. create_sheet_of_light_model (ProfileRegion,['min_gray','num_profiles','ambiguity_solving'],[60,1450,'brightest'],SheetOfLightModelID)
  16. set_sheet_of_light_param (SheetOfLightModelID, 'calibration', 'xyz') //将标定变形应用在不同的图像中
  17. set_sheet_of_light_param (SheetOfLightModelID, 'scale', 'mm') //单位
  18. set_sheet_of_light_param (SheetOfLightModelID, 'camera_parameter', CamParam) //相机内部参数
  19. set_sheet_of_light_param (SheetOfLightModelID, 'camera_pose', Campose) //相机坐标系统
  20. set_sheet_of_light_param (SheetOfLightModelID, 'lightplane_pose', LightplanePose) //相机姿态,如果与测的物体相同平面
  21. set_sheet_of_light_param (SheetOfLightModelID, 'movement_pose', MovementPose) //移动姿态,移动过程中通常为大地坐标
  22. *连续读图,计算中心并保存
  23. i:=1
  24. open_framegrabber ('DirectShow', 1, 1, 0, 0, 0, 0, 'default', 8, 'rgb', -1, 'false', 'default', '[1] AV TO USB2.0', 0, -1, AcqHandle)
  25. set_framegrabber_param (AcqHandle,'gamma',7)

  26. dev_update_off()
  27. grab_image_start (AcqHandle, -1)
  28. while (i<1450)
  29.     grab_image_async (Image, AcqHandle, -1)
  30.     measure_profile_sheet_of_light(Image,SheetOfLightModelID,[])
  31.     dev_display (Image)
  32.     dev_display(ProfileRegion)
  33.     i:=i+1
  34. endwhile
  35. close_framegrabber (AcqHandle)
  36. * 获取片光图像

  37. get_sheet_of_light_result (Disparity, SheetOfLightModelID, 'disparity') //返回片光深度距离
  38. get_sheet_of_light_result (X, SheetOfLightModelID, 'x') //返回片光x数据
  39. get_sheet_of_light_result (Y, SheetOfLightModelID, 'y') //返回片光y数据
  40. get_sheet_of_light_result (Z, SheetOfLightModelID, 'z') //返回片光z数据
  41. get_sheet_of_light_result_object_model_3d (SheetOfLightModelID, ObjectModel3DID) //返回片光3D模型数据
  42. clear_sheet_of_light_model (SheetOfLightModelID) //清除指定片光模型

  43. * 显示视差图像
  44. get_image_size (Disparity, Width, Height) //获取图像大小
  45. dev_set_window_extents (0, 0, Width, Height) //调整大小
  46. dev_set_lut ('temperature') //
  47. set_display_font (WindowHandle1, 16, 'mono', 'true', 'false') //设置字体
  48. dev_clear_window () //清除窗体
  49. dev_display (Disparity)
  50. disp_message (WindowHandle1, '重建片光生产的视差图像', 'window', -1, -1, 'black', 'true') //显示信息
  51. disp_continue_message (WindowHandle1, 'black', 'true') //显示暂停信息
  52. stop () //暂停

  53. * 显示Z坐标
  54. dev_close_window () //关闭窗体
  55. dev_open_window (Height + 10, 0, Width * .5, Height * .5, 'black', WindowHandle3) //打开窗体3
  56. set_display_font (WindowHandle3, 16, 'mono', 'true', 'false')//设置字体
  57. dev_display (Z) //显示Z信息
  58. disp_message (WindowHandle3, '标定的 Z 坐标', 'window', -1, -1, 'black', 'true') //显示信息

  59. * 显示Y坐标
  60. dev_open_window ((Height + 10) * .5, 0, Width * .5, Height * .5, 'black', WindowHandle2) //打开窗体2
  61. set_display_font (WindowHandle2, 16, 'mono', 'true', 'false')//设置字体
  62. dev_display (Y)//显示Z信息
  63. disp_message (WindowHandle2, '标定的 Y 坐标', 'window', -1, -1, 'black', 'true')

  64. * 显示X坐标
  65. dev_open_window (0, 0, Width * .5, Height * .5, 'black', WindowHandle1) //打开窗体1
  66. dev_display (X)//显示Z信息
  67. dev_set_lut ('default')
  68. set_display_font (WindowHandle1, 16, 'mono', 'true', 'false')//设置字体
  69. disp_message (WindowHandle1, '标定的 X 坐标', 'window', -1, -1, 'black', 'true') //显示信息
  70. disp_continue_message (WindowHandle3, 'black', 'true') //显示暂停信息

  71. stop () //暂停
  72. get_object_model_3d_params(ObjectModel3DID,'point_coord_z',zvalue)
  73. get_object_model_3d_params(ObjectModel3DID,'point_coord_y',yvalue)
  74. get_image_size(Z,Width1,Height1)

  75. * Display the 3d object model
  76. CameraParam1 := [0.00922382,-1194.63,2.67343e-006,3.2e-006,396.822,244.077,720,480] //相机内部参数
  77. Instructions[0] := '旋转: Left 鼠标左键'
  78. Instructions[1] := '缩放: Shift + 鼠标左键'
  79. Instructions[2] := '移动Move: Ctrl + 鼠标左键'
  80. PoseIn := [0,-10,300,-30,0,-30,0]
  81. dev_close_window () //关闭窗体2
  82. dev_close_window () //关闭窗体3
  83. dev_close_window () //关闭窗体12
  84. dev_open_window (0, 0, CameraParam1[6], CameraParam1[7], 'black', WindowHandle) //打开新窗体
  85. set_display_font (WindowHandle, 16, 'mono', 'true', 'false')//设置字体
  86. visualize_object_model_3d (WindowHandle,ObjectModel3DID ,CameraParam1 , PoseIn, 'color', 'blue', \
  87.                            '重建', '', Instructions, PoseOut)//显示信息
  88. write_object_model_3d(ObjectModel3DID,'om3','D:/3d',[],[])
复制代码

IMG_20200716_214100.jpg

奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表