exponenta event banner

im2col

Переупорядочить блоки изображений в столбцы

Описание

B = im2col(A,[m n],'distinct') переставляет дискретные блоки изображения размера mоколо-n в столбцы и возвращает конкатенированные столбцы в матрице B. im2col изображение функциональных площадок A, при необходимости. Дополнительные сведения о значении заполнения см. в разделе Советы.

Порядок столбцов в матрице B определяется при прохождении изображения A в виде колонн. Например, если A состоит из отдельных блоков Aij в виде A = [A11 A12; A21 A22], то B = [A11(:) A21(:) A12(:) A22(:)].

пример

B = im2col(A,[m n],'sliding') или

B = im2col(A,[m n]) переставляет области скользящего изображения размера mоколо-n в столбцы без заполнения нулями и возвращает конкатенированные столбцы в матрице B.

B = im2col(A,'indexed',___) интерпретирует A как индексированное изображение.

Примеры

свернуть все

Создайте матрицу.

A = reshape(linspace(0,1,16),[4 4])'
A = 4×4

         0    0.0667    0.1333    0.2000
    0.2667    0.3333    0.4000    0.4667
    0.5333    0.6000    0.6667    0.7333
    0.8000    0.8667    0.9333    1.0000

Измените порядок значений на столбцовое.

B = im2col(A,[2 2])
B = 4×9

         0    0.2667    0.5333    0.0667    0.3333    0.6000    0.1333    0.4000    0.6667
    0.2667    0.5333    0.8000    0.3333    0.6000    0.8667    0.4000    0.6667    0.9333
    0.0667    0.3333    0.6000    0.1333    0.4000    0.6667    0.2000    0.4667    0.7333
    0.3333    0.6000    0.8667    0.4000    0.6667    0.9333    0.4667    0.7333    1.0000

Рассчитайте среднее.

M = mean(B)
M = 1×9

    0.1667    0.4333    0.7000    0.2333    0.5000    0.7667    0.3000    0.5667    0.8333

Переместите значения обратно в их исходную ориентацию по строкам.

newA = col2im(M,[1 1],[3 3])
newA = 3×3

    0.1667    0.2333    0.3000
    0.4333    0.5000    0.5667
    0.7000    0.7667    0.8333

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

свернуть все

Изображение, указанное как 2-D изображение в градациях серого, 2-D двоичное изображение или 2-D индексированное изображение.

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

Размер блока, заданный как 2-элементный вектор. m - количество строк и n - количество столбцов в блоке.

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

свернуть все

Блоки изображения, возвращаемые как числовая матрица или логическая матрица с m*n строк. Количество столбцов зависит от того, являются ли блоки изображения дискретными блоками или скользящими окрестностями. Каждый столбец B содержит блок или окрестность A изменен в виде вектора столбца.

  • Для обработки отдельных блоков B имеет столько столбцов, сколько есть mоколо-n блоки в A. Например, если размер A является [mm nn], то B имеет (mm/m)*(nn/n) столбцы.

  • Для скользящей обработки окрестностей, B имеет столько столбцов, сколько есть mоколо-n кварталы A. Например, если размер A является [mm nn], то B имеет ((mm-m+1)*(nn-n+1)) столбцы.

Совет

  • Для обработки отдельных блоков im2col нулевые колодки A, при необходимости, поэтому его размер является целым кратным mоколо-n. Значение заполнения: 0 когда A является типом данных uint8, uint16, или logical. Для других типов данных значение заполнения зависит от того, A интерпретируется как индексированное изображение.

    • Значение заполнения: 1 когда A интерпретируется как индексированное изображение.

    • Значение заполнения: 0 когда A не интерпретируется как индексированное изображение.

  • im2col упорядочивает столбцы B чтобы их можно было изменить для формирования матрицы в соответствии с reshape.

    Например, предположим, что используется функция, такая как sum(B), который возвращает скаляр для каждого столбца B. Результат можно непосредственно сохранить в матрице размера (mm-m+1околоnn-n+1), используя эти вызовы.

    B = im2col(A,[m n],'sliding');
    C = reshape(sum(B),mm-m+1,nn-n+1);

См. также

| | | |

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