estimateUncalibratedRectification

Некалиброванное стерео-исправление

Описание

пример

[T1,T2] = estimateUncalibratedRectification(F,inlierPoints1,inlierPoints2,imagesize) возвращает проективные преобразования для выпрямления стерео изображений. Эта функция не требует ни собственных, ни внешних параметров камеры.

Примеры

свернуть все

Этот пример показов, как вычислить фундаментальную матрицу из соответствующих точек в паре стерео- изображений.

Загрузите стерео изображения и точки признаков, которые уже совпадают.

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

Отобразите соответствия точек. Заметьте, что совпадающие точки находятся в разных строках, что указывает на то, что стереофоническая пара не исправлена.

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

Figure contains an axes. The axes with title Original images and matching feature points contains 4 objects of type image, line.

Вычислите фундаментальную матрицу из соответствующих точек.

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

Вычислите преобразования выпрямления.

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

Исправьте стерео изображений с помощью проективных преобразований t1 и t2.

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

Отобразить стерео-анаглиф, который также можно посмотреть в 3-D очках.

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

Figure contains an axes. The axes contains an object of type image.

Входные параметры

свернуть все

Фундаментальная матрица для стерео изображений, заданная как фундаментальная матрица 3 на 3. Фундаментальная матрица удовлетворяет следующим критериям:

Если P 1, точка на изображении 1, соответствует P 2, точке в изображении 2, затем:
[<reservedrangesplaceholder2> 2,1]
* F * [<reservedrangesplaceholder0> 1,1]' = 0

F должен быть двойным или одинарным.

Координаты соответствующих точек в изображении 1, заданные как матрица M-на-2 M числа координат [x y] или как ORBPoints, BRISKPoints , SURFPoints, MSERRegions , или cornerPoints объект.

Координаты соответствующих точек на изображении 2, заданные как матрица M-на-2 M числа координат [x y] или как ORBPoints, BRISKPoints , SURFPoints, MSERRegions , или cornerPoints объект.

Второй размер входного изображения, заданный как двойное, одинарное или целое значение и в формате, возвращенном size функция. Размер входа изображения 2 соответствует inlierPoints2.

Выходные аргументы

свернуть все

Проективное преобразование, возвращенное как матрица 3 на 3, описывающая проективные преобразования для входного изображения T1.

Проективное преобразование, возвращенное как матрица 3 на 3, описывающая проективные преобразования для входного изображения T2.

Совет

  • Эпиполь может быть расположен в первом изображении или втором изображении. Применение выхода некалиброванного выпрямления T1 (или T2) к изображению 1 (или изображение 2) может привести к нежелательному искажению. Можно проверить наличие эпиполя в изображении, применив isEpipoleInImage функция.

Ссылки

[1] Хартли, Р. и А. Зиссерман. Несколько видов геометрии в Компьютерное Зрение. Cambridge University Press. 2003.

[2] Pollefeys, M., Koch, R., and Van Gool, L.. Простой и эффективный метод выпрямления для общего движения. Материалы седьмой Международной конференции IEEE по компьютерному зрению. Том 1, страницы 496-501. 1999. DOI:10.1109/ICCV.1999.791262.

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.
Введенный в R2012b