Particle Image Velocimetry
Particle Image Velocimetry
This option provides a method of evaluating the local translation required
to optimise the matching between two images. The fundamental nature of the
option is similar to [S Shift to minimise differences - pixel resolution]
except that it offers subpixel resolution (optimised for PIV calculations).
The option is restricted to a smaller variety of methods for determining
the optimal shift between the images, utilising either the absolute
difference, the square of the difference between the two images, or the
cross-correlation function.
The image difference is evaluated by the ALU for a specified range of
shifts to build up a data base describing how the difference image varies
with the shift, while the cross-correlation is evaluated by the CPU (and
hence is significantly slower). The data base is sampled at regular
intervals to determine the shift which gives the minimum difference. A
bi-quadratic polynomial is then fitted to the data in the neighbourhood of
the shift which minimised the difference. Finally the minimum for the
fitted quadratic is found and used as the subpixel resolution estimate for
the optimal shift.
One use of this feature is to provide a high spatial resolution particle
image velocimetry (PIV) measurement for flows with very high particle
concentrations. This option is optimised with such computations in mind..
Normally two-frame PIV is performed by maximising the cross correlation
function between regions in the two images. While this is a robust
procedure, it is computationally very expensive. Provided you have
relatively uniform illumination, then minimising the absolute or square
difference between the two images will produce approximately equivalent
results in only a fraction the time by employing the onboard ALU most of
the calculations.
The current technique may also be applied to double-pulsed single frame
images. The restrictions on these are similar to those imposed on normal
double pulsed single frame PIV, namely that there must not be any regions
with a velocity close to zero: the two images of the same particle must
appear distinct in the images to be analysed. The search limits for the
optimal shift must not include a 0,0 shift (otherwise this will always be
the optimal!).
First source buffer ?
The response to this prompt specifies the buffer containing the image to be
used as the base image for the optimal shift. Any valid buffer may be
specified. The contents of the specified buffer is swapped with buffer 1 at
the start of the computation, and swapped back at the end. This swap is
undertaken to ensure the source buffer is onboard. Note that if <ctrl><C>
is used to abort DigImage, then the buffers may not be restored (they are
restored if <escape> is used).
Second source buffer ?
The response to this prompt specifies the buffer containing the image to be
used as the shifted image (ie. the one to which the translation is applied
before being directed to the B arm of the ALU) for the optimal shift. Any
valid buffer may be specified. The contents of the specified buffer is
swapped with buffer 2 at the start of the computation, and swapped back at
the end. This swap is undertaken to ensure the source buffer is onboard.
Note that if <ctrl><C> is used to abort DigImage, then the buffers may not
be restored (they are restored if <escape> is used).
Place optimal relation image in which buffer ?
As the computation proceeds, a data base describing the behaviour of the
relation between the images as a function of the translation is built up in
the buffer specified to this prompt. This buffer consists of an array of
rectangles, one per sample point. Each rectangle gives the relation between
the images as a function of translation for that particular sample point.
Produce vector plot on which buffer ?
DigImage also produces a vector plot indicating the optimal displacements
for the pair of images. The vector plot is produced on a grid (the size of
which depends on the displacements) overlaying the current contents of the
specified buffer. This buffer may be one of the source buffers. The vector
plot is made AFTER the buffers have been restored to their original
locations. Vectors are plotted with an intensity of 128, except for their
starting point which is plotted with intensity 255. Note that the length of
the vectors is equal to a multiple of the optimal displacement.
Erase current contents of vector plot buffer ?
Answering yes (<Y>) will erase the contents of the buffer
specified by the previous entry. No (<N>) will cause the vector
plot to be overlayed on top of the required buffer.
Displacement vector scale (1 for actual displacement) ?
This entry allows you to specify the scale of the arrows to be drawn on the
vector plot. A value of 1 will show the actual displacement, 2 twice the
displacement etc. Note that the optimal displacement is evaluated with
subpixel accuracy, while we are only able to show the displacements as
integral multiples of the pixel size.
On completion DigImage will display buffer 0 which will contain pixel
resoltuion vectors showing the shift required to minimise the image
difference. This plot is effectively the same as would be produced by [S
Shift to minimise difference - pixel resolution].
Minimum vertical shift ?
This entry specifies the minimum vertical translation to be tested for. The
translation is given in pixels.
Maximum vertical shift ?
This entry specifies the maximum vertical translation to be tested for. The
translation is given in pixels. Up to sixteen different equally spaced
translations will be used to span the specified minimum/maximum translation
in steps of one or more pixels.
Minimum horizontal shift ?
This entry specifies the minimum horizontal translation to be tested for. The
translation is given in pixels.
Maximum horizontal shift ?
This entry specifies the maximum horizontal translation to be tested for. The
translation is given in pixels. Up to sixteen different equally spaced
translations will be used to span the specified minimum/maximum translation
in steps of one or more pixels.
Use Square or Absolute value of intensity difference, direct evaluation of
the Cross correlation or a FFT technique ?
The choice here dictates whether the absolute difference ³A-B³ or the
square of the difference (A-B)ý is minimised, or maximising the cross
correlation function between A and B. The cross correlation may be
evaluated either directly (<C>) or via a FFT procedure (<F>). The direct
evaluation of the cross correlation is arguably more flexible than the FFT
approach, but is also computationally more expensive. Absolute
differences (<A>) are more robust to entities (eg. particles) entering or
leaving the image than square differences (<S>), but will be more
sensitive to signal noise.
{If direct evaluation of cross correlation}
Size of cross correlation cell ?
This entry specifies the size of the cell over which the cross correlation
is evaluated. The cell size is taken as the closest odd number of pixels,
and is centred on the point at which the correlation is to be evalued.
{If FFT evaluation of cross correlation}
Size of cross correlation cell (power of 2) ?
This entry specifies the size of the cell over which the cross correlation
is evaluated. The cell size is rounded up to the next power of two.
{If absolute difference}
Vertical size for filtering window ?
This entry specifies the vertical size of the low pass convolution
kernal to be applied to the difference or correlation image.
Horizontal size for filtering window ?
This entry specifies the horizontal size of the low pass convolution
kernal to be applied to the difference or correlation image.
{If square difference}
Vertical size for filtering window ?
This entry specifies the vertical size of the low pass convolution
kernal to be applied to the difference or correlation image.
Horizontal size for filtering window ?
This entry specifies the horizontal size of the low pass convolution
kernal to be applied to the difference or correlation image.
Name of file to write grid data to (no extension; blank to suppress) ?
As an option, this PIV facility is able to produce a Trk2DVel compatible
grid file. This grid file will describe the velocities on a regular grid
which may then be used to produce hard copy, be taped onto a VTR or a
number of other manipulations (see the help facility in Trk2DVel for more
details). No extension should be given (DigImage will supply the required
.GRD extension). Entering a blank line will suppress the creation of the
file.
{If grid file to be produced}
Time interval between frames ?
This prompt will be produced only if a grid file has been requested. The
entry should specify the time interval between the two frames on which the
optimal shift is based so that DigImage may convert the translations to
velocities.
{If grid file to be produced}
Title for grid file ?
This prompt will be produced only if a grid file has been requested. The
alphanumeric string entered here will be used as the title for the grid
file.
Parent menu
Main Menu
DigImage User Documentation
Stuart Dalziel,
last page update: 19 February 1996