This program estimates the disparity between two images having similar features as illustrated in the screenshot below. It works by first detecting remarkable points which are likely to be detectable in both images and finding possible matches between the two sets of points. This initial estimate of the match is then refined by a relaxation technique tending to favor spatially consistent matches. The program is made up five successive operations which are described below.

  1. Corners and high curvature regions highlighting
  2. Local extrema detection
  3. Matching initialization
  4. Matching relaxation
  5. Image warping

Source images used in the following sections


Corners highlighting

This panel performs the highlighting of the corners in both images. The output gray level is computed as follows:

g(x,y) = c(x,y) *| grad(x,y) |3

where c(x,y) is the curvature of the iso-intensity line passing through the point, and grad(x,y) the local gradient vector. The output gray level is high if both the local gradient and the curvature are high yielding thus corners highlighting. The convolution filters that make up the operator are implemented using gaussian derivatives. It is possible to adjust the size of the highlighted features by changing the value of the gaussian standard deviation.

This operation needs to be completed in order to access the next panel.


Local extrema detection

This panel performs the local maxima and minima detection in the two images processed in the previous panel. Blue circles correspond to maxima and red circles to minima. The circles sizes reflect the maxima (minima) magnitudes.

This operation needs to be completed in order to access the next panel.


Matching initialization

This panel performs the initialization of the matching. Each point of the source (left) image is associated with possible matches in the target (right) image. Two points make up a possible match if they are neighbors, ie. they are not apart of more than a few pixels. Maxima of the source image (respectively minima) can only be matched with maxima (respectively minima) of the target image. An initial probability is associated with each possible match based on the correlation of two small rectangles surrounding the two constitutive points of the match, and the sum of probabilities of all matches defined at one point of the source image is equal to one. The disparity having the highest probability is displayed using a continuous line, the others using dashes. If at one point of the source image none of the disparities is displayed with a continuous line, it means that the special (not displayed) undefined disparity has a higher probability than all the other disparities .

This operation needs to be completed in order to access the next panel.


Matching relaxation

This panel performs the spatial relaxation of the disparity field. At each iteration of the relaxation process, the probabilities of all disparities are updated in turn with the following rule: The probability of a disparity is increased when highly probable disparities consistent with the disparity being updated are found in the neighborhood of the disparity’s source point.

This panel is optional (it does not need to be completed in order to access to the next panel).


Image warping

This panel performs the polynomial warping of the source image on the destination image using all the most likely disparities computed in the previous step. (see the JAI documentation for detailed informations on polynomial warping operations).