123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- from pickle import FALSE, TRUE
- import sys
- sys.path.append('../../../')
- from API.VzenseDS_api import *
- import cv2
- 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()
- print("uri: "+str(device_info.uri))
- ret = camera.VZ_OpenDeviceByUri(device_info.uri)
- if ret == 0:
- ret = camera.VZ_StartStream()
- if ret == 0:
- print("start stream successful")
- else:
- print("VZ_StartStream failed:",ret)
-
- colorSlope = c_uint16(7495)
- try:
- while 1:
- ret, frameready = camera.VZ_GetFrameReady(c_uint16(1000))
- if ret !=0:
- print("VZ_GetFrameReady failed:",ret)
- continue
-
- if frameready.depth:
- ret,depthframe = camera.VZ_GetFrame(VzFrameType.VzDepthFrame)
- if ret == 0:
- frametmp = numpy.ctypeslib.as_array(depthframe.pFrameData, (1, depthframe.width * depthframe.height * 2))
- frametmp.dtype = numpy.uint16
- frametmp.shape = (depthframe.height, depthframe.width)
- #convert ushort value to 0xff is just for display
- img = numpy.int32(frametmp)
- img = img*255/colorSlope
- img = numpy.clip(img, 0, 255)
- img = numpy.uint8(img)
- frametmp = cv2.applyColorMap(img, cv2.COLORMAP_RAINBOW)
-
- cv2.imshow("Depth Image", frametmp)
- else:
- print("get depth frame failed:",ret)
- if frameready.ir:
- ret,irframe = camera.VZ_GetFrame(VzFrameType.VzIRFrame)
- if ret == 0:
- frametmp = numpy.ctypeslib.as_array(irframe.pFrameData, (1, irframe.dataLen))
- frametmp.dtype = numpy.uint8
- frametmp.shape = (irframe.height, irframe.width)
-
- cv2.imshow("IR Image", frametmp)
- else:
- print("get ir frame failed:",ret)
- if frameready.color:
- ret,rgbframe = camera.VZ_GetFrame(VzFrameType.VzColorFrame)
- if ret == 0:
- frametmp = numpy.ctypeslib.as_array(rgbframe.pFrameData, (1, rgbframe.width * rgbframe.height * 3))
- frametmp.dtype = numpy.uint8
- frametmp.shape = (rgbframe.height, rgbframe.width,3)
- cv2.imshow("RGB Image", frametmp)
- else:
- print("---end---")
- key = cv2.waitKey(1)
- if key == 27:
- cv2.destroyAllWindows()
- print("---end---")
- break;
-
- except Exception as e :
- print(e)
- finally :
- print('end')
- else:
- print('VZ_OpenDeviceByUri failed: ' + str(ret))
|