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');

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

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

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

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

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

свернуть все

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

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

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

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

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

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

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

свернуть все

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

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

Советы

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

Ссылки

[1] Хартли, R. и А. Зиссермен, "Несколько просматривают геометрию в компьютерном зрении", издательство Кембриджского университета, 2003.

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

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

Представленный в R2012b