Следующие функции, при использовании в комбинации, обеспечивают широкий массив опций для определения и работы с 2-D, N-D и смешанными-D пространственными преобразованиями:
The imtransform
, findbounds
, и tformarray
функции используют tformfwd
и tforminv
выполняет внутренние функции для инкапсуляции прямых преобразований, необходимых для определения степени выходного изображения или массива и/или для преобразования выходных пикселей/местоположений массива назад во входные местоположения. Можно использовать tformfwd
и tforminv
чтобы исследовать геометрические эффекты преобразования путем применения их к точкам и линиям и построения графиков результатов. Они поддерживают последовательную обработку как изображений, так и точечных данных.
Можно использовать tformarray
для работы с произвольно-размерными преобразованиями массива. Массивы не должны иметь одинаковых размерностей. Выход может иметь либо меньшее, либо большее количество размерностей, чем вход. Для примера, если вы дискретизируете 3-D данные на 2-D срезы или многообразии, массив входа может иметь более низкую размерность. Выходная размерность может быть выше, например, если вы комбинируете несколько 2-D преобразований в одну 2-D для 3-D операции.
Вы можете создать структуру повторной дискретизации с помощью makeresampler
функция для получения специальных эффектов или пользовательской обработки. Например, можно задать собственное разделяемое ядро фильтрации/интерполяции, создать пользовательский ресамплер вокруг MATLAB®
interp2
или interp3
функции, или даже реализуйте передовой метод сглаживания.
Следующий пример использует imtransform
для выполнения проективного преобразования шахматного изображения и makeresampler
для создания структуры повторной дискретизации с помощью стандартного метода интерполяции.
I = checkerboard(20,1,1); figure; imshow(I) T = maketform('projective',[1 1; 41 1; 41 41; 1 41],... [5 5; 40 5; 35 30; -10 30]); R = makeresampler('cubic','circular'); K = imtransform(I,T,R,'Size',[100 100],'XYScale',1); figure, imshow(K)
The imtransform
опции функции позволяют вам управлять многими аспектами преобразования. Для примера обратите внимание, как преобразованное изображение, по-видимому, содержит несколько копий оригинального изображения. Это достигается с помощью 'Size'
опция, чтобы сделать выходное изображение больше, чем вход изображение, и затем установка метода заполнения, который расширяет вход изображение путем повторения пикселей в круговом шаблоне. Демозаписи Image Processing Toolbox™ Image Transformation предоставляют больше примеров использования imtransform
функция и связанные функции для выполнения различных типов пространственных преобразований.