Programación Avanzada Proyecto Final Benjamín Cruz Torres Filtrado de una Imagen a través de un Microcontrolador Programación Avanzada Proyecto Final http://www.geocities.com/bslayer5
Diagrama a Bloques Imagen Imagen Filtrada Original PC Microcontrolador http://www.geocities.com/bslayer5
Programa en C++ http://www.geocities.com/bslayer5 For i=1 Enviar Config. Serial Enviar bit 1 For i=1 hasta tam Guardar Imagen Enviar bit i Enviar bit 2 PIC Listo? Fin Recibir bit i Enviar Orden tam=tam-2 Preparar Imagen Filtro Inverso? Si No http://www.geocities.com/bslayer5
Programa en MpLab http://www.geocities.com/bslayer5 Recibir Dato1 Config. Serial For i=1 Hasta Fil Recibir Dato2 Fin For j=1 Hasta Col PIC Listo For i=1 Hasta Fil Recibir Orden Recibir Dato Recibir Fil y Col Derivada For j=1 Hasta Col 255 - Dato Enviar Dato Filtro Inverso? Enviar Dato Recibir Dato Si No Derivada: (Dato2 * 2) – Dato1 – Dato3 http://www.geocities.com/bslayer5
Complejidad del Algoritmo en C++ a) La Configuración del Puerto y la Carga de la imagen se realiza en un tiempo lineal. b) Esperar a que el PIC esté listo se tarada a lo mucho "m" veces. c) Enviar la Orden, el Acho y alto en píxeles se lleva un tiempo lineal. d) Preparar la imagen también toma un tiempo lineal e) En el caso de filtro inverso debe hacer este proceso "k" veces. f) En el caso de filtro Derivada se debe hacer este proceso "l" veces. g) Enviar y Guardar el bit en la imagen nueva se hace en un tiempo lineal. h) Ingresar la misma información de la Imagen toma tiempo lineal. El tiempo tomado es K+m+l+C, es decir es de Orden "n" O(n). http://www.geocities.com/bslayer5
Complejidad del Algoritmo en MpLab a) La Configuración del Puerto se realiza en un tiempo lineal. b) Avisar que esta listo, Recibir la Orden y el Tamaño se lleva un tiempo n. c) Revisar que filtro es, tarda un tiempo lineal. d) En el caso de filtro inverso debe hacer este proceso "n*n" veces. e) En el caso de filtro Derivada se debe hacer este proceso "l*l" veces. f) Aplicar cualquier filtro y hacer refrescado de variables <toma un tiempo lineal. El tiempo tomado es n*n+l*l+C, es decir es de Orden "n*n" O(n*n). http://www.geocities.com/bslayer5
Resultados http://www.geocities.com/bslayer5 Original Inverso Derivada Ambos Original Inverso Ambos Derivada http://www.geocities.com/bslayer5
Gracias por su Atención "El futuro no es algo que debas ver, es algo de debes crear" Benjamín Cruz Torres benji_slayer@hotmail.com