Fast Transient Imaging
A Python framework revolving around reconstruction of impulse responses from AMCW lidar measurements.
CTransientImage Class Reference

This class represents a greyscale transient image, i.e. More...

Public Member Functions

def __init__
 Initializes this transient image with the given 3D array. More...
 
def Display
 Displays this transient image as looping animation with constant frame- rate of 30 Hz (i.e. More...
 
def ApplyScaling (self, BrightnessFactor)
 Multiplies all frames of this transient image by the given scalar factor. More...
 
def GetFrameCount (self)
 Returns the number of frames in this transient image, i.e. More...
 
def GetDistribution (self, X, Y)
 This function retrieves a CFiniteDistribution representing the pixel at the given location. More...
 
def GetMomentImage (self, MomentGeneratingFunction)
 This function constructs a moment image from this transient image using a user-defined moment-generating function taking phases in radians. More...
 
def GetTrigonometricMomentImageStack (self, nMoment)
 This function generates the given number of trigonometric moment images (not counting the zeroth moment) and returns them as CTrigonometricMomentImageStack. More...
 
def StoreTransientImage
 This function stores the raw data of this transient image as sequence of single precision *.exr images. More...
 

Static Public Attributes

 Image = None;
 A three-dimensional np.ndarray where the first index identifies the time- interval in which light reached the sensor and the other two indices correspond to height and width, respectively. More...
 
 Phase = None;
 A one-dimensional array providing the phase of the beginning of the time- interval for each frame in this transient image. More...
 

Detailed Description

This class represents a greyscale transient image, i.e.

a time-dependent series of common greyscale images showing how a light pulse is reflected by a scene at a high temporal resolution.

Constructor & Destructor Documentation

def __init__ (   self,
  Image,
  Phase = None 
)

Initializes this transient image with the given 3D array.

Parameters
ImageSee the attribute documentation for details.
PhaseA one-dimensional array providing the phase for each frame of the provided transient image. If this is None, it is assumed that the transient image uses an equidistant sampling of phases from 0 to 2*np.pi.

Member Function Documentation

def Display (   self,
  BrightnessFactor = 10.0 
)

Displays this transient image as looping animation with constant frame- rate of 30 Hz (i.e.

self.Time does not effect playback speed).

Parameters
BrightnessFactorThis factor is multiplied onto the brightness. A value of 1.0 means that the maximal held pixel value corresponds to maximal display brightness.
Returns
The pyplot.animation.FuncAnimation object used for the animation. The calling side has to store it!
def ApplyScaling (   self,
  BrightnessFactor 
)

Multiplies all frames of this transient image by the given scalar factor.

def GetFrameCount (   self)

Returns the number of frames in this transient image, i.e.

the number of available samples along the time axis.

def GetDistribution (   self,
  X,
  Y 
)

This function retrieves a CFiniteDistribution representing the pixel at the given location.

The values of the distribution are phases.

def GetMomentImage (   self,
  MomentGeneratingFunction 
)

This function constructs a moment image from this transient image using a user-defined moment-generating function taking phases in radians.

It evaluates the moment-generating function at all points in self.Phase and uses the resulting coefficients to construct a linear combination of the frames. The resulting two-dimensional image has resolution identical to the transient image and every pixel provides a moment for the distribution corresponding to this pixel.

def GetTrigonometricMomentImageStack (   self,
  nMoment 
)

This function generates the given number of trigonometric moment images (not counting the zeroth moment) and returns them as CTrigonometricMomentImageStack.

def StoreTransientImage (   self,
  DirectoryPath,
  Cumulative = False,
  Normalized = False,
  StepSize = 1 
)

This function stores the raw data of this transient image as sequence of single precision *.exr images.

The directory at the given path is filled with images called <Index>.exr providing the incoming radiance at phase self.Phase[Index]. The images are RGB images, but only the red channel contains information.

Parameters
DirectoryPathThe path to the output directory as string.
CumulativeIf this parameter is true, the function stores cumulative brightness rather than momentary brightness, i.e. it sums up all frames up to the current frame and stores that.
NormalizedIf this parameter is true, all output pixel values are divided by the sum of all values for this pixel before they are output.
StepSizeAmong StepSize consecutive frames only the first one is actually written. This does not effect integration of cumulative transient images.

Member Data Documentation

Image = None;
static

A three-dimensional np.ndarray where the first index identifies the time- interval in which light reached the sensor and the other two indices correspond to height and width, respectively.

The values are proportional to the received radiant energy.

Phase = None;
static

A one-dimensional array providing the phase of the beginning of the time- interval for each frame in this transient image.


The documentation for this class was generated from the following file: