Example Code

VI implementa filtro móvil de orden 4

Products and Environment

This section reflects the products and operating system used to create the example.

To download NI software, including the products shown below, visit ni.com/downloads.

    Operating System

  • Windows

Code and Documents

Attachment

Download All

Descripción

La entrada sera una imagen en blanco y negro con formato BMP, que consiste de una lista(array 1D) de valores de cada uno de los

componentes de la imagen, por tanto para cada punto habra 3 valores.

Como la imagen solo contiene grises, los valores de los 3 componentes son iguales, por lo que bastara aplicar el filtro en uno solo de  ellos.

El VI empieza leyendo el file y desglosando su informacion se obtiene un array RGB de 1D., la funcion Decimate 1D array, con un tamaño de 3 elem.

obtendra a la 1era. de sus salidad un array cuyos elem sean los valores del componente R de cada punto. Estos son promediados (divididos/4).

La ventana se implementara mediante Shift Register y el resultado se ira indexando en la lateral del FOR.

 

Para reconstruir la imagen basta con hacer el proceso inverso al de decimar: interpolar.

 finalmente se dibujan las imagenes antes y despues de aplicar el filtro.

mediante el selector se podra elegir el tipo de estructura implementada. si no  es activada habra retroalimentacion de I/O

Resultado: explicar el efecto del filtro se puede decir que proporciona cierta resistencia al cambio en la imagen

 Es aconsejable ejecutar este ejemplo con la opcion Highlight Execution activada, de esta manera se pueder ver un ejemplo

practico del uso de los Shift Registers y la salida indexada de los bucles.

 como se puede intuir, este metodo se puede generalizar para otros tipos de filtros.

 

Es recomendable iniciar con un archivo BMP en Blanco y Negro (se adjunta la foto de pinguino asesino.bmp) para ver los antes descrito.

Example code from the Example Code Exchange in the NI Community is licensed with the MIT license.

Contributors