Filtro Promedio Móvil Matlab Image


Creado en Miércoles 08 de Octubre de 2008 20:04 Última actualización el Jueves 14 de Marzo de 2013 01:29 Escrito por Batuhan Osmanoglu Hits: 40518 Media móvil en Matlab A menudo me encuentro en necesidad de promediar los datos que tengo para reducir el ruido un poco poco. Escribí funciones de pareja para hacer exactamente lo que quiero, pero matlabs construido en función de filtro funciona bastante bien también. Aquí Ill escribir sobre 1D y 2D promedio de los datos. El filtro 1D se puede realizar usando la función de filtro. La función de filtro requiere al menos tres parámetros de entrada: el coeficiente de numerador para el filtro (b), el coeficiente de denominador para el filtro (a) y los datos (X), por supuesto. Un filtro de promedio en funcionamiento puede definirse simplemente por: Para datos 2D podemos utilizar la función Matlabs filter2. Para obtener más información sobre cómo funciona el filtro, puede escribir: Aquí hay una implementación rápida y sucia de un filtro de 16 por 16 de promedio móvil. Primero tenemos que definir el filtro. Puesto que todo lo que queremos es la contribución igual de todos los vecinos, podemos usar la función unos. Dividimos todo con 256 (1616) ya que no queremos cambiar el nivel general (amplitud) de la señal. Para aplicar el filtro simplemente podemos decir lo siguiente A continuación se presentan los resultados de la fase de un interferograma SAR. En este caso, Range está en el eje Y y Azimuth está asignado en el eje X. El filtro tenía 4 píxeles de ancho en Rango y 16 píxeles de ancho en Azimut. Login SearchMoving-Filtro promedio de datos de tráfico Este ejemplo muestra cómo suavizar los datos de flujo de tráfico usando un filtro de media móvil con una ventana deslizante de 4 horas. La siguiente ecuación de diferencias describe un filtro que promedia la hora actual y las tres horas anteriores de datos. Importe los datos de tráfico y asigne la primera columna de conteo de vehículos al vector x. Cree los vectores de coeficiente de filtro. Calcule el promedio móvil de 4 horas de los datos y trace los datos originales y los datos filtrados. MATLAB y Simulink son marcas comerciales registradas de The MathWorks, Inc. Consulte mathworks / marcas comerciales para obtener una lista de otras marcas comerciales propiedad de The MathWorks, Inc. Otros nombres de productos o marcas son marcas comerciales o marcas registradas de sus respectivos propietarios. Seleccione su paísEste tutorial explica cómo utilizar MATLAB para procesar imágenes. Se asume una cierta familiaridad con MATLAB (usted debe saber utilizar matrices y escribir un M-archivo). Es útil tener la Caja de herramientas de procesamiento de imágenes de MATLAB, pero afortunadamente, no se necesitan cajas de herramientas para la mayoría de las operaciones. Los comandos que requieren el cuadro de herramientas de imagen se indican con Image Toolbox. Representación de imágenes Hay cinco tipos de imágenes en MATLAB. Escala de grises Una imagen de escala de grises M píxeles de altura y N píxeles de ancho se representa como una matriz de doble tipo de datos de tamaño M N. Los valores de los elementos (por ejemplo, MyImage (m, n)) indican las intensidades de escala de grises de los píxeles en 0,1 con 0 negro y 1 blanco. Truecolor RGB. Una imagen truecolor rojo-verde-azul (RGB) se representa como una matriz doble M N 3 tridimensional. Cada pixel tiene componentes rojos, verdes y azules a lo largo de la tercera dimensión con valores en 0,1, por ejemplo, los componentes de color de píxel (m, n) son MyImage (m, n, 1) rojo, MyImage (m, n, 2) verde, MyImage (m, n, 3) blue. Indexed. Las imágenes indexadas (paletadas) se representan con una matriz de índice de tamaño M N y una matriz de mapa de color de tamaño K 3. El mapa de color contiene todos los colores utilizados en la imagen y la matriz de índice representa los píxeles haciendo referencia a los colores del mapa de colores. Por ejemplo, si el color 22 es magenta MyColormap (22, :) 1,0,1. Entonces MyImage (m, n) 22 es un pixel de color magenta. Una imagen binaria está representada por una matriz lógica M N donde los valores de píxel son 1 (verdadero) o 0 (falso).uint8. Este tipo utiliza menos memoria y algunas operaciones calculan más rápido que con tipos dobles. Por simplicidad, este tutorial no discute más uint8. La escala de grises suele ser el formato preferido para el procesamiento de imágenes. En los casos que requieren color, una imagen en color RGB puede ser descompuesta y manejada como tres imágenes en escala de grises separadas. Las imágenes indexadas deben convertirse a escala de grises o RGB para la mayoría de las operaciones. A continuación se presentan algunas manipulaciones y conversiones comunes. Algunos comandos requieren el cuadro de herramientas de imagen y se indican con cuadro de herramientas de imagen. Lectura y escritura de archivos de imagen MATLAB puede leer y escribir imágenes con los comandos imread e imwrite. Aunque un número razonable de formatos de archivo son compatibles, algunos no lo son. Utilice imformats para ver lo que su instalación apoya: Al leer imágenes, un problema lamentable es que imread devuelve los datos de la imagen en el tipo de datos uint8, que debe ser convertido en doble y reescalado antes de su uso. Así que en lugar de llamar a imread directamente, utilizo la siguiente función M-file para leer y convertir imágenes: Haga clic con el botón derecho del ratón y guarde getimage. m para usar esta función M. Si image baboon. png está en el directorio actual (o en algún lugar de la ruta de búsqueda de MATLAB), puede leerlo con MyImage getimage (baboon. png). También puede utilizar rutas parciales, por ejemplo si la imagen está en lt directorio actual gt / images / con getimage (images / baboon. png). Para escribir una imagen en escala de grises o RGB, utilice Tenga cuidado de que MyImage sea una matriz doble con elementos en 0,1if incorrectamente escalado, el archivo guardado probablemente estará en blanco. Al escribir archivos de imagen, recomiendo usar el formato de archivo PNG. Este formato es una opción confiable ya que es sin pérdidas, soporta truecolor RGB, y comprime bastante bien. Utilice otros formatos con precaución. Operaciones básicas A continuación se muestran algunas operaciones básicas en una imagen de escala de grises u. Los comandos que requieren el cuadro de herramientas de imagen se indican con Image Toolbox. (Nota: Para cualquier array, la sintaxis u (:) significa desenrollar u en un vector de columna, por ejemplo, si u 1,50,2. Entonces u (:) es 1052). Por ejemplo, la potencia de la señal de imagen se utiliza en Informando la relación señal-ruido (SNR) y la relación pico de señal a ruido (PSNR). Dado imagen limpia uclean y la imagen contaminada por el ruido u, Tenga cuidado con la norma. El comportamiento es norma (v) en el vector v calcula sqrt (suma (v.2)). Pero la norma (A) de la matriz A calcula la norma de la matriz L 2 inducida, por lo que la norma (A) no es ciertamente sqrt (suma (A (:) .2)). Sin embargo, es un error fácil usar la norma (A) donde debería haber sido la norma (A (:)). Filtros lineales El filtrado lineal es la técnica fundamental del procesamiento de señales. Para introducir brevemente, un filtro lineal es una operación donde en cada píxel x m, n de una imagen, se evalúa una función lineal sobre el píxel y sus vecinos para calcular un nuevo valor de píxel y m, n. Un filtro lineal en dos dimensiones tiene la forma general donde x es la entrada, y es la salida, yh es la respuesta del impulso del filtro. Las diferentes opciones de h conducen a filtros que suavizan, agudizan y detectan bordes, por nombrar algunas aplicaciones. El lado derecho de la ecuación anterior se denomina concisamente como hx y se denomina convolución de h y x. Filtrado de dominio espacial El filtrado lineal bidimensional se implementa en MATLAB con conv2. Lamentablemente, conv2 sólo puede manejar el filtrado cerca de los límites de la imagen por cero-relleno, lo que significa que los resultados de filtrado son por lo general inadecuado para los píxeles cerca del límite. Para evitar esto, podemos rellenar la imagen de entrada y utilizar la opción válida al llamar a conv2. La siguiente función M lo hace. Haga clic con el botón derecho del ratón y guarde conv2padded. m para usar esta función M. He aquí algunos ejemplos: Se dice que un filtro 2D h es separable si puede expresarse como el producto externo de dos filtros 1D h1 y h2. Es decir, h h1 (:) h2 (:). Es más rápido pasar h1 y h2 que h. Como se hace arriba para la ventana de media móvil y el filtro gaussiano. De hecho, los filtros de Sobel hx e hy son también separablesque son h1 y h2 Filtrado de dominio de Fourier El filtrado de dominio espacial con conv2 es fácilmente una operación computacionalmente costosa. Para un filtro K K en una imagen M N, conv2 cuesta O (MNK 2) adiciones y multiplicaciones, o O (N 4) suponiendo M N K. Para filtros grandes, el filtrado en el dominio de Fourier es más rápido ya que el coste computacional se reduce a O (N 2 log N). Usando la propiedad de convolución-multiplicación de la transformada de Fourier, la circunvolución es calculada equivalente por el resultado es equivalente a conv2padded (x, h) excepto cerca del límite, donde el cálculo anterior usa la extensión periódica del límite. El filtrado basado en Fourier también puede realizarse con una extensión de contorno simétrica, reflejando la entrada en cada dirección: (Nota: Un método aún más eficiente es el filtro de superposición de FFT-add. La herramienta de procesamiento de señales implementa la superposición FFT-add en una dimensión en fftfilt .) Filtros no lineales Un filtro no lineal es una operación en la que cada pixel filtrado ym, n es una función no lineal de xm, n y sus vecinos. Aquí discutimos brevemente algunos tipos de filtros no lineales. Filtros de estadística de pedido Si tiene el cuadro de herramientas de imagen, los filtros de estadística de pedido se pueden realizar con ordfilt2 y medfilt2. Un filtro de estadística de orden ordena los valores de píxeles sobre un vecindario y selecciona el k mayor valor. Los filtros min, max y mediano son casos especiales. Filtros morfológicos Si tiene la Caja de herramientas de imagen, bwmorph implementa diversas operaciones morfológicas en imágenes binarias, como erosión, dilatación, apertura, cierre y esqueleto. También hay comandos disponibles para la morfología en imágenes en escala de grises: imerode. Imidato e imtofato. entre otros. Construya su propio filtro Ocasionalmente queremos usar un nuevo filtro que MATLAB no tiene. El siguiente código es una plantilla para implementar filtros. (Nota: Una afirmación errónea frecuente es que los bucles en MATLAB son lentos y deben ser evitados Esto era una vez verdad, en MATLAB 5 y anteriores, pero los bucles en versiones modernas son razonablemente rápidos). Por ejemplo, Ignora los valores más bajos de d / 2 y d / 2 más altos en la ventana, y promedia los valores restantes (2 r 1) 2 d. El filtro es un equilibrio entre un filtro mediano y un filtro medio. El filtro de media recortada alfa puede implementarse en la plantilla como otro ejemplo, el filtro bilateral es

Comments

Popular posts from this blog

Pola 21 Forex

Forex Estrategias De Scalping Foro

Software Libre De La Señal De La Opción Binaria