exponenta event banner

makeresampler

Создание структуры повторной выборки

Описание

пример

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

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

Примеры

свернуть все

Чтение изображения в рабочую область и его отображение.

A = imread('moon.tif');
imshow(A)

Figure contains an axes. The axes contains an object of type image.

Создайте разделяемый ресамплер.

resamp = makeresampler({'nearest','cubic'},'fill');

Создайте структуру пространственного преобразования (TFORM), определяющую аффинное преобразование.

stretch = maketform('affine',[1 0; 0 1.3; 0 0]);

Примените преобразование, указав пользовательский модуль ресамплера.

B = imtransform(A,stretch,resamp);

Отображение преобразованного изображения.

imshow(B)

Figure contains an axes. The axes contains an object of type image.

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

свернуть все

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

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 значение:

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

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

Типы данных: 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 с ядром повторной выборки в точках вывода, заданных геометрической картой.

Каждая нетрансформная аналитика обрабатывается отдельно. Заполнение является виртуальным (выполняется путем переопределения индексов массива) для производительности и эффективности памяти. При внедрении пользовательского средства ресамплинга можно реализовать эти варианты поведения.

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

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

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

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

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

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

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

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

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

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

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

Настраиваемое средство ресамплинга размерности может обрабатывать, указываемое как положительное целое число. Использовать значение Inf указывает на то, что пользовательская ресамплер может обрабатывать любой размер. Если '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 не нужно сортировать по возрастанию, хотя некоторые повторные выборки могут наложить такое ограничение.) Таким образом, первый 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

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

свернуть все

Ресамплер, возвращенный как структура.

См. также

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