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