exponenta event banner

affineOutputView

Создание выходного вида для искажающих изображений

Описание

Rout = affineOutputView(sizeA,tform) принимает размер входного изображения, sizeAи аффинное геометрическое преобразование, tformи возвращает объект пространственной ссылки, Rout. Этот объект можно использовать в качестве входных данных для imwarp для управления пределами вывода и интервалом сетки искривленного изображения.

пример

Rout = affineOutputView(sizeA,tform,'BoundsStyle',style) также задает ограничения пространственных пределов выходного представления, например, должно ли выходное представление полностью содержать выходное изображение или должно ли выходное представление соответствовать входным пределам.

Примеры

свернуть все

Чтение и отображение изображения. Чтобы увидеть пространственные границы изображения, сделайте оси видимыми.

A = imread('kobi.png');
iptsetpref('ImshowAxesVisible','on')
imshow(A)

Figure contains an axes. The axes contains an object of type image.

Создайте аффинное преобразование 2-D. В этом примере создается рандомизированное преобразование, состоящее из масштабирования на коэффициент в диапазоне [1.2, 2.4], поворота на угол в диапазоне [-45, 45] градусов и горизонтального перемещения на расстояние в диапазоне [100, 200] пикселей.

tform = randomAffine2d('Scale',[1.2,2.4],'XTranslation',[100 200],'Rotation',[-45,45]);

Создайте три различных выходных представления для изображения и преобразования.

centerOutput = affineOutputView(size(A),tform,'BoundsStyle','CenterOutput');
followOutput = affineOutputView(size(A),tform,'BoundsStyle','FollowOutput');
sameAsInput = affineOutputView(size(A),tform,'BoundsStyle','SameAsInput');

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

BCenterOutput = imwarp(A,tform,'OutputView',centerOutput);
BFollowOutput = imwarp(A,tform,'OutputView',followOutput);
BSameAsInput = imwarp(A,tform,'OutputView',sameAsInput);

Отображение полученных изображений.

imshow(BCenterOutput)
title('CenterOutput Bounds Style');

Figure contains an axes. The axes with title CenterOutput Bounds Style contains an object of type image.

imshow(BFollowOutput)
title('FollowOutput Bounds Style');

Figure contains an axes. The axes with title FollowOutput Bounds Style contains an object of type image.

imshow(BSameAsInput)
title('SameAsInput Bounds Style');

Figure contains an axes. The axes with title SameAsInput Bounds Style contains an object of type image.

iptsetpref('ImshowAxesVisible','off')

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

свернуть все

Входной размер изображения, определенный как числовой вектор с 2 элементами для 2-го входа изображения или числовой вектор с 3 элементами для 3D объемного изображения, введен.

Аффинное геометрическое преобразование, указанное как affine2d или affine3d объект.

Стиль границ, заданный как одно из следующих значений.

СтильОписание
'CenterOutput'Центрируйте вид в центре изображения в пространстве вывода, позволяя при этом перемещению перемещать выходное изображение за пределы вида.
'FollowOutput'Установите границы выходного представления, чтобы оно полностью содержало выходное изображение.
'SameAsInput'Установите выходные пределы такими же, как и входные.

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

свернуть все

Пространственная ссылка, возвращенная как imref2d или imref3d объект. Использовать Rout в качестве OutputView аргумент imwarp для задания пространственной привязки деформированного выходного сигнала.

Представлен в R2019b