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.

colfilt

Las operaciones vecinales columnwise

Descripción

ejemplo

B = colfilt(A,[m n],block_type,fun) procesa la imagen reorganizando cada bloque en una columna de una matriz temporal y, a continuación, aplicando la función a esta matriz. cero-pads, si es necesario.AmnAfuncolfiltA

B = colfilt(A,[m n],[mblock nblock],block_type,fun) subdivide en regiones de tamaño por bloque para ahorrar memoria.Amblocknblock Tenga en cuenta que el resultado de la operación no cambia cuando se usa el argumento.[mblock nblock]

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

B = colfilt(A,'indexed',___) procesos como una imagen indexada, relleno con s si la clase de is,, o, y relleno con s de lo contrario.A0Auint8uint16logical1

Ejemplos

contraer todo

Este ejemplo muestra cómo establecer cada píxel de salida en el valor medio de la vecindad 5-by-5 del píxel de entrada usando el procesamiento de vecindad columnwise.

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

I = imread('tire.tif');

Realice el filtrado columnwise. Se llama a la función en cada vecindad de 5 por 5 píxeles.mean

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

Visualice la imagen original y la imagen filtrada.

imshow(I) title('Original Image')

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

Argumentos de entrada

contraer todo

Image, especificada como una matriz de cualquier clase admitida por.fun

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

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

Tipo de bloque, especificado como para vecindarios deslizantes o para bloques distintos.'sliding''distinct'

Tipos de datos: char | string

Identificador de función, especificado como un identificador. Los argumentos de entrada y 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 acerca de los identificadores de función, vea.Crear identificador de función (MATLAB)

Argumentos de salida

contraer todo

Imagen filtrada, devuelta como una matriz numérica.

Algoritmos

El algoritmo que utiliza para procesar imágenes depende del valor de.colfiltblock_type

Valor

Descripción

'distinct'

  • En primer lugar, reorganiza cada bloque de una columna en una matriz temporal mediante la función.colfiltmnAim2col

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

  • Por último, reorganiza las columnas de la matriz devueltas por bloques in-by-DISTINCT, mediante la función.colfiltfunmncol2im

'sliding'

  • En primer lugar, reorganiza cada uno por vecindad de en una columna en una matriz temporal mediante el uso de la función.colfiltmnAim2col

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

  • Finalmente, remodelar el vector devuelto por una matriz del mismo tamaño que, mediante la función.colfiltfunAreshape

Para ahorrar memoria, la función podría dividirse en subimagos y procesar una subimaga a la vez.colfiltA Esto implica que puede llamarse varias veces y que el primer argumento puede tener un número diferente de columnas cada vez.funfun

Introducido antes de R2006a