estimateGeometricTransform

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

Синтаксис

tform = estimateGeometricTransform(matchedPoints1,matchedPoints2,transformType)
[tform,inlierpoints1,inlierpoints2] = estimateGeometricTransform(matchedPoints1,matchedPoints2,transformType)
[___,status] = estimateGeometricTransform(matchedPoints1,matchedPoints2,transformType)
[___] = estimateGeometricTransform(matchedPoints1,matchedPoints2,transformType, Name,Value)

Описание

пример

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

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

пример

[tform,inlierpoints1,inlierpoints2] = estimateGeometricTransform(matchedPoints1,matchedPoints2,transformType) возвращает соответствующие точки inlier в 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,including outliers');

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

[tform,inlierPtsDistorted,inlierPtsOriginal] = ...
    estimateGeometricTransform(matchedPtsDistorted,matchedPtsOriginal,...
    'similarity');
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 или как M-by-2 матрица [x, y] координаты. Функция исключает выбросы с помощью Демонстрационного Согласия M-средства-оценки (MSAC) алгоритм. Алгоритм MSAC является вариантом Согласия Случайной выборки (RANSAC) алгоритм.

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

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

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

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

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

Уверенность нахождения максимального количества inliers, заданного как пара, разделенная запятой, состоящая из '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 к inliers в matchedPoints2. Когда вы устанавливаете вход transformType или на 'similarity' или на 'affine', функция возвращает объект affine2d. В противном случае это возвращает объект projective2d.

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

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

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

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

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

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

Ссылки

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

[2] Торр, P. H. S. и А. Зиссермен, "MLESAC: новое устойчивое средство оценки с приложением к оценке геометрии изображений", компьютерное зрение и распознавание изображений, 2000.

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

Введенный в R2013a