Создание структуры повторной выборки
создает отделяемую структуру ресамплера для использования с R = makeresampler(interpolant,padmethod)tformarray. interpolant указывает интерполяционное ядро, используемое разделяемым модулем ресамплеров. padmethod параметр управляет интерполяцией или присвоением значений элементам вывода, которые отображаются рядом с краем входного массива или за его пределами.
создайте структуру ресамплера, использующую записанный пользователем ресамплер с использованием пар значений параметров.R = makeresampler(Name,Value,...)
Чтение изображения в рабочую область и его отображение.
A = imread('moon.tif');
imshow(A)
Создайте разделяемый ресамплер.
resamp = makeresampler({'nearest','cubic'},'fill');Создайте структуру пространственного преобразования (TFORM), определяющую аффинное преобразование.
stretch = maketform('affine',[1 0; 0 1.3; 0 0]);Примените преобразование, указав пользовательский модуль ресамплера.
B = imtransform(A,stretch,resamp);
Отображение преобразованного изображения.
imshow(B)

interpolant - Интерполяция ядра'cubic' | 'linear' | 'nearest' | массив ячеекИнтерполяционное ядро, указанное как 'nearest', 'linear', 'cubic'или массив ячеек. В следующей таблице перечислены именованные интерполяторы:
Interpolant | Описание |
|---|---|
| Кубическая интерполяция |
| Линейная интерполяция |
| Интерполяция ближайшего соседа |
Если требуется использовать пользовательское интерполирующее ядро, укажите массив ячеек в любой из следующих форм:
|
|
|
|
Чтобы задать метод интерполяции независимо вдоль каждого размера, объедините оба типа спецификаций интерполяции. Число элементов в массиве ячеек должно равняться количеству измерений преобразования. Например, рассмотрим следующий пример interpolant значение:
{'nearest', 'linear', {2 KERNEL_TABLE}}В этом примере повторная выборка использует интерполяцию ближайшего соседа вдоль первого размера преобразования, линейную интерполяцию вдоль второго размера и пользовательскую интерполяцию на основе таблицы вдоль третьего.
Типы данных: char | string | cell
padmethod - Метод, используемый для назначения значений элементам вывода, которые отображаются вне входного массива'bound' | 'circular' | 'replicate' | 'symmetric' | 'fill'Метод, используемый для назначения значений элементам вывода, отображаемым вне входного массива, как одно из следующих значений.
Способ прокладки | Описание |
|---|---|
| Присваивает значения из массива значений заливки точкам, которые отображаются вне входного массива. Повторяет граничные элементы массива для точек, которые отображаются внутри массива (аналогично |
| Массив прокладок с циклическим повторением элементов в пределах размера. То же, что и |
| Создает выходной массив с гладкими краями (за исключением случая интерполяции ближайшего соседа). Для точек вывода, которые отображаются рядом с краем входного массива (внутри или снаружи), они объединяют значения входного изображения и заливки. Когда |
| Пакеты массива путем повторения граничных элементов массива. То же, что и |
| Массив прокладок с зеркальными отражениями самого себя. То же, что и |
Для 'fill', 'replicate', 'circular', или 'symmetric', повторная выборка, выполненная tformarray выполняется в два логических шага:
Поместите массив A бесконечно, чтобы заполнить все пространство входного преобразования.
Оценка свертки заполненного A с ядром повторной выборки в точках вывода, заданных геометрической картой.
Каждая нетрансформная аналитика обрабатывается отдельно. Заполнение является виртуальным (выполняется путем переопределения индексов массива) для производительности и эффективности памяти. При внедрении пользовательского средства ресамплинга можно реализовать эти варианты поведения.
Типы данных: char | string
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
resamp = makeresampler('Type','separable','Interpolant','linear','PadMethod','fill');'Type' - Тип ресамплера'separable' | 'custom'Тип ресамплера, указанный как одно из следующих значений.
| Напечатать | Описание |
|---|---|
'separable' | Создайте разделяемый ресамплер. При указании этого значения можно задать только следующие свойства: 'Interpolant' и 'PadMethod'. Результат эквивалентен использованию makeresampler(interpolant,padmethod) синтаксис. |
'custom' | Создайте ресамплер клиента. При указании этого значения необходимо указать 'NDims' и 'ResampleFcn' свойства и, необязательно, 'CustomData' собственность. |
Типы данных: char | string
'PadMethod' - Метод, используемый для назначения значений элементам вывода, которые отображаются рядом с краем входного массива или за его пределамиСм. раздел padmethod для получения дополнительной информации.
Типы данных: char | string
'Interpolant' - Интерполяция ядраСм. раздел interpolant для получения дополнительной информации.
Типы данных: char | string | cell
'NDims' - Настраиваемый ресамплер размерности может обрабатыватьНастраиваемое средство ресамплинга размерности может обрабатывать, указываемое как положительное целое число. Использовать значение Inf указывает на то, что пользовательская ресамплер может обрабатывать любой размер. Если 'Type' является 'custom', необходимо указать NDims.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
'ResampleFcn' - Функция, выполняющая повторную выборкуФункция, выполняющая повторную выборку, заданная как дескриптор функции. Эта функция вызывается со следующим интерфейсом:
B = resample_fcn(A,M,TDIMS_A,TDIMS_B,FSIZE_A,FSIZE_B,F,R)
Дополнительные сведения о входных аргументах этой функции см. в справке для tformarray. Аргумент M - массив, отображающий пространство нижнего индекса преобразования B в подстрочное пространство преобразования A. Если A имеет N преобразовать размеры (N = length(TDIMS_A)) и B имеет P преобразовать размеры (P = length(TDIMS_B)), то ndims(M) = P + 1, если N > 1 и P если N == 1, и size(M,P + 1) = N.
Первое P размеры M соответствуют пространству выходного преобразования, переставленные в соответствии с порядком, в котором размеры выходного преобразования перечислены в TDIMS_B. (В целом TDIMS_A и TDIMS_B не нужно сортировать по возрастанию, хотя некоторые повторные выборки могут наложить такое ограничение.) Таким образом, первый P элементы size(M) определить размеры размеров преобразования B. Координаты входного преобразования, которым сопоставлена каждая точка, расположены в массиве по конечному размеру M, следуя порядку, приведенному в TDIMS_A. M должно быть double. FSIZE_A и FSIZE_B являются полными размерами A и B, с дополнением 1при необходимости, чтобы соответствовать TDIMS_A, TDIMS_B, и size(A).
Типы данных: function_handle
'CustomData' - Данные, определяемые пользователемПользовательские данные, заданные с помощью строкового скаляра, символьного вектора или числового массива.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string
R - РесамплерРесамплер, возвращенный как структура.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.