estimateGeometricTransform

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

Описание

пример

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

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

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

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

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

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

Задайте дополнительные разделенные запятой пары Name,Value аргументы. 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