makeresampler

Создайте структуру передискретизации

Синтаксис

R = makeresampler(interpolant,padmethod)
R = makeresampler(Name,Value,...)

Описание

пример

R = makeresampler(interpolant,padmethod) создает отделимую resampler структуру для использования с tformarray. Аргумент interpolant задает ядро интерполяции, которое использует отделимый resampler. Средства управления аргументом padmethod, как resampler интерполирует или присваивает значения, чтобы вывести элементы, которые сопоставляют близко к или вне ребра входного массива.

R = makeresampler(Name,Value,...) создайте resampler структуру, которая использует написанный пользователем resampler, использующий пары значения параметров.

Примеры

свернуть все

Считайте изображение в рабочую область и отобразите ее.

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)

Входные параметры

свернуть все

Интерполируя ядро, заданное как 'nearest', 'linear', 'cubic' или массив ячеек. В следующей таблице перечислены именованный interpolants:

Interpolant

Описание

'cubic'

Кубичная интерполяция

'linear'

Линейная интерполяция

'nearest'

Самая близкая соседняя интерполяция

Если вы хотите использовать пользовательское ядро интерполяции, задайте массив ячеек в любой из этих форм:

{half_width, positive_half}

half_width является положительной скалярной величиной, определяющей полуширину симметричного ядра интерполяции. positive_half является вектором значений, регулярно выбирающих ядро на закрытом интервале [0 positive_half].

{half_width, interp_fcn}

interp_fcn является указателем на функцию, который возвращает значения ядра интерполяции, учитывая массив входных значений в интервале
[0 positive_half].

Чтобы задать метод интерполяции независимо по каждому измерению, объедините оба типа interpolant спецификаций. Число элементов в массиве ячеек должно равняться количеству размерностей преобразования. Например, рассмотрите следующий пример значения interpolant:

{'nearest', 'linear', {2 KERNEL_TABLE}}

В этом примере интерполяция использования resampler ближайшего соседа вдоль первого преобразовывает размерность, линейную интерполяцию вдоль второго измерения и пользовательскую основанную на таблице интерполяцию вдоль третьего.

Типы данных: char | string | cell

Метод раньше присваивал значения, чтобы вывести элементы, которые сопоставляют вне входного массива, заданного как одно из следующих значений.

Заполните метод

Описание

'bound'

Значения присвоений от массива значения заливки до точек, что карта вне входного массива. Повторения ограничивают элементы массива для точек что карта в массиве (то же самое как 'replicate'). Когда interpolant является 'nearest', этот метод клавиатуры приводит к тем же результатам как 'fill'. 'bound' похож на 'fill', но старается не смешивать значения заливки и входные значения изображений.

'circular'

Массив клавиатур с круговым повторением элементов в размерности. То же самое как padarray.

'fill'

Генерирует выходной массив со сглаженно выглядящими ребрами (кроме тех случаев, когда с помощью интерполяции ближайшего соседа). Для выходных точек, которые сопоставляют около ребра входного массива (любая внутренняя или внешняя часть), это комбинирует входное изображение и значения заливки. Когда interpolant является 'nearest', этот метод клавиатуры приводит к тем же результатам как 'bound'.

'replicate'

Массив клавиатур путем повторения элементов границы массива. То же самое как padarray.

'symmetric'

Массив клавиатур с зеркальными отражениями себя. То же самое как padarray.

Для 'fill', 'replicate', 'circular' или 'symmetric', передискретизация, выполняемая tformarray, происходит на двух логических шагах:

  1. Заполните массив, A бесконечно, чтобы заполнить целый вход преобразовывает пробел.

  2. Оцените свертку заполненного A с ядром передискретизации в выходных точках, заданных геометрической картой.

Каждый не преобразовывает размерность, обработан отдельно. Дополнение является виртуальным (выполненный путем переотображения индексов массивов) для эффективности памяти и производительности. Если вы реализуете пользовательский resampler, можно реализовать эти поведения.

Типы данных: char | string

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: resamp = makeresampler('Type','separable','Interpolant','linear','PadMethod','fill');

Тип Resampler, заданный как одно из следующих значений.

ВводОписание
'separable'Создайте отделимый resampler. Если вы задаете это значение, единственными другими свойствами, которые можно задать, является 'Interpolant' и 'PadMethod'. Результат эквивалентен использованию синтаксиса makeresampler(interpolant,padmethod).
'custom'Создайте клиента resampler. Если вы задаете это значение, необходимо задать свойства 'NDims' и 'ResampleFcn' и, опционально, свойство 'CustomData'.

Типы данных: char | string

Смотрите аргумент padmethod для получения дополнительной информации.

Типы данных: char | string

Смотрите аргумент interpolant для получения дополнительной информации.

Типы данных: char | string | cell

Размерность пользовательский resampler может обработать, заданный как положительное целое число. Используйте значение Inf, чтобы указать, что пользовательский resampler может обработать любую размерность. Если 'Type' является 'custom', необходимо задать NDims.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический

Функция, которая выполняет передискретизацию, заданную как указатель на функцию. Вы вызываете эту функцию со следующим интерфейсом:

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

Пользовательские данные, заданное использование скаляра строки, вектора символов или числового массива.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string

Выходные аргументы

свернуть все

Resampler, возвращенный как структура.

Смотрите также

Представлено до R2006a