Создайте структуру передискретизации
создает отделимую 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 имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
resamp = makeresampler('Type','separable','Interpolant','linear','PadMethod','fill');'Type' — Тип 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 | 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 не должен быть отсортирован в порядке возрастания, несмотря на то, что некоторый resamplers может наложить такое ограничение.) Таким образом, первый P элементы size(M) определите размеры размерностей преобразования B. Вход преобразовывает координаты, с которыми сопоставлена каждая точка, выстраиваются через итоговую размерность M, выполнение распоряжения, данного в TDIMS_AM должен быть 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.