Documentation

This is machine translation

Translated by
Mouseover text to see original. Click the button below to return to the English version of the page.

estimateUncalibratedRectification

Uncalibrated stereo rectification

Syntax

``````[T1,T2] = estimateUncalibratedRectification(F,inlierPoints1,inlierPoints2,imagesize)``````

Description

example

``````[T1,T2] = estimateUncalibratedRectification(F,inlierPoints1,inlierPoints2,imagesize)``` returns projective transformations for rectifying stereo images. This function does not require either intrinsic or extrinsic camera parameters. The input points can be M-by-2 matrices of M number of [x y] coordinates, or `SURFPoints`, `MSERRegions`, or `cornerPoints` object. `F` is a 3-by-3 fundamental matrix for the stereo images.```

Examples

collapse all

This example shows how to compute the fundamental matrix from corresponding points in a pair of stereo images.

```I1 = imread('yellowstone_left.png'); I2 = imread('yellowstone_right.png'); load yellowstone_inlier_points;```

Display point correspondences. Notice that the matching points are in different rows, indicating that the stereo pair is not rectified.

```showMatchedFeatures(I1, I2,inlier_points1,inlier_points2,'montage'); title('Original images and matching feature points');```

Compute the fundamental matrix from the corresponding points.

```f = estimateFundamentalMatrix(inlier_points1,inlier_points2,... 'Method','Norm8Point');```

Compute the rectification transformations.

```[t1, t2] = estimateUncalibratedRectification(f,inlier_points1,... inlier_points2,size(I2));```

Rectify the stereo images using projective transformations t1 and t2.

`[I1Rect,I2Rect] = rectifyStereoImages(I1,I2,t1,t2);`

Display the stereo anaglyph, which can also be viewed with 3-D glasses.

```figure; imshow(stereoAnaglyph(I1Rect,I2Rect));```

Input Arguments

collapse all

Fundamental matrix for the stereo images, specified as a 3-by-3 fundamental matrix. The fundamental matrix satisfies the following criteria:

 If P1, a point in image `1`, corresponds to P2, a point in image `2`, then: [P2,1] *F * [P1,1]' = 0

`F` must be double or single.

Coordinates of corresponding points in image one, specified as an M-by-2 matrix of M number of [x y] coordinates, or as a `SURFPoints`, `MSERRegions`, or `cornerPoints` object.

Coordinates of corresponding points in image one, specified as an M-by-2 matrix of M number of [x y] coordinates, or as a `SURFPoints`, `MSERRegions`, or `cornerPoints` object.

Second input image size, specified as a double, single, or integer value and in the format returned by the `size` function. The size of input image `2` corresponds to `inlierPoints2`.

Output Arguments

collapse all

Projective transformation, returned as a 3-by-3 matrix describing the projective transformations for input image `T1`.

Projective transformation, returned as a 3-by-3 matrix describing the projective transformations for input image `T2`.

Tips

• An epipole may be located in the first image or the second image. Applying the output uncalibrated rectification of `T1` (or `T2`) to image `1` (or image `2`) may result in an undesired distortion. You can check for an epipole within an image by applying the `isEpipoleInImage` function.

References

[1] Hartley, R. and A. Zisserman, "Multiple View Geometry in Computer Vision," Cambridge University Press, 2003.