samples.py 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. from pickle import FALSE, TRUE
  2. import sys
  3. from SDK.Vzense.VzenseDS_api import *
  4. import time
  5. camera = VzenseTofCam()
  6. camera_count = camera.VZ_GetDeviceCount()
  7. retry_count = 100
  8. while camera_count == 0 and retry_count > 0:
  9. retry_count = retry_count - 1
  10. camera_count = camera.VZ_GetDeviceCount()
  11. time.sleep(1)
  12. print("scaning...... ", retry_count)
  13. device_info = VzDeviceInfo()
  14. if camera_count > 1:
  15. ret, device_infolist = camera.VZ_GetDeviceInfoList(camera_count)
  16. if ret == 0:
  17. device_info = device_infolist[0]
  18. for info in device_infolist:
  19. print('cam uri: ' + str(info.uri))
  20. else:
  21. print(' failed:' + ret)
  22. exit()
  23. elif camera_count == 1:
  24. ret, device_info = camera.VZ_GetDeviceInfo()
  25. if ret == 0:
  26. print('cam uri:' + str(device_info.uri))
  27. else:
  28. print(' failed:' + ret)
  29. exit()
  30. else:
  31. print("there are no camera found")
  32. exit()
  33. if VzConnectStatus.Connected.value != device_info.status:
  34. print("connect statu:", device_info.status)
  35. print("Call VZ_OpenDeviceByUri with connect status :", VzConnectStatus.Connected.value)
  36. exit()
  37. else:
  38. print("uri: " + str(device_info.uri))
  39. print("alias: " + str(device_info.alias))
  40. print("connectStatus: " + str(device_info.status))
  41. ret = camera.VZ_OpenDeviceByUri(device_info.uri)
  42. if ret == 0:
  43. print("open device successful")
  44. else:
  45. print('VZ_OpenDeviceByUri failed: ' + str(ret))
  46. ret = camera.VZ_StartStream()
  47. if ret == 0:
  48. print("start stream successful")
  49. else:
  50. print("VZ_StartStream failed:", ret)
  51. while 1:
  52. ret, frameready = camera.VZ_GetFrameReady(c_uint16(1000))
  53. if ret != 0:
  54. print("VZ_GetFrameReady failed:", ret)
  55. continue
  56. if frameready.depth:
  57. ret, frame = camera.VZ_GetFrame(VzFrameType.VzDepthFrame)
  58. if ret == 0:
  59. ret, pointlist = camera.VZ_ConvertDepthFrameToPointCloudVector(frame)
  60. if ret == 0:
  61. curPath = os.getcwd()
  62. print(curPath)
  63. folder = curPath + "/save"
  64. if not os.path.exists(folder):
  65. print("not exists")
  66. os.makedirs(folder)
  67. else:
  68. print("already exists")
  69. filename = folder + "/point.txt"
  70. file = open(filename, "w")
  71. for i in range(frame.width * frame.height):
  72. if pointlist[i].z != 0 and pointlist[i].z != 65535:
  73. file.write("{0},{1},{2}\n".format(pointlist[i].x, pointlist[i].y, pointlist[i].z))
  74. file.close()
  75. print("save ok")
  76. else:
  77. print("VZ_ConvertDepthFrameToWorldVector failed:", ret)
  78. break
  79. ret = camera.VZ_StopStream()
  80. if ret == 0:
  81. print("stop stream successful")
  82. else:
  83. print('VZ_StopStream failed: ' + str(ret))
  84. ret = camera.VZ_CloseDevice()
  85. if ret == 0:
  86. print("close device successful")
  87. else:
  88. print('VZ_CloseDevice failed: ' + str(ret))