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