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

Входные параметры

свернуть все

Отобразите в виде 2D полутонового изображения, 2D бинарного изображения или 2D индексируемого изображения.

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

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

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

свернуть все

Отобразите блоки, возвращенные как числовая матричная или логическая матрица с mN 'Строки' . Количество столбцов зависит от того, являются ли блоки изображений дискретными блоками или скользящими окружениями. Каждый столбец 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 тип данных uint8uint16, или 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