Создайте структуру передискретизации
R = makeresampler(interpolant,padmethod)
R = makeresampler(Name,Value,...)
создает отделимую resampler структуру для использования с R
= makeresampler(interpolant
,padmethod
)tformarray
. Аргумент interpolant
задает ядро интерполяции, которое использует отделимый resampler. Средства управления аргументом padmethod
, как resampler интерполирует или присваивает значения, чтобы вывести элементы, которые сопоставляют близко к или вне ребра входного массива.
создайте resampler структуру, которая использует написанный пользователем resampler, использующий пары значения параметров.R
= makeresampler(Name,Value
,...)
Считайте изображение в рабочую область и отобразите ее.
A = imread('moon.tif');
imshow(A)
Создайте отделимый resampler.
resamp = makeresampler({'nearest','cubic'},'fill');
Создайте пространственную структуру преобразования (TFORM), который задает аффинное преобразование.
stretch = maketform('affine',[1 0; 0 1.3; 0 0]);
Примените преобразование, задав пользовательский resampler.
B = imtransform(A,stretch,resamp);
Отобразите преобразованное изображение.
imshow(B)
interpolant
Интерполяция ядра'cubic'
| 'linear'
| 'nearest'
| массив ячеекИнтерполируя ядро, заданное как 'nearest'
, 'linear'
, 'cubic'
или массив ячеек. В следующей таблице перечислены именованный interpolants:
Interpolant | Описание |
---|---|
| Кубичная интерполяция |
| Линейная интерполяция |
| Самая близкая соседняя интерполяция |
Если вы хотите использовать пользовательское ядро интерполяции, задайте массив ячеек в любой из этих форм:
|
|
|
|
Чтобы задать метод интерполяции независимо по каждому измерению, объедините оба типа interpolant спецификаций. Число элементов в массиве ячеек должно равняться количеству размерностей преобразования. Например, рассмотрите следующий пример значения interpolant
:
{'nearest', 'linear', {2 KERNEL_TABLE}}
В этом примере интерполяция использования resampler ближайшего соседа вдоль первого преобразовывает размерность, линейную интерполяцию вдоль второго измерения и пользовательскую основанную на таблице интерполяцию вдоль третьего.
Типы данных: char
| string
| cell
padmethod
— Метод раньше присваивал значения, чтобы вывести элементы, которые сопоставляют вне входного массива'bound'
| 'circular'
| 'replicate'
| 'symmetric'
| 'fill'
Метод раньше присваивал значения, чтобы вывести элементы, которые сопоставляют вне входного массива, заданного как одно из следующих значений.
Заполните метод | Описание |
---|---|
| Значения присвоений от массива значения заливки до точек, что карта вне входного массива. Повторения ограничивают элементы массива для точек что карта в массиве (то же самое как |
| Массив клавиатур с круговым повторением элементов в размерности. То же самое как |
| Генерирует выходной массив со сглаженно выглядящими ребрами (кроме тех случаев, когда с помощью интерполяции ближайшего соседа). Для выходных точек, которые сопоставляют около ребра входного массива (любая внутренняя или внешняя часть), это комбинирует входное изображение и значения заливки. Когда |
| Массив клавиатур путем повторения элементов границы массива. То же самое как |
| Массив клавиатур с зеркальными отражениями себя. То же самое как |
Для 'fill'
, 'replicate'
, 'circular'
или 'symmetric'
, передискретизация, выполняемая tformarray
, происходит на двух логических шагах:
Заполните массив, A
бесконечно, чтобы заполнить целый вход преобразовывает пробел.
Оцените свертку заполненного A
с ядром передискретизации в выходных точках, заданных геометрической картой.
Каждый не преобразовывает размерность, обработан отдельно. Дополнение является виртуальным (выполненный путем переотображения индексов массивов) для эффективности памяти и производительности. Если вы реализуете пользовательский resampler, можно реализовать эти поведения.
Типы данных: char | string
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение.
Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
resamp = makeresampler('Type','separable','Interpolant','linear','PadMethod','fill');
Ввод
Тип Resampler'separable'
| 'custom'
Тип Resampler, заданный как одно из следующих значений.
Ввод | Описание |
---|---|
'separable' | Создайте отделимый resampler. Если вы задаете это значение, единственными другими свойствами, которые можно задать, является 'Interpolant' и 'PadMethod' . Результат эквивалентен использованию синтаксиса makeresampler(interpolant,padmethod) . |
'custom' | Создайте клиента resampler. Если вы задаете это значение, необходимо задать свойства 'NDims' и 'ResampleFcn' и, опционально, свойство 'CustomData' . |
Типы данных: char | string
'PadMethod'
— Метод раньше присваивал значения, чтобы вывести элементы, которые сопоставляют близко к или вне ребра входного массиваСмотрите аргумент padmethod
для получения дополнительной информации.
Типы данных: char | string
Interpolant
Интерполяция ядраСмотрите аргумент interpolant
для получения дополнительной информации.
Типы данных: char
| string
| cell
ndims
Размерность пользовательский resampler может обработатьРазмерность пользовательский resampler может обработать, заданный как положительное целое число. Используйте значение Inf
, чтобы указать, что пользовательский resampler может обработать любую размерность. Если 'Type'
является 'custom'
, необходимо задать NDims
.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический
'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
не должен быть отсортирован в порядке возрастания, несмотря на то, что некоторый resamplers может наложить такое ограничение.) Таким образом первые элементы 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
ResamplerResampler, возвращенный как структура.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.