Universidad Central “Marta Abreu” de Las Villas Facultad de Ingeniería Eléctrica Centro de Estudios de Electrónica y Tecnologías de la Información Evaluación objetiva de métodos para la reducción de ruidos en imágenes de microscopía óptica médica. Autor: Willian Herrera Díaz Tutor: Dr. Rubén Orozco Morales Santa Clara 2013 "Año 55 del Triunfo de la Revolución" Universidad Central “Marta Abreu” de Las Villas Facultad de Ingeniería Eléctrica Departamento de Automática y Sistemas Computacionales Evaluación objetiva de métodos para la reducción de ruidos en imágenes de microscopías. Autor: Willian Herrera Díaz Tutor: Dr. Rubén Orozco Morales Santa Clara 2013 "Año 55 del Triunfo de la Revolución" Hago constar que el presente trabajo de diploma fue realizado en la Universidad Central “Marta Abreu” de Las Villas como parte de la culminación de estudios de la especialidad de Ingeniería en Automática, autorizando a que el mismo sea utilizado por la Institución, para los fines que estime conveniente, tanto de forma parcial como total y que además no podrá ser presentado en eventos, ni publicados sin autorización de la Universidad. Firma del Autor Los abajo firmantes certificamos que el presente trabajo ha sido realizado según acuerdo de la dirección de nuestro centro y el mismo cumple con los requisitos que debe tener un trabajo de esta envergadura referido a la temática señalada. Firma del Autor Firma del Jefe de Departamento donde se defiende el trabajo Firma del Responsable de Información Científico-Técnica i La inteligencia consiste no sólo en el conocimiento, sino también en la destreza de aplicar los conocimientos en la práctica.” Aristóteles. ii A mi familia, por creer siempre en mí y apoyarme aun cuando era difícil. iii AGRADECIMIENTOS. Quiero agradecer a mis padres, hermana, abuelos y a todo el resto de la familia, por todo el apoyo y dedicación que me han brindado en este tiempo y en general en toda mi carrera. Especialmente a mi mamá por toda la paciencia y dedicación que ha tenido para conmigo en mi vida. Quiero agradecer también a todos mis maestros, entrenadores tutores y profesores, desde Imer Riverón, en los lejanos tiempos del Círculo Infantil, donde me enseñó mis primeros pasos, hasta el profesor Dr. Rubén Orozco Morales tutor de esta tesis, y en general a todos los profesores del CEETI que de una forma u otra me han asistido y apoyado, en especial al profesor Julián Cárdenas gracias por sus concejos, igualmente, al profesor Lázaro Valdés que tan gentilmente me ha apoyado en la realización de este trabajo. Mi agradecimiento lo hago extensivo a todos mis compañeros de aula, así como a todos mis amigos, que igualmente me han apoyado y ayudado en todos mis estudios y en mi vida en general. A Roger, Katerina y Eddy que me acogieron en su cuarto y han sabido ser mis amigos en este corto periodo en que nos conocimos, a los Ing. Alexis R. Ramos y Frank A. Pérez que desde el pre universitario me vienen empujando hasta sacar la universidad, a Julio Cesar mi cuñado que sin su ayuda hubiera pasado el doble del trabajo que pase con la programación de la tesis. En resumen quiero agradecer a todos aquellos que de una forma u otra han estado al tanto de mi vida, brindándome siempre su apoyo, dedicación y preocupación por mi. iv TAREA TÉCNICA. 1. Revisión bibliográfica del estado de las funcionalidades existentes relacionadas a la gestión y el control del proceso de análisis de la calidad de las imágenes de microscopía óptica celular. 2. Caracterización y selección de las herramientas y tecnologías de desarrollo que se usarán en la realización del sistema. 3. Identificar y definir los requerimientos del software para la gestión del proceso de análisis de la calidad de las imágenes de microscopía óptica celular. 4. Realización de diagramas y demás documentación relacionada con el desarrollo del sistema. 5. Realización del diseño del software para la gestión del proceso de análisis de la calidad de las imágenes de microscopía óptica celular. 6. Diseño de la propuesta de solución. 7. Implementación del sistema de gestión y control del proceso de análisis de la calidad de las imágenes de microscopía óptica celular. 8. Realización de pruebas al sistema de gestión y control del proceso de análisis de la calidad de las imágenes de microscopía óptica celular. Firma del Autor Firma del Tutor v RESUMEN. El acondicionamiento de las imágenes de microscopía óptica médica es una tarea fundamental en el estudio de las patologías y procedimientos de diagnóstico bajo investigación. Para la simulación de imágenes reales, sin embargo, estos procedimientos de acondicionamiento pueden introducir pérdidas sustanciales en la calidad de las imágenes, con lo que se dificultaría el diagnóstico o estudio a realizar. Con los resultados obtenidos en este trabajo se determinan valores máximos de varianza y escalado, para los cuales las imágenes de interés no sufren pérdidas significativas de información, al ser sometidas a procesos de filtrado con vista a la reducción de los diversos ruidos, lo cual se cuantifica objetivamente mediante medidas de calidad. Para ello se desarrollan métodos y algoritmos programados en MATLAB. vi TABLA DE CONTENIDOS. La inteligencia consiste no sólo en el conocimiento, sino también en la destreza de aplicar los conocimientos en la práctica.” .........................................................................................................i AGRADECIMIENTOS. .............................................................................................................. iii TAREA TÉCNICA. ......................................................................................................................iv RESUMEN. ..................................................................................................................................... v TABLA DE CONTENIDOS. ........................................................................................................vi INTRODUCCIÓN. ......................................................................................................................... 1 Objetivos: ......................................................................................................................................... 3 Objetivo General: ............................................................................................................................. 3 Objetivos específicos: ...................................................................................................................... 4 Organización del informe. ................................................................................................................ 5 CAPÍTULO 1. ................................................................................................................................. 6 Definiciones y Objetivos................................................................................................................. 6 1.1 Introducción. ...................................................................................................................... 7 1.2 Conceptos básicos.............................................................................................................. 7 1.3 Las imágenes médicas en formato digital. ......................................................................... 8 1.4 Procesamiento de Imágenes de Microscopía Óptica Médica. ........................................... 9 1.5 Factores que limitan la calidad de una micrografía ......................................................... 11 1.5.1 Fuentes de ruido ....................................................................................................... 12 1.5.2 Otras fuentes auxiliares de ruido: ............................................................................. 12 1.6 Procesos de filtrados. ....................................................................................................... 12 1.7 Medidas de calidad en imágenes. .................................................................................... 14 1.7.1 Medidas objetivas para estimar calidad en las imágenes. ........................................ 14 1.7.2 Medidas de calidad subjetivas. ................................................................................. 15 vii 1.8 Programas precursores en el campo del estudio de las imágenes medicas ..................... 16 1.9 Soluciones existentes y propuesta sobre la reducción de ruido en las imágenes de microscopía óptica.......................................................................................................................... 16 1.9.1 Soluciones existentes................................................................................................ 16 1.10 Soluciones propuestas. ................................................................................................. 17 CAPÍTULO 2. ............................................................................................................................... 18 Materiales y Métodos. .................................................................................................................. 18 2.1 Introducción. .................................................................................................................... 19 2.2 Métodos y preparación de las imágenes de prueba. ........................................................ 19 2.2.1 2.3 2.3.1 Caracterización de los ruidos. ...................................................................................... 20 Imágenes utilizadas.......................................................................................................... 20 Contaminación de las imágenes. .................................................................................. 20 2.3.1.1 Contaminación con ruido Gaussian y Speckle. ........................................................ 21 2.3.1.2 Contaminación con ruido Poisson. ........................................................................... 21 2.4 Medidas objetivas de calidad. .......................................................................................... 22 2.5 Trazado de los resultados. ............................................................................................... 23 2.6 Salvado. ........................................................................................................................... 24 2.7 Resultados parciales. ....................................................................................................... 25 2.8 Filtrado de las imágenes contaminadas. .......................................................................... 26 2.8.1 Filtrado Gaussiano. ...................................................................................................... 26 2.8.2 Filtrado por Wavelet Pack. .......................................................................................... 26 2.9 Análisis. ........................................................................................................................... 28 2.10 Trazado y salvado. ....................................................................................................... 28 2.11 Conclusiones parciales. ................................................................................................ 28 CAPÍTULO 3. ............................................................................................................................... 29 viii Resultados y Discusión. ................................................................................................................ 29 3.1 Introducción. .................................................................................................................... 30 3.2 El grupo de imágenes de prueba. ..................................................................................... 30 3.5 Resultados de las medidas objetivas de calidad. ............................................................. 30 3.3.1 Análisis de graficos de contaminación de imágenes. ............................................... 31 3.3.2 Análisis de graficos de filtrado de imágenes. ........................................................... 33 3.4 Análisis de los resultados de las tablas. ........................................................................... 34 3.5 Herramientas construidas. ............................................................................................... 37 3.6 Análisis económico.......................................................................................................... 37 3.7 Conclusiones del capítulo. ............................................................................................... 37 CONCLUSIONES Y .................................................................................................................... 39 RECOMENDACIONES. ............................................................................................................. 39 Conclusiones. ................................................................................................................................. 40 Recomendaciones. .......................................................................................................................... 40 REFERENCIAS BIBLIOGRÁFICAS. ...................................................................................... 41 ANEXOS. ...................................................................................................................................... 44 Anexo I Anexo II Códigos programados en Matlab.............................................................................. 45 Imágenes. .............................................................................................................. 92 INTRODUCCIÓN. 1 INTRODUCCIÓN. INTRODUCCIÓN. 2 La salud ha sido preocupación constante en la vida del hombre como una forma de evitar padecimientos y enfermedades que conlleven al deterioro de la calidad de vida, por lo que se han desarrollado técnicas y herramientas con el fin de llegar a develar la raíz de dichas enfermedades. Nace así la medicina como la principal rama investigativa que profundiza los conocimientos del cuerpo humano y sus misterios. Para este fin se ha nutrido de numerosas y alternas fuentes investigativas y de desarrollo como son la química, la biología, la física, etc… que han aportado sus conocimientos y avances en este sentido, citándose así los rayos x, el mapa genético, la microscopía, etc… Con el nacimiento de las TIC (Tecnologías de las Informáticas y las Comunicaciones) se abre un campo de diversas posibilidades de investigación y control del funcionamiento del organismo humano, lanzando al mundo a una carrera vertiginosa en el perfeccionamiento de novedosas aplicaciones, técnicas y herramientas para facilitar el trabajo del hombre en este sentido. Con este fin se crean diversos equipamientos tecnológicos que permiten la recolección y procesamiento (entre otras aplicaciones) de datos biológicos que, en conjunción con el software médico, presentan una importante vía de obtención, procesamiento y optimización de la información requerida. Un ejemplo de dicho equipamiento tecnológico es el microscopio óptico posibilita la recolección de imágenes digitales de células, utilizadas para visualizar patologías, estructuras, defectos, organismos vivos, complementando una amplia gama de aplicaciones del campo microbiológico. Las imágenes digitales de fotomicrografía se han establecido por décadas como una poderosa herramienta de diagnóstico que produce imágenes 2-D y 3-D, permitiendo establecer las propiedades del objeto en cuestión. Cuba, como potencia médica, se ha empeñado en el desarrollo de diversos software médicos que la inserten en el mundo informatizado del género. Para esto ha otorgado la responsabilidad de desarrollar dichos software a diversas instituciones como son la Universidad de Ciencias Informáticas, Instituto de Investigaciones Digitales, Centro de Estudio y Enseñanza de la Tecnología de la Investigación (CEETI) de la Universidad Central de Las Villas “Marta Abreu” (UCLV). El CEETI es un departamento de la Facultad de Ingeniería Eléctrica que cuenta con varios departamentos encaminados a los estudios de la tecnología y la investigación. Dicho local cuenta con un excelente conjunto de profesionales investigadores que además de dedicarse a la INTRODUCCIÓN. 3 investigación, ejercen la noble tarea de educar y formar ingenieros especializados en el tema de la información, la tecnología y en especial en el campo médico. El alto centro de estudios ha venido efectuando numerosas investigaciones sobre enfermedades como la malaria y el cáncer de útero, dichas imágenes de microscopía deben ser evaluadas luego de realizarles algún procesamiento digital. Esta evaluación requiere de la implementación de varios métodos que cuantifiquen la calidad, lo cual suele ser un trabajo altamente engorroso, tedioso y demorado, por lo que los especialistas pueden incurrir en errores por cansancio del personal. Además la máxima resolución que puede obtenerse con un microscopio óptico es de 2000 aumentos, por ello hay algunos elementos estructurales que son tan finos que no pueden visualizarse a través del microscopio óptico, por lo que los ajustes de brillo y contraste son necesarios para ajustar la visualización e impresión de la imagen, teniendo en cuenta que el valor de los pixeles de la imagen resultante no debe ser cambiado. [2]. También se tiene en cuenta que estas imágenes tienen la característica de no ser referenciadas a la hora de estimar su calidad, por lo que se plantea la siguiente interrogante científica: ¿Cómo lograr estimar la calidad objetiva de las imágenes dentro de los límites aceptables para que continúe siendo óptima para el diagnóstico? Para la guía de esta investigación se plantea, como idea a defender, que con el análisis automatizado de la calidad de las imágenes se podrá procesar gran número de objetos en cortos períodos de tiempo y no dependiendo de los operadores, garantizando así una mayor eficiencia en el manejo de la información, definiéndose como objeto de estudio la gestión de la información en el proceso generado durante el análisis de calidad de las imágenes, enmarcado en el campo de acción el desarrollo de un sistema para el análisis del ruido de imágenes de microscopía óptica médica. Objetivos: Objetivo General: Contribuir al desarrollo de un sistema automatizado para la supresión de ruido y la valoración objetiva de la calidad de las imágenes de microscopía óptica médica. INTRODUCCIÓN. 4 Objetivos específicos: 1. Realizar un estudio de las bibliografías referidas al proceso de análisis de la calidad de las imágenes de microscopía óptica celular. 2. Estudiar los tipos de ruidos que afectan a las imágenes de microscopía óptica. 3. Caracterizar los tipos de ruidos y calcular los parámetros de calidad de las imágenes afectadas por estos ruidos. 4. Evaluar métodos de supresión de ruidos. 5. Realizar las pruebas necesarias para garantizar la operatividad del experimento. Para dar cumplimiento a los objetivos específicos determinados se definen las siguientes tareas de investigación: 1. Revisión bibliográfica del estado de las funcionalidades existentes relacionadas con la gestión y el control del proceso de análisis de la calidad de las imágenes de microscopía óptica celular. 2. Caracterización y selección de las herramientas y tecnologías de desarrollo que se usarán en la realización del sistema. 3. Identificación y definición los requerimientos del software para la gestión del proceso de análisis de la calidad de las imágenes de microscopía óptica celular. 4. Realización de diagramas y demás documentación relacionada con el desarrollo del sistema. 6. Realización del diseño del software para la gestión del proceso de análisis de la calidad de las imágenes de microscopía óptica celular. 7. Diseño de la propuesta de solución. 5. Implementación del sistema de gestión y control del proceso de análisis de la calidad de las imágenes de microscopía óptica celular. 6. Realización de pruebas al sistema de gestión y control del proceso de análisis de la calidad de las imágenes de microscopía óptica celular. INTRODUCCIÓN. 5 Organización del informe. El presente trabajo estará compuesto por introducción, tres capítulos, conclusiones, recomendaciones, bibliografías, anexos y glosario de términos. En el Capítulo 1. “Definiciones y Objetivos”: Se realizará un estudio del arte del proceso de gestión de la información resultante de la recopilación de imágenes médicas. Además se abordará el tema del lenguaje de programación, la metodología de desarrollo, patrones de casos de uso y las principales herramientas a utilizar. Se definen los tipos de que contaminan comúnmente a las imágenes de microscopía celular y las métricas de calidad que se utilizan para cuantificar la degradación de las imágenes. En el Capítulo 2. ” Materiales y Métodos”: Se reflejará una detallada descripción del experimento realizado. Se abordaran temas como los mecanismos y métodos de contaminación de las imágenes y filtrado de las mismas. En el Capítulo 3. ¨Resultados y Discusión”: Se mostraran los resultados obtenidos en cada uno de los experimentos. Estos resultados compuestos por imágenes, datos y exclusiones serán analizados en este capítulo. Para finalizar el trabajo serán expuestos las conclusiones, las recomendaciones, las referencias bibliográficas y el conjunto de anexos para un mejor entendimiento de lo presentado a lo largo de la investigación. CAPÍTULO 1. Definiciones y Objetivos. 6 CAPÍTULO 1. Definiciones y Objetivos. CAPÍTULO 1. Definiciones y Objetivos. 1.1 7 Introducción. La microscopía es la técnica de producir imágenes visibles de estructuras o detalles demasiado pequeños para ser vistos a simple vista. En la microscopia se evidencian los grandes aportes que la física ha hecho a la biología. Exceptuando técnicas como la microscopía de fuerza atómica, de iones de campo y de efecto de túnel, la microscopía generalmente implica fenómenos como la difracción, refracción o reflexión de radiación en el sujeto de estudio. Específicamente, este trabajo se centra en los principales tipos de ruidos que comúnmente contaminan a las imágenes de microscopía óptica médica, cuya producción está asociada a la física geométrica, así como la captación mediante dispositivos de censado electrónico a base de silicio, en los cuales la imagen responde a la producción de cargas eléctricas como consecuencia de la acumulación de fotones sobre ellos; esto es la fotomicrografía. Para tener una imagen detallada y fiel en cuanto a calidad, de los microorganismos y sus fenómenos, se debe tener correspondiente a la parte óptica: la luz, la cantidad de esta y su intensidad en la muestra, además de que proviene de forma directa por medio de un bombillo incorporado (electricidad) o un espejo a través del cual se dé la reflexión de la luz. Están los lentes, con poderes de aumento y resolución y en tercer lugar está el índice de refracción con las distintas muestras en estudio, en cuanto a la parte mecánica tenemos tornillos y engranajes. También hay una forma de microscopía que se basa en una sonda muy pequeña que reconoce las perturbaciones ocurridas en el extremo de la sonda debidas a efectos eléctricos. [20] El presente capítulo está destinado a abarcar los principales conceptos que se asocian a los ruidos que contaminan a las imágenes de microscopía óptica celular permitiendo una mejor comprensión de la misma en sentido general. Se realiza un análisis de las soluciones existentes en relación a la gestión de la información en el proceso de análisis de la calidad de las imágenes de microscopía óptica celular. 1.2 Conceptos básicos. Para una mejor comprensión durante el transcurso de la investigación es necesario esclarecer algunos términos y conceptos que se utilizaron en el desarrollo de la misma.[9] CAPÍTULO 1. Definiciones y Objetivos. 8 Imagen: es una función de dos variables, f(x, y), donde x e y son coordenadas espaciales y el valor de f en un punto dado es la intensidad o nivel de gris de la imagen en dicho punto. Imagen Digital: dado un número finito de elementos, f(x, y), cada uno de los cuales tiene una localización y magnitud determinadas: estos elementos reciben el nombre de píxeles (especie de contracción del inglés picture element). [9] Imagen Médica: es una imagen del cuerpo humano con fines médicos. Ruido: referente a la distorsión en imágenes. Distorsión: es la deformación que sufre una señal tras su paso por un sistema. Calidad de Imagen: es el cumplimiento de los requisitos, explícitos o implícitos, para la satisfacción de un usuario. 1.3 Las imágenes médicas en formato digital. Una imagen médica es la representación de un órgano, tejido, o proceso fisiológico que se obtiene través de procesos físicos ordenados para este fin. Estas representaciones se utilizan para emitir diagnósticos o evaluar cambios que ocurren en el paciente con el transcurso de un tratamiento [4]. En la Figura 1 podemos ver ejemplos de imágenes médicas obtenidas por diversas modalidades de obtención. Figura 1. Ejemplos de imágenes obtenidas por diversas modalidades de obtención, a) radiografía digital, b) resonancia magnética, c) tomografía por Emisión Positrones, d) tomografía axial computarizada. Las imágenes pueden considerarse como una función bidimensional: I = f (x, y) CAPÍTULO 1. Definiciones y Objetivos. 9 Don de I es el valor de intensidad en la coordenada x, y de la matriz que representa la imagen. Una imagen digital es la representación de un objeto real como un conjunto finito de valores discretos que se obtienen cuando se cuantifican las coordenadas espaciales y la intensidad. Estos valores discretos se denominan píxeles y es el menor elemento en que se descompone una imagen. La cantidad de memoria utilizada para almacenar un valor de intensidad se conoce como profundidad de bits y se expresa en bits-por-píxel (bpp). Las imágenes médicas digitales y sus aplicaciones en la medicina, en general en el campo de los estudios biotecnológicos, han ayudado al desarrollo de sistemas de diagnóstico por imágenes dado su fácil acceso mediante un ordenador, por ser transferibles a cualquier lugar en muy poco tiempo a través de las redes de comunicación digital y no deteriorarse físicamente con el tiempo. Una de las cualidades más favorables de las imágenes digitales es que admiten una serie de procedimientos posterior a su adquisición en función de mejorar sus cualidades con fines de diagnóstico o de investigación, a la vez que se pueden realizar procedimientos para la extracción o identificación de parámetros de importancia clínica [4]. 1.4 Procesamiento de Imágenes de Microscopía Óptica Médica. El aseguramiento de la calidad y rendimiento de los métodos que implican procesamiento de imágenes de Microscopia Óptica Médica, es una preocupación constante, ya que se ve obstruido por la gran dificultad para ver a simple vista las irregularidades en las mismas, debido al ruido implícito en la obtención de las mismas, y es que esto se debe a que la máxima resolución que puede obtenerse con un microscopio óptico es de 2000 aumentos, obteniéndose como resultado que algunos elementos estructurales, sean tan finos que no se pueden visualizar a través del microscopio óptico Figura 2. Los ajustes de brillo y contraste son necesarios para ajustar la visualización e impresión de la imagen poniendo en directo peligro la objetividad y efectividad del diagnóstico ya que el valor de los píxeles de la imagen resultante no debe ser modificado. CAPÍTULO 1. Definiciones y Objetivos. 10 Figura 2. Muestra de tejido fino. Actualmente se pretende agilizar el proceso de diagnóstico de calidad derivado del procesamiento de las imágenes de microscopía óptica médica, contribuyendo a la capacidad de respuesta a través de la optimización de dicho proceso, por lo que se generan datos que respalden de manera confiable y segura la calidad de la imagen; esto que posibilita alcanzar las normas y estándares establecidos, contribuyendo con el desarrollo social, económico, endógeno y sustentable del país y del campo en estudio. Entre las principales tareas para alcanzar lo anteriormente expuesto en este estudio se deben puntualizar: Identificación y estudio de los tipos de ruidos presentes en la imagen. Ajuste de la imagen. Análisis de calidad de la imagen contaminada obtenida. Trazado de los resultados obtenidos en la parte de condicionamiento de las imágenes. Filtrado de las imágenes contaminadas teniendo en cuenta las características de las utilizadas en el filtrado. Análisis de calidad de las imágenes obtenidas a través de los procesos de filtrado. Trazado de los resultados obtenidos en el proceso de filtrado de las imágenes. Arribo de conclusiones a partir de los resultados obtenidos teniendo en cuenta los parámetros utilizados en los procesos mencionados. CAPÍTULO 1. Definiciones y Objetivos. 11 Para la realización de las tareas planteadas con anterioridad es necesario el desempeño de los siguientes pasos: Seleccionar las imágenes. Identificar los ajustes necesarios a la imagen para la correcta realización de las pruebas. Establecer los parámetros operacionales acerca de la ejecución de las pruebas, así como protocolos y demás procedimientos para la identificación del ruido implícito en las imágenes. Establecer determinaciones analíticas para la ejecución de las pruebas. Programar las actividades en cuanto a la ejecución de las pruebas. Ejecutar las pruebas. Analizar el comportamiento de las imágenes en cuestión. Almacenar los datos emitidos por las pruebas. Reportar la información arrojada por las pruebas realizadas de manera digital. Es importante tener en cuenta que cada una de las implementaciones depende de factores que se relacionan directamente con la fotomicrografía por lo que cada examen resulta diferente en cada caso, para esto se realiza una catalogación del ruido, diferenciándolo de acuerdo al tipo y grado de afectación. La presente investigación está sustentada sobre la idea de garantizar un pleno aprovechamiento de los recursos que se poseen para el análisis de la calidad de las imágenes de microscopía óptica celular, así como una mayor productividad, eficacia y eficiencia, asegurando una imagen acreditada con alta confiabilidad y calidad, que esté sustentada por tecnología actualizada que sea referente a nivel nacional e internacional, bajo la certificación de la calidad en los procesos y análisis de imágenes, garantizando tiempos de respuestas adecuadas a las necesidades de los investigadores. 1.5 Factores que limitan la calidad de una micrografía Dos fuentes que actúan como los principales limites en las imágenes obtenidas a partir de un microscopio son: 1) la instrumentación con su inherente límite de resolución, que introduce ruidos medibles, y 2)la muestra misma, las propiedades ópticas y las características de emisión de cada una, son no ideales. También el proceso de formación de la imagen en el sensor mediante la acumulación o cuantons sobre el mismo, siendo esta la principal causa de ruido poisson (conocido también como ruido cuántico). CAPÍTULO 1. Definiciones y Objetivos. 12 1.5.1 Fuentes de ruido Ruido de disparo del fotón: La limitación fundamental de cualquier foto detector, reside en la naturaleza aleatoria del fotón emitido. El arribo de los fotones al detector es bien descrito por un proceso poisson donde la intensidad (estática) es proporcional a la intensidad (física) de la señal fluorescente Ruido de fondo: La radiación del ambiente, especialmente en el dominio infrarojo, puede ser una fuente significativa de ruido; esto también requiere del uso de filtros adicionales en el estado de detección. Corrientes oscuras: Una de las fuentes de ruido internas del detector la más relevante e importante es la agitación térmica. Los altos niveles de temperatura, los altos niveles de energía cinética de los electrones. Para detectores de semiconductores, esto resulta en término nombrado corriente oscuro, esta depende del ascenso de la intensidad de la luz. Cada carga de foto capacitores, cuando la integración tiempo/temperatura es muy alta. 1.5.2 Otras fuentes auxiliares de ruido: Para dispositivos de semiconductores el ruido aditivo es generado en el tiempo de lectura/salida. En particular, la carga transferida en los sensores CMOS es menos eficiente que en los acoples de carga dispositivo (CCD). [24]. Todos los sistemas que producen imágenes médicas incorporan algún tipo de ruido. Ya sea a través de hardware mediante la obtención de la imagen o durante un proceso digital de posobtención. Tanto los ruidos como los artefactos, que se puedan encontrar en una imagen, dificultan el análisis de la misma, ya sea de forma visual o automatizada. Por lo general el ruido contiene alta densidad de potencia en las altas frecuencias, al igual que los detalles y rasgos finos de la imagen. [8] 1.6 Procesos de filtrados. Algunas de las técnicas más utilizadas en los procesos de filtrado de las imágenes son: Filtrado lineal e invariante FIR o IIR. Filtrado Kalman o Wiener. Transformada Wavelet. Redes neuronales artificiales. CAPÍTULO 1. Definiciones y Objetivos. Filtrado de mediana. 13 Análisis espectral de alto orden (HOSA). Por lo general los métodos más exitosos para la reducción de ruido se basan en transformaciones no lineales. Los procesos de filtrado contemplan como premisa: Velar porque no se generen nuevos detalles en la imagen que puedan ser confundidos con afecciones o padecimientos. Evaluar subjetivamente el resultado de cada nuevo método utilizando expertos en medicina. Los procesos de filtrado tiene como propósito modificar la relación entre píxeles de acuerdo a la información espectral, espacial, morfológica, etc., por lo que se utiliza en: Reducir ruido, mejorar y restaurar. Detectar bordes y morfologías. Analizar texturas. Segmentar. Determinar gradientes o derivadas direccionales. Algunos tipos de filtrado para mejorar la calidad de una imagen son: Frecuencial vs. Espacial. Lineal vs. No lineal. Suavizador vs. Endurecedor. Adaptativo vs. Invariante. Derivador vs. Integrador. Isotrópico vs. Anisotrópico. Homomórfico vs. Polinomial. Morfológico, Orientables, Wavelet, Bilateral, etc. CAPÍTULO 1. Definiciones y Objetivos. 14 Figura 3. Reducción de ruido y mejoramiento del contraste en imagen de resonancia magnética utilizando transformada de wavelet discreta. 1.7 Medidas de calidad en imágenes. La calidad de las imágenes es un tema que se encuentra bajo discusión desde hace varias décadas debido a la importancia que tiene este tema en diversas ramas, siendo imprescindible en la medicina debido a que resulta primordial mantener una calidad óptima de las imágenes para el correcto diagnóstico y detección de enfermedades, las medidas de calidad en las imágenes pueden se objetivas o subjetivas. 1.7.1 Medidas objetivas para estimar calidad en las imágenes. La calidad de las imágenes está influenciada por parámetros objetivos como nivel y tipo de ruido, el contraste y la presencia de distorsiones, entre otros. Por lo que la calidad pudiera cuantificarse por la magnitud de la presencia de cada uno de ellos calculados a partir de los valores de intensidad de los píxeles de la imagen [4], [21]. Para cuantificar estos parámetros se han creado una serie de medidas las cuales teniendo en cuenta la imagen original ayudan a obtener un estimado de la calidad de la imagen después de pasar por determinado procesamiento. Dentro de estas se encuentran las de distancia, las de relación de intensidades de los pixeles y la de similitud estructural. Se tienen las siguientes medidas de calidad bi-variadas (full reference) teniendo en cuenta que K es la dimensión del espacio de color que se utiliza para la imagen multiespectral, xk[n1,n2], con k = 0, 1, ..., K, son las k-ésimas matrices correspondientes a cada uno de los colores (k = 1 para rojo, k = 2 para verde y k = 3 para azul) de la imagen original, x̂ k [n1,n2] son las correspondientes a la imagen distorsionada, N1 y N2 son las cantidades de filas y columnas respectivamente de la imagen original o sus versiones distorsionadas, y B es la profundidad de bits que codifica cada color. [22], [4], [23]. Error Cuadrático Medio: MSE = 1 K 1 N11 NN k 1 1 2 n10 K N2 1 n2 0 x k [n1 , n2 ] x̂ k [n1 ,n2 ]2 . CAPÍTULO 1. Definiciones y Objetivos. 1 SNR = K Relación señal a ruido: Relación señal a ruido pico: 1 NN k 1 1 2 K 2 1 K B PSNR = 2 K k 1 1 SC = K Contenido estructural: n10 MSE . n110 n220 x k [n1 , n2 ]2 . N11 N2 1 x̂ [n , n ]2 n10 n2 0 k 1 2 k 1 K N 1 Error Absoluto Medio: Error Cuadrático Medio: Error de Multi-Resolución: K 1 NN k 1 1 2 N 1 x k [n1 , n2 ] x̂ k [n1 , n2 ] . n10 n2 0 K N 1 N11 N2 1 N 1 1 K 1 1 MSE = K k1 N1N2 n 0 1 1 MRE = K N 1 n110 n220 x k [n1 , n2 ]x̂ k [n1 , n2 ] . N11 N2 1 2 x [ n , n ] n10 n2 0 k 1 2 1 NCC = K k 1 1 MAE = K 2 x k [n1 , n 2 ] MSE . n2 0 N11 N2 1 K Correlación Cruzada Normalizada: 15 N2 1 n2 0 x k [n1,n2 ] x̂ k [n1,n2 ]2 . R dkr . k 1 r 1 En esta tesis no se utilizan todas las medidas de calidad objetivas mencionadas. 1.7.2 Medidas de calidad subjetivas. Las medidas de tipo subjetivas (o cualitativas) involucran por lo general a un grupo de observadores humanos (expertos o no), los que dan su opinión sobre determinados aspectos de la imagen como por ejemplo su calidad. Esta valoración queda referida a una escala de valores que se conoce como Escala Promedio de Opinión (de inglés: Mean Opinion Score, MOS) la que asocia valores subjetivos de apreciación a valores numéricos. Debido a la complejidad de estos experimentos, el individuo se convierte en parte del sistema, se requieren una serie de condiciones ambientales y del experimento, enfocadas a minimizar los posibles errores introducidos durante su realización [4] y no serán abordados en esta tesis. CAPÍTULO 1. Definiciones y Objetivos. 1.8 16 Programas precursores en el campo del estudio de las imágenes medicas A partir del surgimiento de las TIC la ingeniería biomédica se ha beneficiado de múltiples herramientas y software para crear productos que beneficien el campo de la especialidad. Una de las áreas favorecidas ha sido la de imágenes médicas logrando desarrollar programas que posibilitan la optimización en la obtención y procesamiento de las mismas. Lenguajes de programación como FORTRAN y C++, lograron mantener la iniciativa con programas multipropósito como lo fue el programa de análisis de imágenes Subroutine Package for Image Data Enhancement and Recognition (SPIDER), que cuenta con variadas herramientas para analizar texturas, distancias y ruidos, todas ellas encaminadas al análisis de imágenes médicas. En la actualidad con la evolución progresiva de estos programas llega el software Matlab, desarrollado por The MathWork, que es compatible con una amplia gama de bibliotecas digitales perteneciente al software previamente implementado y además se orienta al trabajo con matrices por lo que resulta el muy apropiado para el trabajo con imágenes de microscopia óptica médica. 1.9 Soluciones existentes y propuesta sobre la reducción de ruido en las imágenes de microscopía óptica. En la actualidad se pueden encontrar múltiples tipos de estudios realizados con el objetivo de analizar las imágenes de microscopía óptica, en los que cada autor realiza un proceso de acondicionamiento y filtrado previo de dichas imágenes, tarea que ha tenido que ser realizada manual y personalmente por cada investigador. [1], [3], [15], [11]. 1.9.1 Soluciones existentes. En el artículo, Automatic noise quantification for confocal fluorescence microscopy images, de Perrine Pau, Heiko Duessmann, Tytus Bernas, Heinrich Huber y Dimitrios Kalamatianos se analiza la reducción de ruido gaussiano y poisson en las imágenes de microscopía óptica. Los autores se basan en la estimación de la varianza del ruido.[11]. Otra publicación referente y sugerente fue, Patch-Based Nonlocal Functional for Denoising Fluorescence Microscopy Image Sequences,[3].donde se proponen métodos para la simplificación del ruido en imágenes de microscopia en 3D. Sugieren la eliminación de la dependencia entre la media y la varianza de los valores de intensidad con enventanado de kernel CAPÍTULO 1. Definiciones y Objetivos. 17 de 3x3 pixeles. También G. Selvaggio, F. Ceroni, E. Giordano and J. V. Lorenzo-Ginori proponen hacen referencia sobra la reducción de ruido de tipo poisson usando Wavelet Pack. En este caso sugieren la utilización de la familia Haar con tres niveles de descomposición y el umbral dependiente del nivel calculado utilizando el criterio de Birgé-Massard.[15] 1.10 Soluciones propuestas. Con el objetivo de brindar una referencia sobre el hecho de la aceptabilidad de las imágenes filtradas; si del todo aceptables o cuales son los valores entre los que están acoplados. Por lo tanto la presente investigación está encaminada a la búsqueda de estos valores y consideraciones. Teniendo en cuenta que, a pesar de que existen referencias convergentes, ninguna es tan abarcadora en este proceso de análisis que se propone, por lo que no se adecuan a las necesidades actuales. Por tanto se estimula a la elaboración de un sistema de contaminación y filtrado de imágenes de microscopia óptica que sea capaz de analizar un gran número de imágenes. Se propone tener en cuenta la utilización de; ruidos gaussiano, speckle y poisson además de la realización de filtrados usando filtros gaussiano y a través de Wavelet Pack, donde se tengan en tenga en primer plano la evaluación de las familias wavelet principalmente con ruido poisson. CAPÍTULO 2. Materiales y Métodos. 18 CAPÍTULO 2. Materiales y Métodos. CAPÍTULO 2. Materiales y Métodos. 2.1 19 Introducción. Después de haber realizado en el capítulo 1 un esbozo de los elementos fundamentales para la presente investigación, se puede hacer un estudio de las posibles herramientas y tecnologías a emplear para el desarrollo de este trabajo. Además se puntualiza un análisis de los materiales y métodos a utilizar para la implementación de la aplicación. Para la realización del experimento se trabajó sobre el cálculo de funciones y trabajos matriciales con imágenes médicas. Teniendo en cuenta que Matlab es un poderoso software de programación orientado al trabajo con matrices, que cuenta con un amplio grupo de herramientas y procedimientos especializados en el tema, se decide utilizarlo para la implementación de la aplicación, con vistas a facilitar el trabajo consistente en la creación de funciones que permitan, de una forma más rápida y cómoda, realizar todos los procedimientos sobre las imágenes. Además de que otro punto fuerte en la elección de dicho software es que la amplia gama de contenidos almacenados en la ayuda del mismo ha permitido crear un programa para arrojar datos a través de la contaminación de las imágenes a utilizar en el proceso de filtrado, siendo éste un puntal relevante en el desarrollo de la presente tesis. Se realizó la implementación de cinco programas; Contaminado, filtrado gaussiano, filtrado poisson, filtrado speckle y trazado de medias filtradas, con el objetivo de disminuir el trabajo computacional y humano ya que en estos procesos se requiere de la lectura de un gran números de datos salvados en hojas de cálculos de Excel e imágenes (más de 3000) en varias carpetas lo que constituye un trabajo excesivamente largo y engorroso. 2.2 Métodos y preparación de las imágenes de prueba. Haciendo un análisis de las referencias bibliográficas arrojadas por los investigadores enfrascados en el tema, se concluye; que muchos han sido los métodos utilizados para reducir el ruido en las imágenes de microscopía óptica, resaltando entre ellos los filtrados para suprimir ruidos de tipo gaussiano, speckle y poisson, sobre los que se amplía brevemente a continuación. CAPÍTULO 2. Materiales y Métodos. 20 2.2.1 Caracterización de los ruidos. Tanto el ruido gaussiano como el ruido poisson, son de tipo aleatorio aditivo los cuales se adicionan por toda la imagen modificando ligeramente el color de los píxeles con una misma Función de Densidad Probabilística (Probability Density Function (PDF)) y Densidad Espectral de Potencia (Power Spectral Density (PSD)) los que por lo general son generados por las siguientes vías: Gaussiana: Contribución de diversas fuentes de ruido independientes. Poisson: Acumulación de fotones sobre un detector. En tanto el ruido speckle (moteado) se caracteriza por tener un efecto fuertemente degradante sobre la imagen por ser, en general, más difícil de remover que el ruido aditivo. [6]. 2.3 Para Imágenes utilizadas. el propósito planteado se utilizó la base de datos conocida como ``Images_Cervical_Herlev´´ el que cuenta con imágenes de carcinoma in situ, light dysplastic, moderated dysplastic, severeal dysplastic entre otras categorías de lesiones y es un estándar de estudio para métodos de clasificación de patologías. La base de datos consta de 917 muestras distribuidas desigualmente en siete diferentes clases. Cada ejemplo es descrito por 20 rasgos extraídos de imágenes de células simples. Los datos fueron obtenidos en el hospital universitario de Herlev a través de cámaras y microscopios digitales. Las muestras fueron tomadas de diversas áreas de la cerviz. [8]. Figura 4. Para la validación del experimento se le realizó el análisis a un total de 50 imágenes de varios tipos de lesiones. 2.3.1 Contaminación de las imágenes. Cada una de las imágenes fue contaminada con los tipos de ruidos referenciados teniendo en cuenta las características de los mismos. CAPÍTULO 2. Materiales y Métodos. 21 Figura 4. Imagen de la cerviz donde se obtienen las imágenes de las células. 2.3.1.1 Contaminación con ruido Gaussian y Speckle. Para la contaminación se usan las funciones ``gaussian´´ y ``speckle´´. Estas son funciones que se usan para, sobre la base de la contaminación generada por las mismas en la imagen, analizar su calidad. Estas funciones utilizan internamente la función de Matlab, imnoise, la cual se ejecuta para una media m=0 y diferentes varianzas (0.01-0.52, +0.02) como se puede observar en los anexos. 2.3.1.2 Contaminación con ruido Poisson. Para este fin se utiliza, la función ``poisson´´. Esta es una función que se usa, para sobre la base de la contaminación generada por la misma en la imagen, al igual que en la contaminación con las funciones ``gaussian´´ y ``speckle´´, analizar su calidad. Esta función utiliza internamente la función de Matlab imnoise, Para este tipo de ruido es recurrente el uso de un re-escalado donde la imagen disminuye su intensidad exponencialmente, e^ (-n), donde n es el factor de re-escalado, seguido de la función imnoise y luego de otro re-escalado e^ (n) donde la imagen ya contaminada retoma su valor de intensidad original. Siendo ``n´´ un entero que varía su valor entre 1 y 26. En cada caso, la imagen que se contaminó con los tres sistemas, fue sometida a un proceso de CAPÍTULO 2. Materiales y Métodos. 22 Figura 5. Muestra de imágenes contaminadas con diferentes tipos de ruido determinación de la calidad de la misma respecto a la imagen original. Para lograr este objetivo se utilizó la función creada ``calidad´´ que en su interior lleva a cabo el cálculo del número de elementos de la imagen original como un requisito para los posteriores cálculos de calidad. 2.4 Medidas objetivas de calidad. Las medias objetivas de calidad son más ágiles que las medidas subjetivas de calidad. [1], [3], [4], [5], [8], [12].Las seis simples medidas objetivas de calidad que se presentan son seleccionadas y usadas para el estudio de esta investigación. Relación Señal a Ruido (SNR), es definido como la diferencia entre el objeto y el fondo CAPÍTULO 2. Materiales y Métodos. 23 dividido por la desviación estándar del objeto ruidoso. [17]. Picos de SNR (PSNR), estima la calidad de la reconstrucción de la imagen respecto a la imagen original y es una vía estándar para medir la fidelidad de la misma. [16]. Error Cuadrático Medio (MSE), mide la diferencia entre dos imágenes comparadas. [14]. Contenido Estructural (SC), es una métrica basada en la degradación estructural, para cuantificar fidelidad visual basada en la premisa de una imagen de alta calidad.[hamet] Correlación Cruzada Normalizada (NCC), es una medida de la similitud entre dos señales, frecuentemente usada para encontrar características relevantes en una señal desconocida por medio de la comparación con otra que sí se conoce.[19] Índice de Similitud Estructural (SSIM). Esta tiene en cuenta la luminancia, el contraste y los cambios estructurales ente ambas imágenes. [19]. Matriz del Índice de Similitud Estructural (MSSIM) El valor de SSIM se promedia sobre M bloques de la imagen centrados en la posición Xi y Yi para obtener los valores promedio de la similitud estructural. [14] Para facilitar el cálculo de las medidas, se construyó una herramienta la cual realiza el cálculo de las medidas objetivas cargando el mapa de bits de la imagen original y la imagen contaminada en cada caso. Estos análisis de calidad fueron aplicados a cada imagen procesada en la contaminación y filtrado, manteniendo las mismas características para ambos casos. 2.5 Trazado de los resultados. Para tener una idea del trabajo realizado hasta el momento y arribar a conclusiones parciales los valores obtenidos a partir de los análisis fueron trazados gráficamente como se muestra en la Figura 6. Obsérvese que, en las imágenes se muestran las medias de los resultados obtenidos de los análisis de calidad objetiva para las imágenes contaminadas donde el aumento del MSE, en la Figura 5, va caracterizado con el aumento de la varianza. CAPÍTULO 2. Materiales y Métodos. 2.6 24 Salvado. Los resultados numéricos obtenidos de las medidas de calidad aplicadas y las imágenes devueltas por los algoritmos resultan ser una gran carga para el hardware en que se trabaja debido a que cada uno de ellos(as) es guardado(a) de primera instancia en la memoria RAM del equipo conllevando a la ralentización del proceso. Como medida para evitar la pérdida de información y la agilización del proceso se recurre a salvar todas las imágenes obtenidas a partir de los análisis así como los datos arrojados. Para ello se implementaron las funciones imwrite y xlswrite. Las imágenes fueron salvadas en formato jpg y se guardaron en archivos diferenciados por el tipo de contaminación a que habían sido sometidas, mientras que el salvado de los datos se realizó hacia hojas de cálculos soportadas por la herramienta Excel de Microsoft Office. Figura 5. CAPÍTULO 2. Materiales y Métodos. 25 Figura 6. 2.7 Resultados parciales. Como resultado de este proceso se obtienen un total de 26 imágenes contaminadas, a partir de cada uno de los procesos de contaminación realizados por cada imagen original que se analice. Esto sería; en total 50(originales) * 3(procesos de contaminación) * 26(contaminadas) =3900 (imágenes contaminadas) las que se salvaron con formato JPG en tres ficheros diferentes categorizados por el tipo de ruido contaminante. Luego todos los valores obtenidos de los análisis de calidad fueron guardados en arreglos hechos por Matlab que fueron exportados a tablas de Excel para utilizarlos en los análisis de conclusiones a partir de los resultados. Estas contaminaciones se concibieron con una varianza hasta 0.52 debido que a partir de este valor las imágenes no aportan información útil al diagnóstico. . Para las contaminaciones con poisson las imágenes fueron escaladas hasta un nivel de n=26 aunque se demuestra que a partir de un escalado de n=20 la imagen ya no aporta información útil. CAPÍTULO 2. Materiales y Métodos. 2.8 26 Filtrado de las imágenes contaminadas. Cada una de las imágenes ya contaminadas, es cargada por los programas diseñados para el filtrado de las imágenes, filtrado gaussiano, filtrado poisson, filtrado speckle. Estos programas, como ya se mencionó al principio de este capítulo, contienen exactamente la misma información en lo que a código de filtrado respecta, variando solo en el tipo de imagen que se carga ya que cada uno de ellos filtra la imagen contaminada asociada a su nombre, facilitando de esta forma el proceso de programación y disminuyendo la carga computacional del equipo con que se trabaja. 2.8.1 Filtrado Gaussiano. En el caso del filtrado gaussiano se usan las funciones de Matlab fspecial e imfilter; fspecial para la creación de un filtro bidimensional h de tipo gaussiano, devuelto como la correlación kernel que es la forma apropiada para su aplicación en la función imfilter. A esta función se le pasan dos parámetros para su utilización; el tamaño de la venta de filtrado, que se mantiene fijo en 3x3 pixeles por ser este el tamaño mínimo de ventana de filtrado, y el valor de la desviación estándar sigma que es la raíz cuadrada de la varianza. Imfilter, por otro lado, filtra los arreglos multidimensionales de la imagen con el filtro multidimensional h. 2.8.2 Filtrado por Wavelet Pack. Para el filtrado usando el Paquete de Wavelet se utilizaron las funciones ddencmp y wpdencmp. En ambos caso se especifica el uso de transformadas Wavelets a través de Wavelet Pack. La función ddencmp se utiliza para la extracción de información de la imagen como, el umbral, tipo de umbral (duro o blando), entropía, etc., especificando el uso de la misma para el filtrado de ruido (de-noising). Mientras tanto la otra función wpdencmp es utilizada para el filtrado, auxiliada de los valores ofrecidos por ddencmp además del tipo de Wavelet que se desea emplear y la cantidad de niveles aproximación deseados. Esta función debe ser utilizada con sumo cuidado pues puede también ser usada para la compresión de imágenes dependiendo de la especificación requerida en ddencmp. [19] En la Figura 7 se muestran los tipos de familias wavelet existentes. En el experimento se utilizaron CAPÍTULO 2. Materiales y Métodos. 27 solo algunas de estas variantes, escogidas de forma aleatoria, debido a la gran diversidad de las mismas y teniendo en cuenta que no se usan todas en el mismo proceso, para este propósito siendo las más comúnmente utilizadas las Daubechies, las Symlets, las Haar y las Biorthogonal.[1], [3], [11], [15]. Por otra parte se encuentran los niveles de descomposición de las imágenes, que para el caso de las utilizadas que son llevadas a escalas de gris, solo se les dedican seis niveles. Para el caso de esta implementación solo se les aplicaron algunos niveles específicos de descomposición, debido al costo computacional y al gran periodo de tiempo necesario para el testeo de los mismos. Figura 7. Familias Wavelet CAPÍTULO 2. Materiales y Métodos. 2.9 28 Análisis. Luego del filtrado de la imagen se le aplica nuevamente los procesos de calidad a cada una de ellas se procede al guardado de los datos y las imágenes obtenidas para ser utilizadas en el análisis de resultados para a partir de las mismas arribar a conclusiones. 2.10 Trazado y salvado. De igual forma y por idénticos motivos que se explicaron en los epígrafes 2.5 y 2.6 respectivamente, los resultados son salvados y trazados luego de la implementación de cada proceso de filtrado. 2.11 Conclusiones parciales. La propuesta de estos métodos de contaminación y supresión de ruido en las imágenes de microscopía óptica, puede resultar de gran importancia, ya que se contará con conocimiento fiable y probado referente a las características de contaminación y comportamiento de las imágenes frente a estos fenómenos. Acercar estos resultados a los usuarios menos cualificados es una posibilidad a tener en cuenta para futuros trabajos relacionados con el tema tratado. . CAPÍTULO 3. Resultados y Discusión. 29 CAPÍTULO 3. Resultados y Discusión. CAPÍTULO 3. Resultados y Discusión. 3.1 30 Introducción. Luego de haber descrito y puntualizado en el capítulo anterior, el tema referente a los materiales y métodos utilizados con el objetivo de acondicionar y procesar las imágenes de microscopía óptica, se realizarán análisis asociados al comportamiento de las imágenes, teniendo en cuenta los tipos de contaminaciones a las que fueron sometidas, los tipos de filtrados y el comportamiento de las mismas ante exámenes de medidas de calidad objetiva Los resultados de los procesos de filtrado serán examinados haciendo énfasis en los que se utiliza el Paquete Wavelet. 3.2 El grupo de imágenes de prueba. A partir de la contaminación de las imágenes se obtienen un total de 3900 nuevas imágenes contaminadas, logradas a partir del uso de la contaminación a través de tres ruidos diferentes: gaussiano, speckle y poisson. Estas fueron el objetivo de estudio siendo utilizadas para el filtrado de aquí que fueran salvadas en ficheros independientes teniendo en cuenta el tipo de ruido con que se contaminaron. De igual forma, como resultado de los procesos de filtrado se obtienen un total de 10492 nuevas imágenes filtradas, que fueron obtenidas utilizando varios tipos y procesos de filtrado. Estas en conjunto con las imágenes contaminadas, son utilizadas en la confección de conclusiones. 3.5 Resultados de las medidas objetivas de calidad. Después de contaminar las imágenes se realizó el cálculo de las medidas objetivas bi-variadas entre la imagen original y las compactadas en el intervalo en cuestión. Con el fin de estudiar el comportamiento de las medidas en función de la de la microscopía óptica y extraer las características de interés, se representan todas las curvas obtenidas en un mismo gráfico después de ser normalizados sus valores. En el caso de las medidas que disminuyen su valor excesivamente tales como, a las que se les aplicó la contaminación con ruido poisson, fue necesaria, para su comparación, expresarlas en escala logarítmica, facilitando su representación gráfica. CAPÍTULO 3. Resultados y Discusión. 31 3.3.1 Análisis de graficos de contaminación de imágenes. En base al análisis de las gráficas, que se obtuvieron a partir de la aplicación de las medidas de calidad objetiva en el proceso de contaminación, se pueden obtener varios resultados referidos a las dimensiones de los niveles de contaminación de las mismas. Entre ellos tenemos que la varianza utilizada para la contaminación de imágenes de microscopía óptica debe estar comprendida entre 0.01 y 0.5, ya que a partir de este valor la imagen no aporta información útil. Además de que llevar el re-escalado de la imagen, para la contaminación con ruido poisson hasta 26 es del todo innecesario. Esto se debe a que la imagen, luego de un nivel de re-escalado mayor que 10, comienza a perder información útil y su fidelidad es altamente afectada. Figura 8. Trazado de los valores de MSE obtenidos tras la contaminación de las imágenes. CAPÍTULO 3. Resultados y Discusión. Figura 9. Trazado de los valores de SC obtenidos tras la contaminación de las imágenes. Figura 10. Trazado de los valores de SNR obtenidos tras la contaminación de las imágenes. 32 CAPÍTULO 3. Resultados y Discusión. 33 3.3.2 Análisis de graficos de filtrado de imágenes. A partir de la aplicación de los métodos de filtrado se obtuvieron valores de calidad objetiva de las imágenes filtradas, valores que fueron graficados como se muestra en las figuras mostradas a continuación. En la Figura 11 los valores de las matrices de índice de similitud estructural están ubicados muy cerca el uno del otro variando entre valores desde 0.9997 hasta 1, demostrando que existe diferencia entre el las imágenes filtradas y sus originales en estudio. Obsérvese en la gráfica que las imágenes que fueron filtradas con un filtro gaussiano (con subíndice 1) presentan menor índice de fidelidad que las imágenes filtradas con Wavelet Pack. Consta además que las imágenes contaminadas que presentan mejor fidelidad son las que fueron contaminadas con ruido poisson, seguidas de las imágenes contaminadas con speckle y luego las contaminadas con ruido gaussiano. Figura 11 CAPÍTULO 3. Resultados y Discusión. 34 En la Figura 12 se observan, a simple vista, solo tres trazados, cuando en realidad existen seis. Lo que ocurre es que en el caso de una imagen se aplican dos procesos de filtrado diferentes que devuelven idénticos valores de NCC. Esto sucede en los tres casos de igual forma devolviendo una gráfica con solo tres curvas. Obsérvese que en el caso de las imágenes contaminadas con ruido gaussiano y speckle existe un incremento notable de NCC entre los valores 0.1 y 0.3 de la varianza, mientras que, este fenómeno, no ocurre de igual forma en el caso de las imágenes contaminadas con ruido poisson sino que se encuentra situado entre los intervalos de varianza de 0.3 y 0.5. Figura 12 3.4 Análisis de los resultados de las tablas. De la aplicación de los algoritmos descritos en el capítulo 2 se obtienen resultados como los que se muestran en la Tabla 3.1. Allí se puede observar el ejemplo de una imagen contaminada con ruido poisson con varios niveles de re-escalado y que fue filtrada usando distintas familias de Wavelet Pack y distintos niveles de aproximación. Se puede observar como varían los resultados de SNR y MSE tan solo con variar el nivel de re-escalado de una imagen. De igual forma ocurre para la Wavelet haar. CAPÍTULO 3. Resultados y Discusión. 35 Tabla 3.1 Datos obtenidos del cálculo de las medidas de calidad para una imagen. Poisson Escalado WAVELET SNR(dB) MSE Tipo NIVEL CONTAM. FILTRADA CONTAM. FILTRADA 8 sym4 3 39,3628 28,4247 0,0001 0,0011 8 db3 3 39,4619 28,3168 0,0001 0,0011 8 haar 3 39,4118 26,1730 0,0001 0,0018 12 haar 3 -0,6241 26,1730 0,8606 0,0018 12 db3 3 -0,6622 28,3168 0,8682 0,0011 10 db3 3 19,4152 28,3168 0,0085 0,0011 10 haar 3 19,4642 26,1730 0,0084 0,0018 10 sym4 3 20,1112 23,9621 0,0073 0,0030 10 db6 1 19,3877 41,0919 0,0086 0,0001 1e^ Del análisis de estos resultados, mostrados en esta tabla, se desprende que, en el re-escalado de las imágenes de microscopía óptica para ser contaminadas con ruido poisson, aquellas que son contaminadas con niveles mayores que diez son gravemente afectadas por el ruido respecto a la calidad de la misma por lo que la información obtenida es incompleta. Se puede además referir que el filtrado usando la familia db del paquete Wavelet asegura una mejora sustancial en la imagen luego de ser filtrada. CAPÍTULO 3. Resultados y Discusión. 36 En la Tabla 3.2 se muestran los resultados obtenidos de la aplicación de los métodos descritos con anterioridad, de una imagen que ha sido contaminada con ruido gaussiano con diferentes modalidades de varianza. Obsérvese que, en casi todos los casos, el incremento de SNR es pobre siendo nulo para algunas variantes de varianza incluso cuando ha sido filtrada la imagen con filtro gaussiano. De igual forma en el caso del MSE resulta escasa su variación coincidiendo los mejores y peores resultados con los de la SNR respectivamente. Tabla 3.2 Datos obtenidos del cálculo de las medidas de calidad para una imagen contaminada con ruido gaussiano. Gaussiano m=0 SNR(dB) MSE Gaussiano m=0 Hsize Var sigma CONTAM. FILTRADA CONTAM. FILTRADA 3x3 0,01 10*Var 19,9850 19,9850 0,0075 0,0075 3x3 0,01 20*Var 19,9352 19,9353 0,0076 0,0076 3x3 0,01 40*Var 20,1388 21,4748 0,0072 0,0053 3x3 0,02 40*Var 20,1836 23,5703 0,0071 0,0033 3x3 0,02 30*Var 20,2224 24,0638 0,0071 0,0029 3x3 0,02 20*Var 20,2447 21,5885 0,0070 0,0052 5x5 0,02 20*Var 20,1852 21,5176 0,0071 0,0053 5x5 0,02 30*Var 20,3103 24,0698 0,0069 0,0029 5x5 0,02 40*Var 20,2360 23,4716 0,0071 0,0034 CAPÍTULO 3. Resultados y Discusión. 3.5 37 Herramientas construidas. Se construyeron varias herramientas para facilitar el trabajo con las imágenes y el proceso de ciclo para cada imagen donde se puede variar las características de los procesos de contaminación, los filtrados y las formas de salvado de los resultados. Además se construyó un proceso para la aplicación de las medidas de calidad objetivas que brinda la opción de cambiar y estudiar dichas medidas sin necesidad de entrar a largos códigos. Estas herramientas pueden ser aplicadas y modificadas por personas con conocimientos sobre el programa Matlab y que además dominen el tema del procesamiento de imágenes de microscopía óptica. También puede ser utilizado, por instructores, en la docencia. 3.6 Análisis económico. Teniendo en consideración que la rama investigativa resulta ser un pilar fundamental en la economía del país y de los elevados costos que se incurren en este proceso, el hecho de una disminución sustancial en función del tiempo y costo computacional sobre el trabajo investigativo convergen en una disminución sustancial en los costos de investigación para el estado, permitiendo además que se realice un mejor trabajo con el menor consumo posible. 3.7 Conclusiones del capítulo. Hasta el momento no se cuenta con el conocimiento de la realización de trabajos similares al presentado en esta tesis de grado. No obstante existe una amplia variedad de estudios realizados por múltiples autores referidas al tema en cuestión, consultados como referencia previa para este trabajo. La investigación referida al tipo de filtro que deberá ser utilizado para la reducción de ruidos en imágenes de microscopía óptica, que se realiza actualmente de forma manual, con el fin de su utilización en estudios, trae consigo un alto consumo de tiempo de análisis de la bibliografía y de la aplicación de los procesos que sean diseñados con este fin, así como el gran consumo computacional que este acarrea consigo. Con la implementación de los estudios presentados en esta tesis se alcanza el desarrollo de un sistema computarizado para la supresión del ruido y la determinación de la calidad de las imágenes de microscopía óptica médica, obteniéndose como garante todos los beneficios implícitos en los mismos referentes a la disminución del tiempo empleado, conllevando a que el CAPÍTULO 3. Resultados y Discusión. 38 trabajo de los investigadores y especialistas se haga menos engorroso y demorado propiciando la reducción de errores humanos por desgaste físico del personal garantizando mayor eficiencia en el manejo de la información. CONCLUSIONES Y RECOMENDACIONES 39 CONCLUSIONES Y RECOMENDACIONES. CONCLUSIONES Y RECOMENDACIONES 40 Conclusiones. Con los resultados obtenidos en esta tesis, se pueden realizar estudios profundos de las imágenes de microscopía óptica médica encaminados a un mejor manejo de la información y de la implementación de un sistema automatizado para la supresión del ruido y la determinación de la calidad de las imágenes tratadas. Durante la implementación de los métodos utilizados se llegó a las siguientes conclusiones: En las imágenes de microscopía óptica los ruidos mas frecuentemente observados y que más afectan a la calidad de la imagen son: el ruido gaussiano, el ruido specle y el ruido poisson. Para la contaminacion de las imágenes con ruidos gaussiano y speckle, la varianza debe estar comprendida entre los valores 0.1 y 0.5. Para la contaminación de las imágenes con ruido poisson, el nivel de re-escalado de la intensidad de la imagen debe estar comprendido entre valores de e^1 y e^10 En la aplicación del filtrado usando Wavelet pack, los mejores resultados se obtienen con la utilización de la familia db y en particular db6. Los mejores resultados obtenidos del filtrado usando Wavelet pack corresponden a las imágenes cntaminadas con ruido poisson y speckle, en el orden referido. Recomendaciones. 1 Incorporar a los procedimientos implementados otros tipos de filtrados, como por ejemplo morfológico, homomórfico, adaptativo, etc.. 2 Desarrollar una aplicación complilada en un lenguaje de alto nivel con el objetivo de acercar al usuario común a la utilización de las herramientas construidas. 3 Utilizar la base de datos de imágenes contaminadas, con las variantes de ruido que se emplearon en este trabajo, como referencia para la evaluación de nuevos métodos de supresión de ruido. REFERENCIAS BIBLIOGRÁFICAS 41 REFERENCIAS BIBLIOGRÁFICAS. REFERENCIAS BIBLIOGRÁFICAS [1] 42 S. T. Acton and K. Ley, "TRACKING LEUKOCYTES FROM IN VZVO VIDEO MICROSCOPY USING l\rlORPHOLOGICAL ANISOTROPIC DIFFUSION " 2009. [2] D. B.Murphy. (2001). FUNDAMENTALS OF LIGHT MICROSCOPY AND ELECTRONIC IMAGING. [3] J. Boulanger, et al., "Patch-Based Nonlocal Functional for Denoising Fluorescence Microscopy Image Sequences," IEEE TRANSACTIONS ON MEDICAL IMAGING, vol. 29, Febrero 2010. [4] I. M. Castañeda, "Efectos de la compresion con pérdidas sobre mediciones de distancia en imagenes de TAC," CEETI, UCLV, Santa Clara, 2009. [5] A. M. Eskicioglu. (2001, QUALITY MEASUREMENT FOR MONOCHROME COMPRESSED IMAGES IN THE PAST 25 YEARS. 3. [6] D. J. V. L. Ginori, "PROCESAMIENTO DIGITAL DE IMÁGENES," presented at the GENERALIDADES, 2011. [7] IhorSmal, et al., "Quantitative Comparison of Spot Detection Methods in Fluorescence Microscopy," IEEE. Transactions on medical imagin, vol. 29, p. 9, Febrero 2010. [8] J. Jantzen, et al., "Pap-smear Benchmark Data For Pattern Classification," ed, 2009. [9] D. R. O. Morales, "Bases matemáticas del Procesamiento Digital de Imágenes. ," presented at the Otras transformadas discretas 2D y ruido en imágenes., 2011. [10] L. J. P., "Fast normalized cross-correlation," Image Processing and Pattern Recognition Society, pp. 120-123, 1995. [11] P. Paul, et al., "Automatic noise quantification for confocal fluorescence microscopy images," Computerized Medical Imaging and Graphics, vol. 34, 2010. [12] R. Sakuldee and S. Udomhunsakul, "Objective Performance of Compressed Image Quality Assessments," PROCEDINGS OF WORLD ACADEMY OF SCIENCE AND TACNOLOGY, vol. 1307-6884, p. 2, December, 26 2007. REFERENCIAS BIBLIOGRÁFICAS 43 [14] P. Sarder and A. Nehorai, "Deconvolution Methods for 3-D Fluorescence Microscopy Images," IEEE SIGNAL PROCESSING MAGAZINE, vol. 45, p. 10, Mayo 2006. [15] G. Selvaggio, et al. (2011, Evaluation of the Expression Level of a Fluorescent Protein in Single Cells through Digital Image Processing 33. [16] B. Shrestha, et al., "JPEG2000: IMAGE QUALITY METRICS " Starkville, p. 3, Marzo, 17 2006. [17] I. Smal, et al., "PARTICLE FILTERING FOR MULTIPLE OBJECT TRACKING IN MOLECULAR CELL BIOLOGY," p. 3, Junio,12 2009. [18] Z. Wang, et al., "Image quality assessment: From error visibility to structural similarity," IEEE Transactios on Image Processing, vol. 13, pp. 600-612, Abril 2004. [19] T. M. Works, "Ayuda del software Matlab," ed, 2009. [20] Wales, J. and L. Sanger (2001). Microscopía. Wikipedia. [21] Rao, D. V., N.Sudhakar, et al. (2006). An Image Quality Assessment Technique Based on Visual Regions of Interest Weighted Structural Similarity. GVIP Journal 6(2) [22] Burningham, N., Z. Pizlo, et al. (2002). Image Quality Metrics. Encyclopedia of Imaging Science and Technology. 1. [23] Farrell, J. E. (1999). Image Quality Evaluation. Colour. Imaging: Vision and Technology. L. W. M. a. M. R. Luo. [24] L.Soustelle, 2006 #20 ANEXOS 44 ANEXOS. ANEXOS Anexo I Códigos programados en Matlab. %% %% FILTRADO IMAGENES POISSON %% inicializado valores n=2; k=2; f=2; x=1; y=1; cont=1; nombre=0;name_P=0;name_G=1;name_S=1; conteo=1; im_cont_G=1; z=2; varianza=0; result_4_SNR_P_1=zeros(x,y); result_5_MSE_P_1=zeros(x,y); result_6_PSNR_P_1=zeros(x,y); result_7_SC_P_1=zeros(x,y); result_8_NCC_P_1=zeros(x,y); result_9_MSSIM_P_1=zeros(x,y); result_4_SNR_P_2=zeros(x,y); result_5_MSE_P_2=zeros(x,y); result_6_PSNR_P_2=zeros(x,y); result_7_SC_P_2=zeros(x,y); result_8_NCC_P_2=zeros(x,y); result_9_MSSIM_P_2=zeros(x,y); result=cell(x,y); result_speckle=cell(x,y); result_ssim_map_G=cell(x,y); 45 ANEXOS result_ssim_map_P=cell(x,y); result_ssim_map_S=cell(x,y); filt=cell(x,y); result(1,1)={str2mat('imagenes')}; %% FILTRADO IMAGENES POISSON while conteo<=2 A=im2double(imread(strcat... ('C:\Users\Administrador\Desktop\will\contaminadas\poisson\',... num2str(im_cont_G),'.bmp'))); ventana_G=3; g=1; tipo=1; s=1; filt(1,s)={str2mat(strcat('VAR=',num2str(im_cont_G)))}; p = 2;i=1; result(1,p)={str2mat('imagen_poisson')}; while tipo<=26 p=p+1; 46 ANEXOS result(1,p)={str2mat(strcat('EXP=',num2str(i)))}; result_ssim_map_P(1,g)={str2mat(strcat('e*10^',num2str(i)))}; result_4_SNR_P_1(1,g)=i; result_4_SNR_P_2(1,g)=i; result_5_MSE_P_1(1,g)=i; result_5_MSE_P_2(1,g)=i; result_6_PSNR_P_1(1,g)=i; result_6_PSNR_P_2(1,g)=i; result_7_SC_P_1(1,g)=i; result_7_SC_P_2(1,g)=i; result_8_NCC_P_1(1,g)=i; result_8_NCC_P_2(1,g)=i; result_9_MSSIM_P_1(1,g)=i; result_9_MSSIM_P_2(1,g)=i; %% FILTRADO POR GAUSSIAN %sigma desviacion estandar varianza=varianza+0.02; sigma=varianza^(1/2); H = fspecial('gaussian', ventana_G, sigma); imf_G_stand = imfilter(A, H); %llama a funcion calidad [PSNR,SC,NCC,mse,snr]=calidad(A,imf_G_stand); [mssim, ssim_map_G] = ssim_index(A,imf_G_stand); result(n,p)={snr}; result_4_SNR_P_1(f,g)=snr; result_5_MSE_P_1(f,g)=mse; result_6_PSNR_P_1(f,g)=PSNR; 47 ANEXOS result_7_SC_P_1(f,g)=SC; result_8_NCC_P_1(f,g)=NCC; result_9_MSSIM_P_1(f,g)=mssim; % %% FILTRADO POR WAVELET [thr,sorh,keepapp,crit] = ddencmp('den','wp',A); wavelet={'haar' 'dmey' 'db2' 'db3' 'db4' 'db5'... 'db6' 'db7' 'sym2' 'sym3' 'sym4'... 'sym5' 'sym6'}; t=1; col=1; fil=1; while(t<=length(wavelet)) imf_WV_stand = wpdencmp(A,sorh,1,cell2mat(wavelet(t)),crit,thr,keepapp); %llama a funcion calidad [PSNR,SC,NCC,mse,snr]=calidad(A,imf_WV_stand); [mssim, ssim_map_WV] = ssim_index(A,imf_WV_stand); % result(n,p)={snr}; result_4_SNR_P_2(fil,col)=snr; result_5_MSE_P_2(fil,col)=mse; result_6_PSNR_P_2(fil,col)=PSNR; result_7_SC_P_2(fil,col)=SC; 48 ANEXOS result_8_NCC_P_2(fil,col)=NCC; result_9_MSSIM_P_2(fil,col)=mssim; col=col+1; end t=t+1; nivel=1; col=1; fil=fil+1; end i=i+1; name_P=name_P+1; % IMWRITE imwrite(imf_G_stand,strcat... ('C:\Users\Administrador\Desktop\will\filtradas\poisson\GAUSS\',... num2str(name_P),'.bmp')) imwrite(imf_WV_stand,strcat... ('C:\Users\Administrador\Desktop\will\filtradas\poisson\WAVELET\',... num2str(name_P),'.bmp')) imwrite(ssim_map_G,strcat... ('C:\Users\Administrador\Desktop\will\filtradas\SSIM_MAP\GAUSSIAN\',... num2str(name_P),'.bmp')) imwrite(ssim_map_WV,strcat... ('C:\Users\Administrador\Desktop\will\filtradas\SSIM_MAP\WAVELET\',... 49 ANEXOS num2str(name_P),'.bmp')) filt(z,s)= {imf_G_stand};s=s+1; filt(z,s)= {imf_WV_stand}; im_cont_G=im_cont_G+1; tipo=tipo+1; z=z+1; name_S=name_S+1; ventana_G=ventana_G+1; g=g+1; end f=f+1; conteo=conteo+1 % EXPORTANDO A EXCEL xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_4_SNR_P_1',... result_4_SNR_P_1) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_4_SNR_P_2',... result_4_SNR_P_2) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_5_MSE_P_1',... result_5_MSE_P_1) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_5_MSE_P_2',... result_5_MSE_P_2) 50 ANEXOS xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_6_PSNR_P_1',... result_6_PSNR_P_1) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_6_PSNR_P_2',... result_6_PSNR_P_2) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_7_SC_P_1',... result_7_SC_P_1) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_7_SC_P_2',... result_7_SC_P_2) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_8_NCC_P_1',... result_8_NCC_P_1) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_8_NCC_P_2',... result_8_NCC_P_1) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_9_MSSI_P_1',... result_9_MSSIM_P_1) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_9_MSSI_P_2',... result_9_MSSIM_P_2) %% %% FILTRADO IMAGENES SPECKLE clear all;clc %% inicializado valores n=2; k=2; f=2; x=1; y=1; cont=1; name_S=1; conteo=1; result_4_SNR_S_1=zeros(x,y); result_5_MSE_S_1=zeros(x,y); result_6_PSNR_S_1=zeros(x,y); 51 ANEXOS result_7_SC_S_1=zeros(x,y); result_8_NCC_S_1=zeros(x,y); result_9_MSSIM_S_1=zeros(x,y); result_4_SNR_S_2=zeros(x,y); result_5_MSE_S_2=zeros(x,y); result_6_PSNR_S_2=zeros(x,y); result_7_SC_S_2=zeros(x,y); result_8_NCC_S_2=zeros(x,y); result_9_MSSIM_S_2=zeros(x,y); result=cell(x,y); result_speckle=cell(x,y); result_ssim_map_G=cell(x,y); result_ssim_map_P=cell(x,y); result_ssim_map_S=cell(x,y); filt=cell(x,y); result(1,1)={str2mat('imagenes')}; im_cont_S=1; im_cont_P=1; varianza=0; z=2; while conteo<=50 A=im2double(imread(strcat... 52 ANEXOS ('C:\Users\Administrador\Desktop\will\contaminadas\speckle\',... num2str(im_cont_S),'.bmp'))); ventana_G=3; g=1; tipo=1; s=1; filt(1,s)={str2mat(strcat('VAR=',num2str(im_cont_S)))}; p = 2;i=1; result(1,p)={str2mat('imagen_poisson')}; while tipo<=26 p=p+1; result(1,p)={str2mat(strcat('EXP=',num2str(i)))}; result_ssim_map_P(1,g)={str2mat(strcat('e*10^',num2str(i)))}; result_4_SNR_S_1(1,g)=i; result_4_SNR_S_2(1,g)=i; result_5_MSE_S_1(1,g)=i; result_5_MSE_S_2(1,g)=i; result_6_PSNR_S_1(1,g)=i; result_6_PSNR_S_2(1,g)=i; result_7_SC_S_1(1,g)=i; result_8_NCC_S_1(1,g)=i; result_7_SC_S_2(1,g)=i; result_8_NCC_S_2(1,g)=i; result_9_MSSIM_S_1(1,g)=i; result_9_MSSIM_S_2(1,g)=i; %% FILTRADO POR GAUSSIAN %sigma desviacion estandar 53 ANEXOS varianza=varianza+0.02; sigma=varianza^(1/2); H = fspecial('gaussian', ventana_G, sigma); imf_G_stand = imfilter(A, H); %llama a funcion calidad [PSNR,SC,NCC,mse,snr]=calidad(A,imf_G_stand); [mssim, ssim_map_G] = ssim_index(A,imf_G_stand); result_9_MSSIM_S_1(f,g)=mssim; % result(n,p)={snr}; result_4_SNR_S_1(f,g)=snr; result_5_MSE_S_1(f,g)=mse; result_6_PSNR_S_1(f,g)=PSNR; result_7_SC_S_1(f,g)=SC; result_8_NCC_S_1(f,g)=NCC; %% FILTRADO POR WAVELET [thr,sorh,keepapp,crit] = ddencmp('den','wp',A); wavelet={'haar' 'dmey' 'db2' 'db3' 'db4' 'db5'... 'db6' 'db7' 'sym2' 'sym3' 'sym4'... 'sym5' 'sym6'}; 54 ANEXOS t=1; col=1; fil=1; while(t<=length(wavelet)) % while(nivel<=2) imf_WV_stand = wpdencmp(A,sorh,1,cell2mat(wavelet(t)),crit,thr,keepapp); %llama a funcion calidad [PSNR,SC,NCC,mse,snr]=calidad(A,imf_WV_stand); [mssim, ssim_map_WV] = ssim_index(A,imf_WV_stand); % result(n,p)={snr}; result_4_SNR_P_2(fil,col)=snr; result_5_MSE_P_2(fil,col)=mse; result_6_PSNR_P_2(fil,col)=PSNR; result_7_SC_P_2(fil,col)=SC; result_8_NCC_P_2(fil,col)=NCC; result_9_MSSIM_P_2(fil,col)=mssim; col=col+1; end t=t+1; nivel=1; 55 ANEXOS col=1; fil=fil+1; i=i+1; %% IMWRITE imwrite(imf_G_stand,strcat... ('C:\Users\Administrador\Desktop\will\filtradas\speckle\GAUSS\',... num2str(name_S),'.bmp')) imwrite(imf_WV_stand,strcat... ('C:\Users\Administrador\Desktop\will\filtradas\speckle\WAVELET\',... num2str(name_S),'.bmp')) imwrite(ssim_map_G,strcat... ('C:\Users\Administrador\Desktop\will\filtradas\SSIM_MAP\GAUSSIAN\',... num2str(name_S),'.bmp')) imwrite(ssim_map_WV,strcat... ('C:\Users\Administrador\Desktop\will\filtradas\SSIM_MAP\WAVELET\',... num2str(name_S),'.bmp')) filt(z,s)= {imf_G_stand};s=s+1; filt(z,s)= {imf_WV_stand}; im_cont_S=im_cont_S+1; tipo=tipo+1; z=z+1; name_S=name_S+1; % ventana_G=ventana_G+1; 56 ANEXOS g=g+1; % end f=f+1; conteo=conteo+1 end %% EXPORTANDO A EXCEL xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_4_SNR_S_1',... result_4_SNR_S_1) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_4_SNR_S_2',... result_4_SNR_S_2) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_5_MSE_S_1',... result_5_MSE_S_1) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_5_MSE_S_2',... result_5_MSE_S_2) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_6_PSNR_S_1',... result_6_PSNR_S_1) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_6_PSNR_S_2',... result_6_PSNR_S_2) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_7_SC_S_1',... result_7_SC_S_1) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_7_SC_S_2',... result_7_SC_S_2) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_8_NCC_S_1',... 57 ANEXOS result_8_NCC_S_1) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_8_NCC_S_2',... result_8_NCC_S_1) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_9_MSSI_S_1',... result_9_MSSIM_S_1) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_9_MSSI_S_2',... result_9_MSSIM_S_2) %% %% FILTRADO IMAGENES GAUSSIAN clear all;clc %% inicializado valores n=2; k=2; f=2; x=1; y=1; cont=1; nombre=0;name_P=0;name_G=1;name_S=1; conteo=1; varianza=0; result_4_SNR_G_1=zeros(x,y); result_5_MSE_G_1=zeros(x,y); result_6_PSNR_G_1=zeros(x,y); result_7_SC_G_1=zeros(x,y); result_8_NCC_G_1=zeros(x,y); result_9_MSSIM_G_1=zeros(x,y); result_4_SNR_G_2=zeros(x,y); result_5_MSE_G_2=zeros(x,y); result_6_PSNR_G_2=zeros(x,y); result_7_SC_G_2=zeros(x,y); 58 ANEXOS result_8_NCC_G_2=zeros(x,y); result_9_MSSIM_G_2=zeros(x,y); result=cell(x,y); result_speckle=cell(x,y); result_ssim_map_G=cell(x,y); result_ssim_map_P=cell(x,y); result_ssim_map_S=cell(x,y); filt=cell(x,y); result(1,1)={str2mat('imagenes')}; im_cont_G=1; z=2; %% while conteo<=50 A=im2double(imread(strcat... ('C:\Users\Administrador\Desktop\will\contaminadas\gauss\',... num2str(im_cont_G),'.bmp'))); ventana_G=3; g=1; tipo=1; s=1; filt(1,s)={str2mat(strcat('VAR=',num2str(im_cont_G)))}; p = 2;%i=1; result(1,p)={str2mat('imagen_poisson')}; 59 ANEXOS while tipo<=26 p=p+1; result_4_SNR_G_1(1,g)=i; result_4_SNR_G_2(1,g)=i; result_5_MSE_G_1(1,g)=i; result_5_MSE_G_2(1,g)=i; result_6_PSNR_G_1(1,g)=i; result_6_PSNR_G_2(1,g)=i; result_7_SC_G_1(1,g)=i; result_7_SC_G_2(1,g)=i; result_8_NCC_G_1(1,g)=i; result_8_NCC_G_2(1,g)=i; result_9_MSSIM_G_1(1,g)=i; result_9_MSSIM_G_2(1,g)=i; %% FILTRADO POR GAUSSIAN %varianza desviacion estandar varianza=varianza+0.02; sigma=varianza^(1/2); H = fspecial('gaussian', ventana_G, sigma); imf_G_stand = imfilter(A, H); %llama a funcion calidad [PSNR,SC,NCC,mse,snr]=calidad(A,imf_G_stand); [mssim, ssim_map_G] = ssim_index(A,imf_G_stand); result(n,p)={snr}; result_4_SNR_G_1(f,g)=snr; result_5_MSE_G_1(f,g)=mse; result_6_PSNR_G_1(f,g)=PSNR; 60 ANEXOS result_7_SC_G_1(f,g)=SC; result_8_NCC_G_1(f,g)=NCC; result_9_MSSIM_G_1(f,g)=mssim; %% FILTRADO POR WAVELET [thr,sorh,keepapp,crit] = ddencmp('den','wp',A); wavelet={'haar' 'dmey' 'db2' 'db3' 'db4' 'db5'... 'db6' 'db7' 'sym2' 'sym3' 'sym4'... 'sym5' 'sym6'}; t=1; col=1; fil=1; while(t<=length(wavelet)) imf_WV_stand = wpdencmp(A,sorh,1,cell2mat(wavelet(t)),crit,thr,keepapp); %llama a funcion calidad [PSNR,SC,NCC,mse,snr]=calidad(A,imf_WV_stand); [mssim, ssim_map_WV] = ssim_index(A,imf_WV_stand); % result(n,p)={snr}; result_4_SNR_P_2(fil,col)=snr; result_5_MSE_P_2(fil,col)=mse; result_6_PSNR_P_2(fil,col)=PSNR; result_7_SC_P_2(fil,col)=SC; result_8_NCC_P_2(fil,col)=NCC; 61 ANEXOS result_9_MSSIM_P_2(fil,col)=mssim; col=col+1; end t=t+1; nivel=1; col=1; fil=fil+1; i=i+1; name_P=name_P+1; %% IMWRITE imwrite(imf_G_stand,strcat... ('C:\Users\Administrador\Desktop\will\filtradas\gauss\GAUSSIAN\',... num2str(name_S),'.bmp')) imwrite(imf_WV_stand,strcat... ('C:\Users\Administrador\Desktop\will\filtradas\gauss\WAVELET\',... num2str(name_S),'.bmp')) imwrite(ssim_map_G,strcat... ('C:\Users\Administrador\Desktop\will\filtradas\SSIM_MAP\GAUSSIAN\',... num2str(name_S),'.bmp')) imwrite(ssim_map_WV,strcat... ('C:\Users\Administrador\Desktop\will\filtradas\SSIM_MAP\WAVELET\',... num2str(name_S),'.bmp')) filt(z,s)= {imf_G_stand};s=s+1; filt(z,s)= {imf_WV_stand}; 62 ANEXOS %% im_cont_G=im_cont_G+1; tipo=tipo+1; z=z+1; name_S=name_S+1; g=g+1; % end f=f+1; conteo=conteo+1 end %% EXPORTANDO A EXCEL xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_4_SNR_G_1',... result_4_SNR_G_1) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_4_SNR_G_2',... result_4_SNR_G_2) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_5_MSE_G_1',... result_5_MSE_G_1) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_5_MSE_G_2',... result_5_MSE_G_2) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_6_PSNR_G_1',... result_6_PSNR_G_1) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_6_PSNR_G_2',... result_6_PSNR_G_2) 63 ANEXOS xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_7_SC_G_1',... result_7_SC_G_1) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_7_SC_G_2',... result_7_SC_G_2) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_8_NCC_G_1',... result_8_NCC_G_1) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_8_NCC_G_2',... result_8_NCC_G_1) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_9_MSSI_G_1',... result_9_MSSIM_G_1) xlswrite('C:\Users\Administrador\Desktop\will\xls filtradas\result_9_MSSI_G_2',... result_9_MSSIM_G_2) CONTAMINACIÓN DE LAS IMÁGENES % function[]=kk() % remite a una función creada para facilitar el trabajo con la % contaminación de ruido poisson, gaussian y speckle. se obtienen %valores % de calidad como la SNR, el MSE, PSNR, SC, NCC,MSSIM(respecto a % la imagen original) además de la imagen contaminada. todos estos %valores % obtenidos son guardados en las matrices RESULT para su posterior % análisis. además son ploteados los valores de las medidas de calidad %de % la imagen contaminada respecto a la original. se crearon, para %llevar a cabo lo % anteriormente planteado, varias funciónes donde se programaron %fragmentos % del programa con el objetivo de acomodar el trabajo. clear all;close all;clc 64 ANEXOS %inicializado valores n=2; k=1; f=2; x=1; y=1; cont=0; z=2; nombre=0;name_P=0;name_G=0;name_S=0; %matrices para almacenar velores obtenidos e imágenes result_4_SNR_S=zeros(x,y); result_4_SNR_G=zeros(x,y); result_5_MSE_S=zeros(x,y); result_5_MSE_G=zeros(x,y); result_6_PSNR_S=zeros(x,y); result_6_PSNR_G=zeros(x,y); result_7_SC_S=zeros(x,y); result_7_SC_G=zeros(x,y); result_8_NCC_S=zeros(x,y); result_8_NCC_G=zeros(x,y); result_9_MSSIM_S=zeros(x,y); result_9_MSSIM_G=zeros(x,y); result_4_SNR_P=zeros(x,y); result_5_MSE_P=zeros(x,y); result_6_PSNR_P=zeros(x,y); result_7_SC_P=zeros(x,y); result_8_NCC_P=zeros(x,y); result_9_MSSIM_P=zeros(x,y); result=cell(x,y); result_speckle=cell(x,y); result_ssim_map_G=cell(x,y); result_ssim_map_P=cell(x,y); result_ssim_map_S=cell(x,y); filt=cell(x,y); result(1,1)={str2mat('imagenes')}; while k<=50 65 ANEXOS cont=cont+1; % leer la imagen en la dirección especificada A=im2double(rgb2gray(imread(strcat... ('C:\Users\Administrador\Desktop\will\copia\',num2str(k),'.bmp')))); % guardarla en la matriz result(n,1)={A}; %% contaminado con ruido poisson g = 0;p = 2;i=1; result(1,p)={str2mat('imagen_poisson')}; while i<=26 g=g+1;p=p+1; result(1,p)={str2mat(strcat('EXP=',num2str(i)))}; result_ssim_map_P(1,g)={str2mat(strcat('e*10^',num2str(i)))}; result_4_SNR_P(1,g)=i; result_5_MSE_P(1,g)=i; result_6_PSNR_P(1,g)=i; result_7_SC_P(1,g)=i; result_8_NCC_P(1,g)=i; result_9_MSSIM_P(1,g)=i; [Q_1]=poisson(A,i); result(n,p)={Q_1}; p = p+1; result(1,p)={str2mat('SNR')}; 66 ANEXOS 67 %llama a función calidad [PSNR,SC,NCC,mse,snr]=calidad(A,Q_1); [mssim, ssim_map] = ssim_index(A,Q_1); result_9_MSSIM_P(f,g)=mssim; result_ssim_map_P(f,g)={ssim_map}; result(n,p)={snr}; result_4_SNR_P(f,g)=snr; result_5_MSE_P(f,g)=mse; result_6_PSNR_P(f,g)=PSNR; result_7_SC_P(f,g)=SC; result_8_NCC_P(f,g)=NCC; i=i+1; name_P=name_P+1; imwrite(Q_1,strcat('C:\Users\Administrador\Desktop\will\contaminadas\poisson\',num2str(name _P),'.bmp')) end %% contaminado con ruido gaussian var = 0.01; p = p+1; result(1,p)={str2mat('imagen_gauss')};p = p+1; h = 1; s = 1; while var<=0.52 result(1,p)={str2mat(strcat('VAR=',num2str(var)))}; filt(1,s)={str2mat(strcat('VAR=',num2str(var)))}; ANEXOS result_ssim_map_G(1,h)={str2mat(strcat('VAR=',num2str(var)))}; result_4_SNR_G(1,h)=var; result_5_MSE_G(1,h)=var; result_6_PSNR_G(1,h)=var; result_7_SC_G(1,h)=var; result_8_NCC_G(1,h)=var; result_9_MSSIM_G(1,h)=var; result(1,p+1)={str2mat('SNR')}; [W]=gaussian(A,var); result(n,p)={W}; p = p+1; [PSNR,SC,NCC,mse,snr]=calidad(A,W);%analisis de calidad a la imagen ruidosa [mssim, ssim_map] = ssim_index(A,W); % guardando en las matrices asignadas a cada analisis result_9_MSSIM_G(f,h)=mssim; result_ssim_map_G(f,h)={ssim_map}; result_4_SNR_G(f,h)=snr; result_5_MSE_G(f,h)=mse; result_6_PSNR_G(f,h)=PSNR; result_7_SC_G(f,h)=SC; result_8_NCC_G(f,h)=NCC; result(n,p)={snr}; name_G=name_G+1; imwrite(W,strcat... ('C:\Users\Administrador\Desktop\will\contaminadas\gauss\',num2str(name_G),'.bmp')) 68 ANEXOS p=p+1; h=h+1; var = var+0.02; end %% contaminado con ruido SPECKLE var = 0.01; j = 1; name=0; result(1,p)={str2mat('imagen_speckle')};p = p+1; while var<=0.52 result(1,p)={str2mat(strcat('VAR=',num2str(var)))}; result_ssim_map_S(1,j)={str2mat(strcat('VAR=',num2str(var)))}; result_speckle(1,j)={str2mat(strcat('VAR=',num2str(var)))}; result_4_SNR_S(1,j)=var; result_5_MSE_S(1,j)=var; result_6_PSNR_S(1,j)=var; result_7_SC_S(1,j)=var; result_8_NCC_S(1,j)=var; result_9_MSSIM_S(1,j)=var; result(1,p+1)={str2mat('SNR')}; [W]=speckle(A,var); result(n,p)={W}; %result_speckle(f,j)={XD}; %llama a función calidad 69 ANEXOS [PSNR,SC,NCC,mse,snr]=calidad(A,W); [mssim, ssim_map] = ssim_index(A,W); result_9_MSSIM_S(f,j)=mssim; result_ssim_map_S(f,j)={ssim_map}; p = p+1; result(n,p)={snr}; p= p+1; result_4_SNR_S(f,j)=snr; result_5_MSE_S(f,j)=mse; result_6_PSNR_S(f,j)=PSNR; result_7_SC_S(f,j)=SC; result_8_NCC_S(f,j)=NCC; name_S=name_S+1; imwrite(W,strcat... ('C:\Users\Administrador\Desktop\will\contaminadas\speckle\',num2str(name_S),'.bmp')) j=j+1; var = var+0.02; end conteo=cont z=z+1; f=f+1; k=k+1; n=n+1; end 70 ANEXOS 71 xlswrite('C:\Users\Administrador\Desktop\will\xls contaminadas\result_4_SNR_S',result_4_SNR_S) xlswrite('C:\Users\Administrador\Desktop\will\xls contaminadas\result_5_MSE_S',result_5_MSE_S) xlswrite('C:\Users\Administrador\Desktop\will\xls contaminadas\result_6_PSNR_S',result_6_PSNR_S) xlswrite('C:\Users\Administrador\Desktop\will\xls contaminadas\result_7_SC_S',result_7_SC_S) xlswrite('C:\Users\Administrador\Desktop\will\xls contaminadas\result_8_NCC_S',result_8_NCC_S) xlswrite('C:\Users\Administrador\Desktop\will\xls contaminadas\result_9_MSSIM_S',result_9_MSSIM_S) xlswrite('C:\Users\Administrador\Desktop\will\xls contaminadas\result_4_SNR_G',result_4_SNR_G) xlswrite('C:\Users\Administrador\Desktop\will\xls contaminadas\result_5_MSE_G',result_5_MSE_G) xlswrite('C:\Users\Administrador\Desktop\will\xls contaminadas\result_6_PSNR_G',result_6_PSNR_G) xlswrite('C:\Users\Administrador\Desktop\will\xls contaminadas\result_7_SC_G',result_7_SC_G) xlswrite('C:\Users\Administrador\Desktop\will\xls contaminadas\result_8_NCC_G',result_8_NCC_G) xlswrite('C:\Users\Administrador\Desktop\will\xls contaminadas\result_9_MSSIM_G',result_9_MSSIM_G) xlswrite('C:\Users\Administrador\Desktop\will\xls contaminadas\result_4_SNR_P',result_4_SNR_P) xlswrite('C:\Users\Administrador\Desktop\will\xls contaminadas\result_5_MSE_P',result_5_MSE_P) ANEXOS 72 xlswrite('C:\Users\Administrador\Desktop\will\xls contaminadas\result_6_PSNR_P',result_6_PSNR_P) xlswrite('C:\Users\Administrador\Desktop\will\xls contaminadas\result_7_SC_P',result_7_SC_P) xlswrite('C:\Users\Administrador\Desktop\will\xls contaminadas\result_8_NCC_P',result_8_NCC_P) xlswrite('C:\Users\Administrador\Desktop\will\xls contaminadas\result_9_MSSIM_P',result_9_MSSIM_P) %% cálculo de las medias de los resultados obtenidos de los análisis de %% calidad mean_SNR_speckle=mean(result_4_SNR_S(2:end,:)); mean_SNR_gaussian=mean(result_4_SNR_G(2:end,:)); mean_SNR_poisson=mean(result_4_SNR_P(2:end,:)); mean_MSE_speckle=mean(result_5_MSE_S(2:end,:)); mean_MSE_gaussian=mean(result_5_MSE_G(2:end,:)); mean_MSE_poisson=mean(result_5_MSE_P(2:end,:)); mean_PSNR_speckle=mean(result_6_PSNR_S(2:end,:)); mean_PSNR_gaussian=mean(result_6_PSNR_G(2:end,:)); mean_PSNR_poisson=mean(result_6_PSNR_P(2:end,:)); mean_SC_speckle=mean(result_7_SC_S(2:end,:)); mean_SC_gaussian=mean(result_7_SC_G(2:end,:)); mean_SC_poisson=mean(result_7_SC_P(2:end,:)); mean_NCC_speckle=mean(result_8_NCC_S(2:end,:)); mean_NCC_gaussian=mean(result_8_NCC_G(2:end,:)); ANEXOS 73 mean_NCC_poisson=mean(result_8_NCC_P(2:end,:)); mean_MSSIM_speckle=mean(result_9_MSSIM_S(2:end,:)); mean_MSSIM_gaussian=mean(result_9_MSSIM_G(2:end,:)); mean_MSSIM_poisson=mean(result_9_MSSIM_P(2:end,:)); x1 = result_5_MSE_G(1,:); %% ploteo de las medias de calidad figure(1); subplot(321);plot(x1,mean_MSE_speckle,x1,mean_MSE_gaussian,x1,mean_MSE_poisson);grid on legend('media MSE speckle', 'media MSE gaussian',' media MSE poisson'); xlabel('VARIANZA 0~1 (+0.02)');ylabel('MSE');title... ('Medias de los Resultados de Imagenes Contaminadas con Ruido Gaussano y Speckle'); subplot(322); plot(x1,mean_SNR_speckle,x1,mean_SNR_gaussian,x1,mean_SNR_poisson);grid on legend('media SNR speckle', 'media SNR gaussian','media SNR poisson'); xlabel('VARIANZA 0~1 (+0.02)');ylabel('SNR') subplot(323); plot(x1,mean_PSNR_speckle,x1,mean_PSNR_gaussian,x1,log10(mean_PSNR_poisson));grid on legend('media PSNR speckle', 'media PSNR gaussian','log10(media PSNR poisson)'); xlabel('VARIANZA 0~1 (+0.02)');ylabel('PSNR(valor poisson log)') subplot(324); plot(x1,mean_SC_speckle,x1,mean_SC_gaussian,x1,mean_SC_poisson);grid on legend('media SC speckle', 'media SC gaussian','media SC poisson'); xlabel('VARIANZA 0~1 (+0.02)');ylabel('SC') subplot(325); plot(x1,mean_NCC_speckle,x1,mean_NCC_gaussian,x1,mean_NCC_poisson);grid on ANEXOS 74 legend('media NCC speckle', 'media NCC gaussian','media NCC poisson'); xlabel('VARIANZA 0~1 (+0.02)');ylabel('NCC') subplot(326); plot(x1,mean_MSSIM_speckle,x1,mean_MSSIM_gaussian,x1,mean_MSSIM_poisson);grid on legend('media MSSIM speckle', 'media MSSIM gaussian','media MSSIM poisson'); xlabel('VARIANZA 0~1 (+0.02)');ylabel('MSSIM') %% Ploteo de los valores obtenidos de las medidas de calidad(valor de %%la medida v/s varianza) % % SNR figure(2); subplot(311);plot(result_4_SNR_G(1,:),result_4_SNR_G(2:end,:),'-s','LineWidth',1,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','g',... 'MarkerSize',5);grid on;xlabel('VARIANZA');ylabel('SNR gaussian'); title('Relacion Señal a Ruido para cada proceso'); subplot(312);plot(result_4_SNR_S(1,:),result_4_SNR_S(2:end,:),'-s','LineWidth',1,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','g',... 'MarkerSize',5);grid on;xlabel('VARIANZA');ylabel('SNR speckle'); subplot(313);plot(result_4_SNR_P(1,:),log10(result_4_SNR_P(2:end,:)),'-s','LineWidth',1,... 'MarkerEdgeColor','k',... ANEXOS 'MarkerFaceColor','g',... 'MarkerSize',5);grid on;xlabel('e*10');ylabel('log_1_0(SNR poisson)'); % % MSE figure(3); subplot(311);plot(result_5_MSE_G(1,:),result_5_MSE_G(2:end,:),'-s','LineWidth',1,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','g',... 'MarkerSize',5);grid on;xlabel('VARIANZA');ylabel('MSE gaussian'); title('Error Cuadratico Medio para cada proceso'); subplot(312);plot(result_5_MSE_S(1,:),result_5_MSE_S(2:end,:),'-s','LineWidth',1,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','g',... 'MarkerSize',5);grid on;xlabel('VARIANZA');ylabel('MSE speckle'); subplot(313);plot(result_5_MSE_P(1,:),log10(result_5_MSE_P(2:end,:)),'-s','LineWidth',1,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','g',... 'MarkerSize',5);grid on;xlabel('e*10');ylabel('log_1_0(MSE poisson)'); % % PSNR figure(4); subplot(311);plot(result_6_PSNR_G(1,:),result_6_PSNR_G(2:end,:),'-s','LineWidth',1,... 75 ANEXOS 'MarkerEdgeColor','k',... 'MarkerFaceColor','g',... 'MarkerSize',5);grid on;xlabel('VARIANZA');ylabel('PSNR gaussian'); title('SNR de picos'); subplot(312);plot(result_6_PSNR_S(1,:),result_6_PSNR_S(2:end,:),'-s','LineWidth',1,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','g',... 'MarkerSize',5);grid on;xlabel('VARIANZA');ylabel('PSNR speckle'); subplot(313);plot(result_6_PSNR_P(1,:),log10(result_6_PSNR_P(2:end,:)),'-s','LineWidth',1,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','g',... 'MarkerSize',5);grid on;xlabel('e*10');ylabel('log_1_0(PSNR poisson)'); % % CONTENIDO ESTRUCTURAL figure(5); subplot(311);plot(result_7_SC_G(1,:),result_7_SC_G(2:end,:),'-s','LineWidth',1,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','g',... 'MarkerSize',5);grid on;xlabel('VARIANZA');ylabel('SC gaussian'); title('contenido estructural'); subplot(312);plot(result_7_SC_S(1,:),result_7_SC_S(2:end,:),'-s','LineWidth',1,... 76 ANEXOS 'MarkerEdgeColor','k',... 'MarkerFaceColor','g',... 'MarkerSize',5);grid on;xlabel('VARIANZA');ylabel('SC speckle'); subplot(313);plot(result_7_SC_P(1,:),log10(result_7_SC_P(2:end,:)),'-s','LineWidth',1,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','g',... 'MarkerSize',5);grid on;xlabel('e*10');ylabel('log_1_0(SC poisson)'); % % CORRELACION CRUZADA NORMALIZADA figure(6); subplot(311);plot(result_8_NCC_G(1,:),result_8_NCC_G(2:end,:),'-s','LineWidth',1,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','g',... 'MarkerSize',5);grid on;xlabel('VARIANZA');ylabel('NCC gaussian'); title('CORRELACION CRUZADA NORMALIZADA'); subplot(312);plot(result_8_NCC_S(1,:),result_8_NCC_S(2:end,:),'-s','LineWidth',1,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','g',... 'MarkerSize',5);grid on;xlabel('VARIANZA');ylabel('NCC speckle'); subplot(313);plot(result_8_NCC_P(1,:),log10(result_8_NCC_P(2:end,:)),'-s','LineWidth',1,... 'MarkerEdgeColor','k',... 77 ANEXOS 'MarkerFaceColor','g',... 'MarkerSize',5);grid on;xlabel('e*10');ylabel('log_1_0(NCC poisson)'); % % MEDIA DEL INDICE DE SIMILITUD ESTRUCTURAL figure(7); subplot(311);plot(result_9_MSSIM_G(1,:),result_9_MSSIM_G(2:end,:),'-s','LineWidth',1,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','g',... 'MarkerSize',5);grid on;xlabel('VARIANZA');ylabel('mssim gaussian'); title('MEDIA DEL INDICE DE SIMILITUD ESTRUCTURAL'); subplot(312);plot(result_9_MSSIM_S(1,:),result_9_MSSIM_S(2:end,:),'-s','LineWidth',1,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','g',... 'MarkerSize',5);grid on;xlabel('VARIANZA');ylabel('mssim speckle'); subplot(313);plot(result_9_MSSIM_P(1,:),log10(result_9_MSSIM_P(2:end,:)),'s','LineWidth',1,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','g',... 'MarkerSize',5);grid on;xlabel('e*10');ylabel('log_1_0(mssim poisson)'); PLOTEO DE LAS MEDIAS CALCULADAS %% Leer los resultados 78 ANEXOS result_4_SNR_G_1=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_4_SNR_G_1.xls'); result_4_SNR_G_2=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_4_SNR_G_2.xls'); result_4_SNR_P_1=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_4_SNR_P_1.xls'); result_4_SNR_P_2=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_4_SNR_P_2.xls'); result_4_SNR_S_1=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_4_SNR_S_1.xls'); result_4_SNR_S_2=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_4_SNR_S_2.xls'); result_5_MSE_G_1=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_5_MSE_G_1.xls'); result_5_MSE_G_2=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_5_MSE_G_2.xls'); result_5_MSE_P_1=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_5_MSE_P_1.xls'); result_5_MSE_P_2=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_5_MSE_P_2.xls'); result_5_MSE_S_1=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_5_MSE_S_1.xls'); result_5_MSE_S_2=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_5_MSE_S_2.xls'); 79 ANEXOS result_6_PSNR_G_1=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_6_PSNR_G_1.xls'); result_6_PSNR_G_2=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_6_PSNR_G_2.xls'); result_6_PSNR_P_1=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_6_PSNR_P_1.xls'); result_6_PSNR_P_2=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_6_PSNR_P_2.xls'); result_6_PSNR_S_1=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_6_PSNR_S_1.xls'); result_6_PSNR_S_2=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_6_PSNR_S_2.xls'); result_7_SC_G_1=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_7_SC_G_1.xls'); result_7_SC_G_2=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_7_SC_G_2.xls'); result_7_SC_P_1=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_7_SC_P_1.xls'); result_7_SC_P_2=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_7_SC_P_2.xls'); result_7_SC_S_1=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_7_SC_S_1.xls'); result_7_SC_S_2=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_7_SC_S_2.xls'); 80 ANEXOS result_8_NCC_G_1=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_8_NCC_G_1.xls'); result_8_NCC_G_2=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_8_NCC_G_2.xls'); result_8_NCC_P_1=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_8_NCC_P_1.xls'); result_8_NCC_P_2=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_8_NCC_P_2.xls'); result_8_NCC_S_1=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_8_NCC_S_1.xls'); result_8_NCC_S_2=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_8_NCC_S_2.xls'); result_9_MSSIM_G_1=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_9_MSSI_G_1.xls'); result_9_MSSIM_G_2=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_9_MSSI_G_2.xls'); result_9_MSSIM_P_1=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_9_MSSI_P_1.xls'); result_9_MSSIM_P_2=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_9_MSSI_P_2.xls'); result_9_MSSIM_S_1=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_9_MSSI_S_1.xls'); result_9_MSSIM_S_2=xlsread... ('C:\Users\Administrador\Desktop\will\xls filtradas\result_9_MSSI_S_2.xls'); 81 ANEXOS %% cálculo de media mean_SNR_speckle_1=mean(result_4_SNR_S_1(2:end,:)); mean_SNR_speckle_2=mean(result_4_SNR_S_2(2:end,:)); mean_SNR_gaussian_1=mean(result_4_SNR_G_1(2:end,:)); mean_SNR_gaussian_2=mean(result_4_SNR_G_2(2:end,:)); mean_SNR_poisson_1=mean(result_4_SNR_P_1(2:end,:)); mean_SNR_poisson_2=mean(result_4_SNR_P_2(2:end,:)); mean_MSE_speckle_1=mean(result_5_MSE_S_1(2:end,:)); mean_MSE_speckle_2=mean(result_5_MSE_S_2(2:end,:)); mean_MSE_gaussian_1=mean(result_5_MSE_G_1(2:end,:)); mean_MSE_gaussian_2=mean(result_5_MSE_G_2(2:end,:)); mean_MSE_poisson_1=mean(result_5_MSE_P_1(2:end,:)); mean_MSE_poisson_2=mean(result_5_MSE_P_2(2:end,:)); mean_PSNR_speckle_1=mean(result_6_PSNR_S_1(2:end,:)); mean_PSNR_speckle_2=mean(result_6_PSNR_S_2(2:end,:)); mean_PSNR_gaussian_1=mean(result_6_PSNR_G_1(2:end,:)); mean_PSNR_gaussian_2=mean(result_6_PSNR_G_2(2:end,:)); mean_PSNR_poisson_1=mean(result_6_PSNR_P_1(2:end,:)); mean_PSNR_poisson_2=mean(result_6_PSNR_P_2(2:end,:)); mean_SC_speckle_1=mean(result_7_SC_S_1(2:end,:)); mean_SC_speckle_2=mean(result_7_SC_S_2(2:end,:)); mean_SC_gaussian_1=mean(result_7_SC_G_1(2:end,:)); mean_SC_gaussian_2=mean(result_7_SC_G_2(2:end,:)); 82 ANEXOS 83 mean_SC_poisson_1=mean(result_7_SC_P_1(2:end,:)); mean_SC_poisson_2=mean(result_7_SC_P_2(2:end,:)); mean_NCC_speckle_1=mean(result_8_NCC_S_1(2:end,:)); mean_NCC_speckle_2=mean(result_8_NCC_S_2(2:end,:)); mean_NCC_gaussian_1=mean(result_8_NCC_G_1(2:end,:)); mean_NCC_gaussian_2=mean(result_8_NCC_G_2(2:end,:)); mean_NCC_poisson_1=mean(result_8_NCC_P_1(2:end,:)); mean_NCC_poisson_2=mean(result_8_NCC_P_2(2:end,:)); mean_MSSIM_speckle_1=mean(result_9_MSSIM_S_1(2:end,:)); mean_MSSIM_speckle_2=mean(result_9_MSSIM_S_2(2:end,:)); mean_MSSIM_gaussian_1=mean(result_9_MSSIM_G_1(2:end,:)); mean_MSSIM_gaussian_2=mean(result_9_MSSIM_G_2(2:end,:)); mean_MSSIM_poisson_1=mean(result_9_MSSIM_P_1(2:end,:)); mean_MSSIM_poisson_2=mean(result_9_MSSIM_P_2(2:end,:)); %% PLOTEO DE LAS MEDIAS CALCULADAS TRAS EL FILTRADO l=0.01:0.02:0.53; figure(8); plot(l,mean_MSE_speckle_1,l,mean_MSE_speckle_2,l,mean_MSE_gaussian_1,l,mean_MSE_ga ussian_2);grid on legend('media MSE speckle_1','media MSE speckle_2', 'mean MSE gaussian_1','mean MSE gaussian_2'); xlabel('VARIANZA 0~1 (+0.02)');ylabel('MSE');title('Datos de imagenes filtradas'); figure(9); ANEXOS 84 plot(l,mean_SNR_speckle_1,l,mean_SNR_speckle_2,l,mean_SNR_gaussian_1,l,mean_SNR_gau ssian_2);grid on legend('media SNR speckle_1','media SNR speckle_2', 'mean SNR gaussian_1','mean SNR gaussian_2'); xlabel('VARIANZA 0~1 (+0.02)');ylabel('SNR') figure(10); plot(l,mean_PSNR_speckle_1,l,mean_PSNR_speckle_2,l,mean_PSNR_gaussian_1,l,mean_PSN R_gaussian_2);grid on legend('media PSNR speckle_1','media PSNR speckle_2', 'mean PSNR gaussian_1','mean PSNR gaussian_2'); xlabel('VARIANZA 0~1 (+0.02)');ylabel('PSNR') figure(11); plot(l,mean_SC_speckle_1,l,mean_SC_speckle_2,l,mean_SC_gaussian_1,l,mean_SC_gaussian_ 2);grid on legend('media SC speckle_1','media SC speckle_2', 'mean SC gaussian_1','mean SC gaussian_2'); xlabel('VARIANZA 0~1 (+0.02)');ylabel('SC') figure(12); plot(l,mean_NCC_speckle_1,l,mean_NCC_speckle_2,l,mean_NCC_gaussian_1,l,mean_NCC_ga ussian_2);grid on legend('media NCC speckle_1','media NCC speckle_2', 'mean NCC gaussian_1','mean NCC gaussian_2'); xlabel('VARIANZA 0~1 (+0.02)');ylabel('NCC') figure(13); ANEXOS 85 plot(l,mean_MSSIM_speckle_1,l,mean_MSSIM_speckle_2,l,mean_MSSIM_gaussian_1,l,mean_ MSSIM_gaussian_2);grid on legend('media MSSIM speckle_1','media MSSIM speckle_2', 'mean MSSIM gaussian_1','mean MSSIM gaussian_2'); xlabel('VARIANZA 0~1 (+0.02)');ylabel('MSSIM') ANÁLISIS OBJETIVO DE CALIDAD. Medidas objetivas de calidad implementadas. function[PSNR,SC,NCC,mse,snr]=calidad(A,XD) %%%%análisis objetivo de calidad Tam=numel(A); % %SNR & MSE [snr,mse]=snr2d(A,XD); % PSNR (peak SNR) PSNR = sum(sum(255^2))/(mse*Tam); % SC (Structural Content). SC = sum(sum(A.^2))/sum(sum(XD.^2)); % NCC (Normalized Cross-Correlation). NCC = sum(sum(A.*XD))/sum(sum(XD.^2)); Relacion señal a ruido y error cuadrático medio function [snr,mse]=residual2d(a,b) % Function residual2d(a,b) calculates the signal to noise ratio in dB ANEXOS 86 % and the mse between two images (matrices) a (noiseless) and b (noisy). The syntax is % [snr,mse]=snr2d(a,b); % Checking sizes for comparison. sa=size(a); sb=size(b); sizedif=sa-sb; if sizedif(1)~=0|sizedif(2)~=0 % Matrices of different sizes. error('matrix:mismatch','Trying to compare matrices of different sizes'); end; errmat=a-b; errorenergy=(norm(errmat(:)))^2; signalenergy=(norm(a(:)))^2; mse=errorenergy/length(errmat(:)); snr=10*log10(signalenergy/errorenergy); Indice de similitude estructural function [mssim, ssim_map] = ssim_index(img1, img2, K, window, L) %==================================================================== === %SSIM Index, Version 1.0 ANEXOS %Copyright(c) 2003 Zhou Wang %All Rights Reserved. % %The author is with Howard Hughes Medical Institute, and Laboratory %for Computational Vision at Center for Neural Science and Courant %Institute of Mathematical Sciences, New York University. % if (nargin < 2 | nargin > 5) ssim_index = -Inf; ssim_map = -Inf; return; end if (size(img1) ~= size(img2)) ssim_index = -Inf; ssim_map = -Inf; return; end [M N] = size(img1); if (nargin == 2) if ((M < 11) | (N < 11)) ssim_index = -Inf; ssim_map = -Inf; return 87 ANEXOS end window = fspecial('gaussian', 11, 1.5); % K(1) = 0.01; % default settings K(2) = 0.03; % L = 255; % end if (nargin == 3) if ((M < 11) | (N < 11)) ssim_index = -Inf; ssim_map = -Inf; return end window = fspecial('gaussian', 11, 1.5); L = 255; if (length(K) == 2) if (K(1) < 0 | K(2) < 0) ssim_index = -Inf; ssim_map = -Inf; return; end else ssim_index = -Inf; ssim_map = -Inf; 88 ANEXOS return; end end if (nargin == 4) [H W] = size(window); if ((H*W) < 4 | (H > M) | (W > N)) ssim_index = -Inf; ssim_map = -Inf; return end L = 255; if (length(K) == 2) if (K(1) < 0 | K(2) < 0) ssim_index = -Inf; ssim_map = -Inf; return; end else ssim_index = -Inf; ssim_map = -Inf; return; end end 89 ANEXOS if (nargin == 5) [H W] = size(window); if ((H*W) < 4 | (H > M) | (W > N)) ssim_index = -Inf; ssim_map = -Inf; return end if (length(K) == 2) if (K(1) < 0 | K(2) < 0) ssim_index = -Inf; ssim_map = -Inf; return; end else ssim_index = -Inf; ssim_map = -Inf; return; end end C1 = (K(1)*L)^2; C2 = (K(2)*L)^2; window = window/sum(sum(window)); img1 = double(img1); img2 = double(img2); 90 ANEXOS 91 mu1 = filter2(window, img1, 'valid'); mu2 = filter2(window, img2, 'valid'); mu1_sq = mu1.*mu1; mu2_sq = mu2.*mu2; mu1_mu2 = mu1.*mu2; sigma1_sq = filter2(window, img1.*img1, 'valid') - mu1_sq; sigma2_sq = filter2(window, img2.*img2, 'valid') - mu2_sq; sigma12 = filter2(window, img1.*img2, 'valid') - mu1_mu2; if (C1 > 0 & C2 > 0) ssim_map = ((2*mu1_mu2 + C1).*(2*sigma12 + C2))./((mu1_sq + mu2_sq + C1).*(sigma1_sq + sigma2_sq + C2)); else numerator1 = 2*mu1_mu2 + C1; numerator2 = 2*sigma12 + C2; denominator1 = mu1_sq + mu2_sq + C1; denominator2 = sigma1_sq + sigma2_sq + C2; ssim_map = ones(size(mu1)); index = (denominator1.*denominator2 > 0); ssim_map(index) (numerator1(index).*numerator2(index))./(denominator1(index).*denominator2(index)); index = (denominator1 ~= 0) & (denominator2 == 0); ssim_map(index) = numerator1(index)./denominator1(index); end mssim = mean2(ssim_map); return = ANEXOS Anexo II Imágenes. 92 ANEXOS 93 ANEXOS 94