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 object. The axes object 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);

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

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

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

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

свернуть все

Основная матрица для стереоизображений в виде 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 , SIFTPoints, SURFPoints, MSERRegions , или cornerPoints объект.

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

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

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

свернуть все

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

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

Советы

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

Ссылки

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

[2] Pollefeys, M., Кох, R. и Ван Гул, L.. Простой и Эффективный Метод Исправления для Общего Движения. Продолжения Седьмой Международной конференции IEEE по вопросам Компьютерного зрения. Объем 1, страницы 496-501. 1999. DOI:10.1109/ICCV.1999.791262.

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

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

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