Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

im2col

Reorganizar bloques de imágenes en columnas

Descripción

B = im2col(A,[m n],'distinct') reorganiza los bloques de imagen discretos de tamaño -por- en columnas y devuelve las columnas concatenadas en la matriz.mnB La imagen de los paneles de funciones, si es necesario.im2colA Para obtener más información sobre el valor de relleno, consulte .Consejos

El orden de las columnas en la matriz se determina recorriendo la imagen de una manera de columna.BA Por ejemplo, si consta de bloques distintos dispuestos como , a continuación, .AAijA = [A11 A12; A21 A22]B = [A11(:) A21(:) A12(:) A22(:)]

ejemplo

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

B = im2col(A,[m n]) reorganiza las vecindades de imagen deslizantes de tamaño -por- en columnas sin relleno cero y devuelve las columnas concatenadas en matriz.mnB

B = im2col(A,'indexed',___) interpreta como una imagen indexada.A

Ejemplos

contraer todo

Cree una matriz.

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

Reorganice los valores en una disposición de columna.

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

Calcule la media.

M = mean(B)
M = 1×9

    0.1667    0.4333    0.7000    0.2333    0.5000    0.7667    0.3000    0.5667    0.8333

Reorganice los valores de nuevo en su orientación original en cuanto a fila.

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

Argumentos de entrada

contraer todo

Imagen, especificada como una imagen en escala de grises 2D, una imagen binaria 2D o una imagen indexada 2D.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Tamaño de bloque, especificado como un vector de 2 elementos. es el número de filas y es el número de columnas en el bloque.mn

Argumentos de salida

contraer todo

Bloques de imagen, devueltos como una matriz numérica o matriz lógica con m*n Filas. El número de columnas depende de si los bloques de imagen son bloques discretos o barrios deslizantes. Cada columna de contiene un bloque o vecindad de remodelado como un vector de columna.BA

  • Para el procesamiento de bloques distintos, tiene tantas columnas como bloques por en .BmnA Por ejemplo, si el tamaño de es , a continuación, tiene columnas.A[mm nn]B(mm/m)*(nn/n)

  • Para el procesamiento de vecindad deslizante, tiene tantas columnas como -por- vecindarios de .BmnA Por ejemplo, si el tamaño de es , a continuación, tiene columnas.A[mm nn]B((mm-m+1)*(nn-n+1))

Sugerencias

  • Para el procesamiento de bloques distintos, cero-pads , si es necesario, por lo que su tamaño es un múltiplo entero de -by- .im2colAmn El valor de relleno es cuando es tipo de datos , , o .0Auint8uint16logical Para otros tipos de datos, el valor de relleno depende de si se interpreta como una imagen indizada.A

    • El valor de relleno es cuando se interpreta como una imagen indizada.1A

    • El valor de relleno es cuando no se interpreta como una imagen indizada.0A

  • ordena las columnas de para que puedan ser remodeladas para formar una matriz de acuerdo con .im2colBreshape

    Por ejemplo, supongamos que utiliza una función, como , que devuelve un escalar para cada columna de .sum(B)B Puede almacenar directamente el resultado en una matriz de tamaño ( )-by-( ), utilizando estas llamadas.mm-m+1nn-n+1

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

Consulte también

| | | |

Introducido antes de R2006a