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.

- Corners and high curvature regions highlighting
- Local extrema detection
- Matching initialization
- Matching relaxation
- Image warping

** **

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.

**Magnify**: The operator’s output*[-Min, 0, +Max]*is converted to byte range*[0, 128, 256]*for display purposes, Magnify controls the scaling factor of the conversion**.****Sigma**: Standard deviation of the gaussian filters that make up the operator.

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

** **

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.

**Half size search window**: Choose how close two maxima (respectively two minima) can be. It is not possible to detect more than one maximum (respectively minimum) in a square of side*2 halfsize + 1*. (Maxima and minima are treated separately.)**Number maxima (minima)**: Keep only the maxima (minima) having the highest magnitudes.**Display on**: display the detected points on top of the two processed images (computed in the previous panel) or the two original images.

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

** **

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 .

**Display disparities**:*All*, display all disparities (except the undefined disparity).*Most likely only*, display only the most likely disparity for each source point (hence no disparity is displayed if the most likely one is the undefined disparity).**Half size correlation window**: The correlation window used for the initialization of the probabilities is a square of size*2 half size + 1*.**Maximum disparity**: Maximum distance (in pixels) between two points (one in the source image, one in the destination image) making up a possible match.

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

** **

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.

**Display disparities**:*All*, display all disparities (except the undefined disparity).*Most likely only*, display only the most likely disparity for each source point (hence no disparity is displayed if the most likely one is the undefined disparity).**Iteration panel****Number per run**: Number of iterations to run the relaxation process over.**Total**: Total number of iterations the relaxation process has been run over so far.

**Similar disparities panel****Max distance**: Maximum distance (in pixels) of the source points of two potentially similar disparities.**Max discrepancy**: Maximum discrepancy (in pixels) of two similar disparities (granted that the above-mentioned maximum distance condition is fulfilled).

**Run**: Run the relaxation of the disparities over n iterations.

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

** **

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).

**Degree**: degree of the polynomial.**Max degree**: Max degree of the polynomial. It is computed from the number of constraints (disparities) such that:*2*numberpoints >= (maxdegree+1)*(maxdegree+2)*(see the JAI documentation).**Fix corners**: Whether or not the image corners are to be fixed during warping.**Run**: Perform warping of the source image.