Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

colfilt

Operaciones de entorno por columnas

Descripción

ejemplo

B = colfilt(A,[m n],block_type,fun) procesa la imagen A reordenando cada bloque de m por n de A en una columna de una matriz temporal y, a continuación, aplicando la función fun a esta matriz. colfilt rellena con ceros A, si es necesario.

B = colfilt(A,[m n],[mblock nblock],block_type,fun) subdivide A en regiones de mblock por nblock bloques para ahorrar memoria. Tenga en cuenta que el resultado de la operación no cambia al utilizar el argumento [mblock nblock].

Por ejemplo, si [mblock nblock] es [3 4] y el tamaño de cada bloque es de 16 por 16 píxeles, colfilt subdivide la imagen en regiones de 48 por 64 píxeles y procesa cada región por separado.

B = colfilt(A,'indexed',___) procesa A como una imagen indexada, y la rellena con valores 0 si la clase de A es uint8, uint16 o logical y de lo contrario, la rellena con valores 1.

Ejemplos

contraer todo

Este ejemplo muestra cómo ajustar cada píxel de salida al valor medio del entorno de 5 por 5 del píxel de entrada utilizando el procesamiento de entornos por columnas.

Lea una imagen en escala de grises en el espacio de trabajo.

I = imread('tire.tif');

Realice el filtrado por columnas. La función mean se llama en cada entorno de 5 por 5 píxeles.

I2 = uint8(colfilt(I,[5 5],'sliding',@mean));

Muestre la imagen original y la imagen filtrada.

imshow(I)
title('Original Image')

Figure contains an axes object. The axes object with title Original Image contains an object of type image.

figure
imshow(I2)
title('Filtered Image')

Figure contains an axes object. The axes object with title Filtered Image contains an object of type image.

Argumentos de entrada

contraer todo

Imagen, especificada como un arreglo de cualquier clase compatible con fun.

Tamaño del bloque, especificado como vector de 2 elementos de enteros positivos. m es el número de filas y n es el número de columnas de cada bloque.

Tamaño del grupo de bloques, especificado como vector de 2 elementos enteros positivos. mblock es el número de bloques del grupo en dirección vertical, y nblock es el número de bloques del grupo en dirección horizontal.

Tipo de bloque, especificado como 'sliding' en el caso de entornos deslizantes o 'distinct' en el caso de bloques distintos.

Tipos de datos: char | string

Identificador de función, especificado como identificador. Los argumentos de entrada y de salida de esta función dependen del valor de block_type. Para obtener más información, consulte Algoritmos.

Para obtener más información sobre los identificadores de función, consulte Crear un identificador de función.

Argumentos de salida

contraer todo

Imagen filtrada, devuelta como una matriz numérica.

Algoritmos

El algoritmo que usa colfilt para procesar imágenes depende del valor de block_type.

Valor

Descripción

'distinct'

  • En primer lugar, colfilt reordena cada bloque de m por n de A en una columna de una matriz temporal utilizando la función im2col.

  • A continuación, colfilt aplica la función fun a esta matriz temporal. fun debe devolver una matriz del mismo tamaño que la matriz temporal.

  • Por último, colfilt reordena las columnas de la matriz devuelta por fun en bloques distintos de m por n, utilizando la función col2im.

'sliding'

  • En primer lugar, colfilt reordena cada entorno de m por n de A en una columna de una matriz temporal utilizando la función im2col.

  • A continuación, colfilt aplica la función fun a esta matriz temporal. fun debe devolver un vector fila que contenga un único valor para cada columna de la matriz temporal. (Las funciones de compresión de columnas como sum devuelven el tipo de salida adecuado.)

  • Por último, colfilt remodela el vector devuelto por fun en una matriz del mismo tamaño que A, utilizando la función reshape.

Para ahorrar memoria, la función colfilt podría dividir A en subimágenes y procesar una subimagen cada vez. Esto implica que se puede llamar a fun varias veces y que el primer argumento de fun puede tener un número diferente de columnas cada vez.

Historial de versiones

Introducido antes de R2006a