Fast Transient Imaging
A Python framework revolving around reconstruction of impulse responses from AMCW lidar measurements.
|
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... | |
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.
def __init__ | ( | self, | |
Image, | |||
Phase = None |
|||
) |
Initializes this transient image with the given 3D array.
Image | See the attribute documentation for details. |
Phase | A 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. |
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).
BrightnessFactor | This factor is multiplied onto the brightness. A value of 1.0 means that the maximal held pixel value corresponds to maximal display brightness. |
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.
DirectoryPath | The path to the output directory as string. |
Cumulative | If 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. |
Normalized | If this parameter is true, all output pixel values are divided by the sum of all values for this pixel before they are output. |
StepSize | Among StepSize consecutive frames only the first one is actually written. This does not effect integration of cumulative transient images. |
|
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.
|
static |
A one-dimensional array providing the phase of the beginning of the time- interval for each frame in this transient image.