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