123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- from pickle import FALSE, TRUE
- import sys
- sys.path.append('../../../')
- from Tof3DCamera.VzenseDS_api import *
- import time
- camera = VzenseTofCam()
- camera_count = camera.VZ_GetDeviceCount()
- retry_count = 100
- while camera_count == 0 and retry_count > 0:
- retry_count = retry_count - 1
- camera_count = camera.VZ_GetDeviceCount()
- time.sleep(1)
- print("scaning...... ", retry_count)
- device_info = VzDeviceInfo()
- if camera_count > 1:
- ret, device_infolist = camera.VZ_GetDeviceInfoList(camera_count)
- if ret == 0:
- device_info = device_infolist[0]
- for info in device_infolist:
- print('cam uri: ' + str(info.uri))
- else:
- print(' failed:' + ret)
- exit()
- elif camera_count == 1:
- ret, device_info = camera.VZ_GetDeviceInfo()
- if ret == 0:
- print('cam uri:' + str(device_info.uri))
- else:
- print(' failed:' + ret)
- exit()
- else:
- print("there are no camera found")
- exit()
- if VzConnectStatus.Connected.value != device_info.status:
- print("connect statu:", device_info.status)
- print("Call VZ_OpenDeviceByUri with connect status :", VzConnectStatus.Connected.value)
- exit()
- else:
- print("uri: " + str(device_info.uri))
- print("alias: " + str(device_info.alias))
- print("connectStatus: " + str(device_info.status))
- ret = camera.VZ_OpenDeviceByUri(device_info.uri)
- if ret == 0:
- print("open device successful")
- else:
- print('VZ_OpenDeviceByUri failed: ' + str(ret))
- ret = camera.VZ_StartStream()
- if ret == 0:
- print("start stream successful")
- else:
- print("VZ_StartStream failed:", ret)
- while 1:
- ret, frameready = camera.VZ_GetFrameReady(c_uint16(1000))
- if ret != 0:
- print("VZ_GetFrameReady failed:", ret)
- continue
- if frameready.depth:
- ret, frame = camera.VZ_GetFrame(VzFrameType.VzDepthFrame)
- if ret == 0:
- ret, pointlist = camera.VZ_ConvertDepthFrameToPointCloudVector(frame)
- if ret == 0:
- curPath = os.getcwd()
- print(curPath)
- folder = curPath + "/save"
- if not os.path.exists(folder):
- print("not exists")
- os.makedirs(folder)
- else:
- print("already exists")
- filename = folder + "/point.txt"
- file = open(filename, "w")
- for i in range(frame.width * frame.height):
- if pointlist[i].z != 0 and pointlist[i].z != 65535:
- file.write("{0},{1},{2}\n".format(pointlist[i].x, pointlist[i].y, pointlist[i].z))
- file.close()
- print("save ok")
- else:
- print("VZ_ConvertDepthFrameToWorldVector failed:", ret)
- break
- ret = camera.VZ_StopStream()
- if ret == 0:
- print("stop stream successful")
- else:
- print('VZ_StopStream failed: ' + str(ret))
- ret = camera.VZ_CloseDevice()
- if ret == 0:
- print("close device successful")
- else:
- print('VZ_CloseDevice failed: ' + str(ret))
|