Создайте структуру передискретизации
создает отделимую 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_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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.