Документация Engee

Дополнение массивов

Введение

Функция padarray() создает дополненное изображение на основе массива img и спецификации граничных условий и размера дополнения border.

padarray([T], img, border)

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

Функция поддерживает одно-, двух- или многомерные изображения. Вы можете указать тип элементов T выходного изображения.

Тип Pad

Тип Pad определяет форму дополнения, которая должна использоваться для экстраполяции пикселей за границами изображения. В экземплярах должен быть задан style, символ, определяющий граничные условия изображения.

Этот символ может быть следующим:

  • :replicate (граничные значения повторяются до бесконечности);

  • :circular (границы изображения переносятся в противоположную сторону);

  • :symmetric (изображение отражается относительно позиции между пикселями);

  • :reflect (изображение отражается относительно самой границы).

Дополнительные сведения и примеры использования каждого варианта см. в документации по Pad.

Тип Fill

Тип Fill определяет конкретное значение, которое будет использоваться для экстраполяции пикселей за границами изображения.

Дополнительные сведения и примеры см. в документации по Fill.

Двухмерные примеры

В следующих примерах показаны результаты изменения входного массива:

Примеры с Pad

Команда padarray(A, Pad(:replicate, 4, 4)) дает следующий результат:

Команда padarray(A, Pad(:circular,4,4)) дает следующий результат:

Команда padarray(A, Pad(:symmetric,4,4)) дает следующий результат:

Команда padarray(A, Pad(:reflect,4,4)) дает следующий результат:

Примеры с Fill

Команда padarray(A, Fill(0,(4,4),(4,4))) дает следующий результат:

Трехмерные примеры

Все примеры основаны на многомерном массиве , который задается следующим образом:

Обратите внимание, что в каждом примере получается новый многомерный массив типа OffsetArray, в котором добавляемые в начале измерения могут быть отрицательными или начинаться с нуля.

Примеры с Pad

Команда padarray(A, Pad(:replicate, 1, 1, 1)) дает следующий результат:

Команда padarray(A, Pad(:circular, 1, 1, 1)) дает следующий результат:

Команда padarray(A,Pad(:symmetric, 1, 1, 1)) дает следующий результат:

Команда padarray(A, Pad(:reflect, 1, 1, 1)) дает следующий результат:

Примеры с Fill

Команда padarray(A, Fill(0, (1, 1, 1))) дает следующий результат:

BorderArray

BorderArray(inner::AbstractArray, border::AbstractBorder) <: AbstractArray

Создает тонкую оболочку вокруг массива inner с заданной границей. Данные в конструктор не копируются. Вместо этого граничные значения вычисляются динамически в вызовах getindex.

Полезно для шаблонных вычислений.