makeresampler

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

Описание

пример

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 имя аргумента и 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 | logical

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

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

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

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

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

свернуть все

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

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

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