exponenta event banner

estimateGeometricTransform

Оценка геометрического преобразования на основе совпадающих пар точек

Описание

пример

tform = estimateGeometricTransform(matchedPoints1,matchedPoints2,transformType) возвращает 2-D объект геометрического преобразования, tform. tform объект сопоставляет inliers в matchedPoints1 к входам в matchedPoints2.

Функция исключает отклонения, используя алгоритм SAmple Consensus (MSAC) M-оценщика. Алгоритм MSAC является вариантом алгоритма RANSAC. Результаты не могут быть идентичными между запусками из-за рандомизированного характера алгоритма MSAC.

Примечание

Эта функция будет удалена в следующей версии. Используйте estimateGeometricTransform2d или estimateGeometricTransform3d функции, которые обеспечивают большую функциональность.

пример

[tform,inlierpoints1,inlierpoints2] = estimateGeometricTransform(matchedPoints1,matchedPoints2,transformType) возвращает соответствующие входные точки в inlierpoints1 и inlierpoints2.

пример

[___,status] = estimateGeometricTransform(matchedPoints1,matchedPoints2,transformType) возвращает код состояния 0, 1, или 2. Если вы не запрашиваете status вывод кода, функция возвращает ошибку для условий, которые не могут привести к результатам.

[___] = estimateGeometricTransform(matchedPoints1,matchedPoints2,transformType, Name,Value) использует дополнительные параметры, указанные одним или несколькими Name,Value аргументы пары.

Примеры

свернуть все

Прочтите изображение и отобразите его.

original = imread('cameraman.tif');
imshow(original)
title('Base Image')

Искажение и отображение преобразованного изображения.

distorted = imresize(original,0.7); 
distorted = imrotate(distorted,31);
figure
imshow(distorted)
title('Transformed Image')

Обнаружение и извлечение элементов из исходного и преобразованного изображений.

ptsOriginal  = detectSURFFeatures(original);
ptsDistorted = detectSURFFeatures(distorted);
[featuresOriginal,validPtsOriginal] = extractFeatures(original,ptsOriginal);
[featuresDistorted,validPtsDistorted] = extractFeatures(distorted,ptsDistorted);

Сопоставление и отображение элементов между изображениями.

index_pairs = matchFeatures(featuresOriginal,featuresDistorted);
matchedPtsOriginal  = validPtsOriginal(index_pairs(:,1));
matchedPtsDistorted = validPtsDistorted(index_pairs(:,2));
figure 
showMatchedFeatures(original,distorted,matchedPtsOriginal,matchedPtsDistorted)
title('Matched SURF Points With Outliers');

Исключите отклонения, оцените матрицу преобразования и просмотрите результаты.

[tform,inlierIdx] = estimateGeometricTransform2D(matchedPtsDistorted,matchedPtsOriginal,'similarity');
inlierPtsDistorted = matchedPtsDistorted(inlierIdx,:);
inlierPtsOriginal  = matchedPtsOriginal(inlierIdx,:);

figure 
showMatchedFeatures(original,distorted,inlierPtsOriginal,inlierPtsDistorted)
title('Matched Inlier Points')

Используйте расчетное преобразование для восстановления и отображения исходного изображения из искаженного изображения.

outputView = imref2d(size(original));
Ir = imwarp(distorted,tform,'OutputView',outputView);
figure 
imshow(Ir); 
title('Recovered Image');

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

свернуть все

Совпадающие точки из изображения 1, указанные как KAZEPoints, cornerPoints объект, SURFPoints объект, MSERRegions объект, ORBPoints объект, BRISKPointsили матрица M-by-2 с координатами [x, y]. Функция исключает отклонения, используя алгоритм SAmple Consensus (MSAC) M-оценщика. Алгоритм MSAC является вариантом алгоритма RANSAC.

Совпадающие точки из изображения 2, указанные как KAZEPoints, cornerPoints объект, SURFPoints объект, MSERRegions объект, ORBPoints объект, BRISKPointsили матрица M-by-2 с координатами [x, y]. Функция исключает отклонения, используя алгоритм SAmple Consensus (MSAC) M-оценщика. Алгоритм MSAC является вариантом алгоритма RANSAC.

Тип преобразования, заданный как одна из трех символьных строк. Можно задать тип преобразования: 'similarity', 'affine', или 'projective'. Чем больше количество совпадающих пар точек, тем выше точность расчетного преобразования. Минимальное количество совпадающих пар точек для каждого типа преобразования:

Тип преобразованияМинимальное количество совпадающих пар точек
'similarity'2
'affine'3
'projective'4

Типы данных: char

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'Confidence',99 устанавливает значение достоверности как 99.

Максимальное количество случайных испытаний для поиска входов, указанное как пара, разделенная запятыми, состоящая из 'MaxNumTrials"и положительный целочисленный скаляр. Увеличение этого значения повышает надежность результатов за счет дополнительных вычислений.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Уверенность в нахождении максимального числа входов, указанного как пара, разделенная запятыми, состоящая из 'Confidence'и числовой скаляр в процентах в диапазоне (0 100). Увеличение этого значения повышает надежность результатов за счет дополнительных вычислений.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Максимальное расстояние в пикселях от точки до проекции соответствующей точки, определяемое как разделенная запятыми пара, состоящая из 'MaxDistance«и положительный числовой скаляр». Соответствующая проекция основана на оцененном преобразовании.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

свернуть все

Геометрическое преобразование, возвращаемое как affine2d объект или projective2d объект.

Возвращенная матрица геометрического преобразования отображает inliers в matchedPoints1 к входам в matchedPoints2. При установке transformType входные данные для 'similarity' или 'affine', функция возвращает affine2d объект. В противном случае возвращает projective2d объект.

Код состояния, возвращаемый в качестве значения 0, 1, или 2.

statusОписание
0Ошибка отсутствует.
1matchedPoints1 и matchedPoints2 входные данные не содержат достаточного количества точек.
2Не найдено достаточного количества вложенных файлов.

Если вы не запрашиваете status вывод кода, функция выдаст ошибку для двух условий, которые не могут привести к результатам.

Типы данных: double

Точки Inlier в изображении 1, возвращаемые как те же типы, что и точки согласования входных данных.

Входящие точки на изображении 2, возвращаемые как те же самые, что и входные совпадающие точки.

Ссылки

[1] Хартли, Р. и А. Зиссерман, «Геометрия множественного вида в компьютерном зрении», Cambridge University Press, 2003.

[2] Торр, П. Х. С. и А. Зиссерман, «MLESAC: новый надежный оценщик с применением к оценке геометрии изображения», Computer Vision and Image Understanding, 2000.

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

.
Представлен в R2013a