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.

fspecial

Cree un filtro 2-D predefinido

Descripción

ejemplo

h = fspecial(type) crea un filtro bidimensional del especificado.htype Algunos de los tipos de filtro tienen parámetros adicionales opcionales, que se muestran en las siguientes sintaxis. devuelve como un kernel de correlación, que es el formulario adecuado para usar con.fspecialhimfilter

h = fspecial('average',hsize) Devuelve un promedio de filtro de tamaño.hhsize

h = fspecial('disk',radius) Devuelve un filtro de promedio circular (Pillbox) dentro de la matriz cuadrada de tamaño.2*radius+1

h = fspecial('gaussian',hsize,sigma) Devuelve un filtro de paso bajo de gaussiano simétrico rotacionalmente de tamaño con desviación estándar.hsizesigma No se recomienda. Use o en su lugar.imgaussfiltimgaussfilt3

h = fspecial('laplacian',alpha) Devuelve un filtro de 3 por 3 aproximando la forma del Operador laplaciano bidimensional, controla la forma del laplaciano.alpha

h = fspecial('log',hsize,sigma) Devuelve un laplaciano rotacionalmente simétrico de filtro gaussiano de tamaño con desviación estándar.hsizesigma

h = fspecial('motion',len,theta) Devuelve un filtro para aproximar, una vez congenerado con una imagen, el movimiento lineal de una cámara. Especifica la longitud del movimiento y especifica el ángulo de movimiento en grados en sentido contrario a las agujas del reloj.lentheta El filtro se convierte en un vector para movimientos horizontales y verticales. El valor predeterminado es y el valor predeterminado es, que corresponde a un movimiento horizontal de nueve píxeles.len9theta0

h = fspecial('prewitt') Devuelve un filtro de 3 por 3 que enfatiza los bordes horizontales aproximando un degradado vertical. Para enfatizar los bordes verticales, transponer el filtro.h'

[ 1  1  1    0  0  0   -1 -1 -1 ]

h = fspecial('sobel') Devuelve un filtro de 3 por 3 que enfatiza los bordes horizontales utilizando el efecto de suavizado aproximando un degradado vertical. Para enfatizar los bordes verticales, transponer el filtro.h'

[ 1  2  1    0  0  0   -1 -2 -1 ]

Ejemplos

contraer todo

Leer la imagen y mostrarla.

I = imread('cameraman.tif'); imshow(I);

Cree un filtro de movimiento y utilílese para difuminar la imagen. Visualice la imagen borrosa.

H = fspecial('motion',20,45); MotionBlur = imfilter(I,H,'replicate'); imshow(MotionBlur);

Cree un filtro de disco y utilílese para difuminar la imagen. Visualice la imagen borrosa.

H = fspecial('disk',10); blurred = imfilter(I,H,'replicate');  imshow(blurred);

Argumentos de entrada

contraer todo

Tipo de filtro, especificado como uno de los siguientes valores:

Valor

Descripción

'average'

El filtro de promedio

'disk'

Filtro de promedio circular (Pillbox)

'gaussian'

Filtro de paso bajo gaussiano. No se recomienda. Use o en su lugar.imgaussfiltimgaussfilt3

'laplacian'

Aproxima al operador bidimensional laplaciano

'log'

Laplacian de filtro gaussiano

'motion'

Aproxima el movimiento lineal de una cámara

'prewitt'

Prewitt filtro con énfasis en el borde horizontal

'sobel'

Sobel de borde horizontal-enfatizando el filtro

Tipos de datos: char | string

Tamaño del filtro, especificado como un entero positivo o vector de 2 elementos de enteros positivos. Utilice un vector para especificar el número de filas y columnas.h Si especifica un escalar, entonces es una matriz cuadrada.h

Cuando se utiliza con el tipo de filtro, el tamaño de filtro predeterminado es.'average'[3 3] Cuando se utiliza con el tipo de filtro Laplacian de Gaussian (), el tamaño de filtro predeterminado es.'log'[5 5]

Tipos de datos: double

Radio de un filtro en forma de disco, especificado como un número positivo.

Tipos de datos: double

Desviación estándar, especificada como un número positivo.

Tipos de datos: double

Forma del laplaciano, especificado como un escalar en el rango [0 1].

Tipos de datos: double

Movimiento lineal de la cámara, especificado como un escalar numérico, medido en píxeles.

Tipos de datos: double

Ángulo de movimiento de la cámara, especificado como un escalar numérico, medido en grados, en sentido contrario a las agujas del reloj.

Tipos de datos: double

Argumentos de salida

contraer todo

Kernel de correlación, devuelto como una matriz.

Tipos de datos: double

Algoritmos

Filtros de promedios:

ones(n(1),n(2))/(n(1)*n(2)) 

Filtros Gaussianos:

hg(n1,n2)=e(n12+n22)2σ2

h(n1,n2)=hg(n1,n2)n1n2hg

Filtros laplaciano:

2=2x2+2y2

2=4(α+1)[α41α4α41α411α4α41α4α4]

Laplacio de filtros gaussiano (LoG):

hg(n1,n2)=e(n12+n22)2σ2

h(n1,n2)=(n12+n222σ2)hg(n1,n2)σ4n1n2hg

Tenga en cuenta que desplaza la ecuación para asegurarse de que la suma de todos los elementos del kernel es cero (similar al kernel Laplace) para que el resultado de convolución de las regiones homogéneas sea siempre cero.fspecial

Filtros de movimiento:

  1. Construya un segmento de línea ideal con la longitud y el ángulo especificados por los argumentos y, centrados en el coeficiente central de.lenthetah

  2. Para cada ubicación de coeficiente, calcule la distancia más cercana entre esa ubicación y el segmento de línea ideal.(i,j)

  3. h = max(1 - nearest_distance, 0);

  4. Normalizar:hh = h/(sum(h(:)))

Capacidades ampliadas

Introducido antes de R2006a