estimateGeometricTransform

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

Описание

пример

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

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

Примечание

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

пример

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

Совпадающие точки от изображения 2 в виде любого KAZEPoints, cornerPoints объект, SIFTPoints, 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 имя аргумента и 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