Beispiel #1
0
 def data(self, downsample = 1):
     if self._type == "image":
         Image = misc.imread(self._path)[:, :, 0:3]
         if downsample != 1: Image = tb.downsampleImage(Image, downsample)
         return Image[..., np.r_[2, 1, 0]].transpose((2, 0, 1))
     elif self._type == "flow":
         flow = tb.readFlow(self._path)
         flow = flow[:, :, 0:2]
         if downsample != 1: flow = OpticalFlow.downsampleMedian(flow, downsample)
         flow = flow.transpose((2, 0, 1))
         nanMask = np.isnan(flow)
         data = (flow * 32.0).astype(np.int16)
         data[nanMask] = np.iinfo(np.int16).max
         return data
     elif self._type == "leftdisparity":
         disparity = tb.readDisparity(self._path)
         nanMask = np.isnan(disparity)
         disparity *= -1
         if downsample != 1: raise Exception("no downsampling implemented for disparity")
         data = (disparity * 32.0).astype(np.int16)
         data[nanMask] = np.iinfo(np.int16).max
         return data
     elif self._type == "rightdisparity":
         disparity = tb.readDisparity(self._path)
         nanMask = np.isnan(disparity)
         if downsample != 1: raise Exception("no downsampling implemented for disparity")
         data = (disparity * 32.0).astype(np.int16)
         data[nanMask] = np.iinfo(np.int16).max
         return data
     elif self._type == "leftdisparitychange":
         disparityChange = tb.readDisparity(self._path)
         nanMask = np.isnan(disparityChange)
         disparityChange *= -1
         if downsample != 1: raise Exception("no downsampling implemented for disparity")
         data = (disparityChange * 32.0).astype(np.int16)
         data[nanMask] = np.iinfo(np.int16).max
         return data
     elif self._type == "rightdisparitychange":
         disparityChange = tb.readDisparity(self._path)
         nanMask = np.isnan(disparityChange)
         if downsample != 1: raise Exception("no downsampling implemented for disparity")
         data = (disparityChange * 32.0).astype(np.int16)
         data[nanMask] = np.iinfo(np.int16).max
         return data
     else:
         raise Exception('unhandled data type')
Beispiel #2
0
 def dims(self, downsample = 1):
     if self._type == "image":
         Image = misc.imread(self._path)[:, :, 0:3]
         if downsample != 1: Image = tb.downsampleImage(Image, downsample)
         return (Image.shape[1], Image.shape[0])
     raise Exception('dimensions not implemented for datatype')