samples.py 3.0 KB

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