Source code for calibration.VxlToPng
import Voxel
import numpy as np
import sys
import os
import cv2
[docs]def vxltoPng(filename):
"""Converts VXL file to a PNG using amplitude data. Uses open cv libraries"""
camsys = Voxel.CameraSystem()
r = Voxel.FrameStreamReader(filename, camsys)
bool1, cols = r.getStreamParamu("frameWidth")
bool2, rows = r.getStreamParamu("frameHeight")
if not bool1 or not bool2:
print ("Cannot read the stream")
if not r.isStreamGood():
print("Stream is not good: " + filename)
numFrames = r.size()
meanAmplitudes = np.zeros(( rows, cols), dtype='float')
for i in (range(numFrames)):
if not r.readNext():
print("Failed to read frame %d" %i)
break
tofFrame = Voxel.ToF1608Frame.typeCast(r.frames[Voxel.DepthCamera.FRAME_RAW_FRAME_PROCESSED])
meanAmplitudes += np.array(tofFrame._amplitude, copy=True).reshape((rows, cols))
r.close()
meanAmplitudes = meanAmplitudes/np.max(meanAmplitudes)*255
outFileName = os.path.splitext(filename)[0] + '.png'
cv2.imwrite(outFileName, meanAmplitudes.astype(np.uint8))
if __name__ == "__main__":
vxltoPng("test.vxl")