|
View Inside FpaProcessing:
|
|
FpaProcessing is used process the output of a focal plane sensor, such as a Camera or a TargetBoard, at runtime; after applying a specified threshold, it computes the centroid, max intensity, on-axis intensity, x, y, and azimuthally averaged slices, power-in-bucket as a function of bucket radius, and, optionally, an n-frame average image every n frames. Of course all of these things could be computed in postprocessing if we stored the individual images, but with FpaProcessing it often becomes unnecessary to store the individual images, greatly reducing the total storage requirements. When running large jobs on a remote device, minimizing the storage used can be crucial.
Note: PIB is output in units of J/m^2; to convert to J it is necessary to multiply by the pixel area of the grid (dx*dy). Bucket radii are dr*(1, 2, ..., nr-1, inf), where dr = min(dx,dy) and nr = ceil(max(|x|,|y|)/dr). The final bucket used for PIB calculations contains all energy falling outside of the largest circle that can fit within the grid; any energy in this bucket indicates that the grid is too small.
C++ type
|
name
|
value
|
description
|
Parameters
|
int
|
nx
|
|
x dimension of image grid to be used in computation, which need not match grid of input image
|
int
|
ny
|
|
y dimension of image grid to be used in computation, which need not match grid of input image
|
double
|
dx
|
|
x spacing of image grid to be used in computation (m), which need not match grid of input image
|
double
|
dy
|
|
y spacing of image grid to be used in computation (m), which need not match grid of input image
|
double
|
relativeThreshold
|
|
Relative threshold, expressed as a fraction of the maximum value in the image.
|
int
|
typeOfThreshold
|
|
Type of threshold: 1 = subtract, then set negative values to zero. 2 = set values below the threshold to zero
|
int
|
n_per_average
|
|
Number of frames (consecutive images) to use in computing average image (0 means don't compute average image)
|
Inputs
|
Grid<double>
|
image
|
|
Input image
|
Outputs
|
double
|
xc
|
|
x centroid (m)
|
double
|
yc
|
|
y centroid (m)
|
double
|
onAxisIntensity
|
|
On axis intensity (value of image at origin)
|
double
|
maxIntensity
|
|
Maximum intensity (maximum value of image)
|
Vector<double>
|
xavg
|
|
Average slice through image in the x direction (averaged over y)
|
Vector<double>
|
yavg
|
|
Average slice through image in the y direction (averaged over x)
|
Vector<double>
|
ravg
|
|
Average radial slice through image (averaged over slice angle)
|
Vector<double>
|
pib
|
|
Integrated power in the bucket, as a function of bucket radius (J/m^2)
|
Grid<double>
|
averageImage
|
|
The average of the first n images, the second n images, and so forth, where n = n_per_average (a parameter)
|
|