227
Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería de Telecomunicación Desarrollo De Una Herramienta De Software De Análisis De Imágenes Médicas Autor: Rania Marah Tutor: Prof.Dr. Emilio Gómez González Departamento de Física Aplicada III Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2018

Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

Equation Chapter 1 Section 1

Proyecto Fin de Carrera Ingeniería de Telecomunicación

Desarrollo De Una Herramienta De Software De Análisis De Imágenes Médicas

Autor: Rania Marah

Tutor: Prof.Dr. Emilio Gómez González

Departamento de Física Aplicada III Escuela Técnica Superior de Ingeniería

Universidad de Sevilla Sevilla, 2018

Page 2: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

ii

Page 3: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

iii

Proyecto Fin de Carrera

Ingeniería de Telecomunicación

Desarrollo De Una Herramienta Software

De Análisis De Imágenes Médicas

Autor:

Rania Marah

Tutor:

Prof.Dr. Emilio Gómez González

Departamento de Física Aplicada III

Escuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2018

Page 4: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

iv

Page 5: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

v

Proyecto Fin de Carrera: Desarrollo de una herramienta software de análisis

de imágenes médicas

Autor: Rania Marah

Tutor: Prof.Dr. Emilio Gómez González

El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros:

Presidente:

Vocales:

Secretario:

Acuerdan otorgarle la calificación de:

Sevilla, 2018

El Secretario del Tribunal

Page 6: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

vi

Page 7: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

vii

A Emilio, por entregarme sus conocimientos

y por su paciencia conmigo.

A mis padres Fatiha y Hassan y mis hermanos

Rim, Romaissaa y Rafik, por apoyarme

y tener fe en mí.

A Saad, por estar ahí todos estos años en

lo bueno y lo malo.

Page 8: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

viii

Page 9: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

ix

Resumen

Las contribuciones y los aportes de la física a la biomedicina siempre han sido muy importantes y con el tiempo se ha ido incrementando el interés de los investigadores físicos y biomédicos en trabajar juntos para mejorar la salud humana. El Grupo de Física Interdisciplinar de la Universidad de Sevilla, en el que se ha desarrollado este trabajo, es un claro ejemplo. En este proyecto se ha diseñado y desarrollado una aplicación software de análisis de imágenes médicas denominada ‘PROCESA’. Este programa, elaborado en el lenguaje de programación Matlab®, permite la apertura de ficheros tanto en formatos gráficos convencionales como en el estándar médico DICOM e incorpora un conjunto de herramientas de segmentación, análisis y el procesado de las imágenes médicas. Asimismo, dispone de un conjunto amplio de módulos pre-construidos en los que se pueden insertar, de forma muy sencilla, otros códigos de procesado específicos de aplicaciones propias del usuario.

Page 10: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

x

Page 11: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

xi

Abstract

The contributions and contributions of physics to biomedicine have always been very important

and over time the interest of physical and biomedical researchers in working together to

improve human health has increased. The Interdisciplinary Physics Group of the University of

Seville, in which this work has been developed, is a clear example.

In this project, a medical image analysis software application called 'PROCESA' has been

designed and developed. This program, developed in the programming language Matlab®,

allows the opening of files in conventional graphic formats as well as in the DICOM medical

standard and incorporates a set of tools for segmentation, analysis and processing of medical

images. Also, it has a wide set of pre-built modules in which you can insert, in a very simple

way, other processing codes specific to the user's own applications.

... -translation by google-

Page 12: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones
Page 13: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

xiii

Índice

Resumen  ..............................................................................................................................  iX  

Abstract  ...............................................................................................................................  Xi  

Índice  .................................................................................................................................  Xiii  

Índice  de  Figuras  .................................................................................................................  XV  

1.  Introducción  ......................................................................................................................  1  

1.1.  Objetivos  ...........................................................................................................................  5  

           1.2.  Requisitos  específicos  .…………………………………………………………………………………………………6  

2.  ENTORNO  DE  TRABAJO  ......................................................................................................  9  

2.1.  Especificaciones  del  ordenador  .........................................................................................  9  

2.2.  Lenguaje  de  programación  …………………………………………………………………………………………10  

3.  SOFTWARE  DESARROLLADO:  LA  APLICACIÓN  "PROCESA"  ................................................  12  

3.1.  Descripción  de  la  aplicación  ............................................................................................  12  

3.2.  Diagrama  de  bloques  .......................................................................................................  13  

4.  Guía  de  usuario    ..............................................................................................................  42  

4.1.  Requisitos  de  la  aplicación  ..............................................................................................  42  

4.2.  Interfaz  de  usuario    ..........................................................................................................  42  

5.  Ejemplo  de  uso:  insercion  de  codigos  especificos……………………………………………………………66  

         5.1  Inserción    de  módulos  de  procesado  ...…………………………………………………………………………66  

       5.2  Tiempos  de  procesado………………………………………………………………………………………………….77  

Page 14: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

xiv

6.  Funciones  del  programa    .................................................................................................  78  

6.1.  Funciones  del  programa    .................................................................................................  78  

7.  Conclusiones  y  líneas  de  desarrollo  ...............................................................................  133  

Bibliografía  y  referencias  ...................................................................................................  135  

Apéndice  I:  Código  del  programa:  ......................................................................................  139  

Page 15: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

xv

ÍNDICE DE FIGURAS

Figura1.1.Imagen medica, radiografía con rayos x…….…….…………..……….……..........2

Figura1.2.Radiografo…………………………………….…….…………..……….……..........3

Figura1.3.Fichero DICOM…..………………………….…….…………..……….…...…........4

Figura2.1.Sistema operativo usado…………………..….…….…………..……….……........10

Figura4.1.Ventana PROCESA………………………….…….…………..……….….…........43

Figura4.2.Ventana Autores………………………….…….…………..……….……..............44

Figura4.3.Ventana PROCESA-ROI…………………….…….…………..……….……........45

Figura4.4.Ventana Ayuda-ROI………………………….…….…………..……….……........46

Figura4.5.Ventana PROCESA-DICOM………………..…….…………..……….……........47

Figura4.6.Ventana PROCESA-DICOM, buscar fichero…….…………..……….……........48

Figura4.7.Ventana PROCESA-DICOM, mostrar imagen ...…………..……….……...…...48

Figura4.8.Ventana info DICOM 1………………..………………….………..…...….....…...49

Figura4.9.Ventana info DICOM 2………………..………………….……………...…...…...50

Figura4.10.Ventana info DICOM 3………………..………………….………..…...…...…...50

Figura4.11.Ventana info DICOM 4………………..………………….………..…...…...…...51

Figura4.12.Ventana info DICOM 5………………..………………….………..…...…...…...51

Figura4.13.Ventana info DICOM anónima 1……..………………….………..…...…...…...52

Figura4.14.Ventana info DICOM anónima 2……..………………….………..…...…...…...53

Figura4.15.Ventana info DICOM anónima 3……..………………….………..…...…...…...53

Figura4.16.Ventana Ayuda-PROCESA-DICOM…………………….………..…...…...…...55

Page 16: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

xvi

Figura4.17.Ventana PROCESA-Imagen..…………………...…………..……….……...…...56

Figura4.18.Ventana PROCESA-Imagen, mostrar imagen ..…………..……….……...…...57

Figura4.19.Ventana PROCESA-Imagen, cortar imagen 1……………..……….……...…...58

Figura4.20.Ventana PROCESA-Imagen, mostrar imagen 2…………..……….……...…...59

Figura4.21.Ventana Ayuda-PROCESA-Imagen………………………..……………...…...61

Figura4.22.Ventana PROCESA-Imagen, calcular distancia 1 ..…………………………...62

Figura4.23.Ventana PROCESA-Imagen, calcular distancia 2 ..…………………………...62

Figura4.24.Ventana PROCESA-Imagen, mostrar resultados 1…………………………...63

Figura4.25.Ventana PROCESA-Imagen, mostrar resultados 2…………………………...64

Figura4.26.Ventana PROCESA-Imagen, mostrar resultados 3…………………………...65

Figura5.1. Imagen en escala de grises rice.png ……………………………………………...67

Figura5.2. Superficie parcela…………………………………………………………………68

Figura5.3. Imagen con fondo uniforme……………………………………………………...69

Figura5.4. Imagen después del ajuste de la intensidad…………………………………….70

Figura5.5. Versión binaria de la imagen…………………………………………………….71

Figura5.6. Numero de objetos de la imagen…………………………………………………72

Figura5.7. El objeto numero 50………………………………………………………………73

Figura5.8. Matriz de etiquetas como imagen pseudocolor ……………………………......74

Figura5.9. Área de cada objeto de la imagen………………………………………………75

Figura5.10. Histograma del área de los granos de arroz…………………………………..76

 

Page 17: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

1 INTRODUCCION

or imagen médica se entiende, en general, el conjunto de técnicas y procesos usados para obtener o crear imágenes del cuerpo humano, o partes de él, con propósitos clínicos o para la

ciencia médica. Como disciplina en su sentido más amplio, es parte de la imagen biológica e incorpora la radiología, ciencias radiológicas, endoscopia, termografía médica, fotografía médica y microscopía y otras áreas afines. En el contexto clínico, la imagen médica está generalmente identificada con la denominación de radiología. Como campo de investigación científica, la imagen médica constituye una subdisciplina de la ingeniería biomédica, la física médica y la medicina. Dependiendo del contexto, la investigación y desarrollo en el área de instrumentación, adquisición de imágenes el modelado y la cuantificación son normalmente reservadas para la ingeniería biomédica, física médica y ciencias de la computación; la investigación en la aplicación e interpretación de las imágenes médicas se reserva normalmente a la radiología y a las subdisciplinas médicas relevantes en la enfermedad médica o área de ciencia médica (neurociencia, traumatología, cardiología, oncología y otras). Muchas de las técnicas desarrolladas para la imagen médica son también aplicaciones científicas e industriales. En general, en la mayoría de las técnicas consideradas parte de la imagen médica, el procedimiento de obtención de la imagen consiste en generar un haz de ondas (energía), que pueden ser tanto mecánicas como electromagnéticas, y captar la energía reflejada o transmitida por la parte del cuerpo cuyo interior se desea observar. El elemento emisor de la fuentes de ondas suele denominarse “sonda” y el dispositivo que las recibe “detector”. Este convierte las ondas incidentes en una señal eléctrica (o conjunto de señales). Un ordenador o sistema de procesado -con unos algoritmos de reconstrucción adecuados- convierte las señales eléctricas generadas en el detector en la imagen resultado. Por ejemplo, en el caso de la imagen mediante ultrasonidos (ultrasonografía o ecografía) la sonda emite un conjunto de ondas de presión ultrasónicas que se reflejan en el tejido, y que muestran su estructura interna. En el caso de la radiografía, el agente físico que se propaga es radiación electromagnética en la franja del espectro correspondiente a los rayos X que, al atravesar los tejidos permite obtener una imagen del interior del organismo.

P

Page 18: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

1 INTRODUCCION

2

Figura 1.1. Imagen médica, radiografía con rayos x [1].

Los rayos X tienen la capacidad de atravesar los tejidos blandos (órganos, músculos, etc.), pero no los huesos, que absorben la radiación. De este modo, al colocar un detector sensible a esta energía detrás del cuerpo, los rayos X van generando la imagen, de forma análoga a la exposición de una película fotográfica. Los huesos se muestran en tonos blancos y el resto de los componentes internos del cuerpo, en distintas tonalidades de gris según su densidad. El espacio vacío (aire), en general, queda negro. Así, la radiografía puede considerarse como un tipo de “fotografía” (realizada con rayos X en vez de con luz visible) que permite observar los componentes óseos en blanco, sobre un fondo negro. Esto ayuda a que un médico puede realizar distintos diagnósticos de acuerdo al estado de los huesos. Es importante destacar que, debido a que las dosis de radiación a las que se somete el cuerpo son muy bajas, la radiografía es un procedimiento seguro con mínimas posibilidades de provocar un daño en el organismo. La mayor parte de los expertos aseguran que la radiografía nos ofrece beneficios muy superiores a los riesgos que puede acarrear.

Page 19: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3

Figura 1.2. Radiógrafo [2].

Entre los tipos de radiografías más comunes se encuentran los siguientes: abdominal; de hueso; de

tórax; de los dientes; de una extremidad; de la mano; de las articulaciones; del cuello; de los senos

paranasales; del cráneo; de la columna torácica; del esqueleto.

Una imagen médica por sí misma no aporta suficiente información. Para que sea correctamente interpretada es necesario que vaya acompañada de datos del paciente y de la adquisición, y para esta finalidad se usa el formato DICOM.

DICOM es un protocolo estándar de comunicación entre sistemas de información y a la vez un formato de almacenamiento de imágenes médicas, que aparece como solución a los problemas de interoperabilidad entre tipos de dispositivos.

Page 20: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

1 INTRODUCCION

4

Figura 1.1. Fichero DICOM [3]. El formato DICOM cuenta con objetos IOD (Information Object Definition), formados por la imagen y su información asociada (representación lógica de objetos del mundo real), y un elemento DIMSE (DICOM Message Service Element), que contiene las operaciones que pueden realizarse sobre cada objeto. IOD y DICOM forman SOP, la unidad funcional de DICOM. Un IOD se compone de IEs (information entities, entidades de información). Hay IEs del paciente, de estudio, de serie, de equipo, de imagen y otros que, a su vez se componen de uno o varios módulos que a su vez se contienen varios atributos. Un atributo se define con nombre, etiqueta, tipo y descripción. En el estándar DICOM la información se define mediante un modelo que refleja el mundo real. La imagen es el núcleo de información de un fichero DICOM. Cada fichero contiene, además de la imagen, información sobre el paciente (identificación demográfica y de identificación), el estudio en el que se encuadra la toma de la imagen, la serie a la que pertenece la imagen e información sobre la propia imagen. DICOM permite una identificación univoca de objetos. Cada fichero DICOM tiene un identificador único de usuario (UID) compuesto por una serie de varios números. Las comunicaciones DICOM se adaptan al estándar OSI para el intercambio de información. La AE (Entidad de Aplicación) se encarga de las comunicaciones de modo que para cada servicio existe un AE cliente y un AE aplicación.

Page 21: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

5

Gracias a sus características y a su nivel de implantación, hoy día DICOM es mundialmente

reconocido para el manejo, almacenamiento, impresión y transmisión de imágenes médicas.

1.1. Objetivos

El objetivo general del proyecto es desarrollar de una herramienta software para el análisis de

imágenes médicas, en particular radiografías en formato DICOM.

Este objetivo general se expresa en los siguientes Objetivos Específicos:

1. Diseño de la estructura general de la aplicación y sus módulos componentes.

2. Diseño y programación de los algoritmos que permitan

a. Abrir ficheros DICOM estándar y visualizar su contenido.

b. Segmentar elementos de los ficheros DICOM.

c. Analizar las imágenes e identificar los diferentes objetos que forman la imagen.

3. Realizar pruebas de funcionamiento operativo y evaluar sus resultados.

Este proyecto se enmarca en las líneas de colaboración activas establecidas entre el Grupo de Física

Interdisciplinar de la Universidad de Sevilla, con sede en el Departamento de Física Aplicada III de

la Escuela Técnica Superior de Ingeniería y el Hospital Universitario Virgen del Rocío.

Page 22: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

1 INTRODUCCION

6

1.2. Requisitos específicos

Para llevar a cabo el diseño de esta herramienta hemos tenido en cuenta unos requisitos específicos

que se deben cumplir:

-Desarrollar un modulo que permite definir la región de interés (región of interest, ROI)

de la imagen considerada:

En este módulo se definen seis campos numéricos (descritos posteriormente) que permiten definir

e identificar el estudio durante el procesado de los ficheros en los formatos tanto médico (DICOM)

como gráficos (JGP/PNG). También se guardan los resultados del análisis a base de estos campos

- Desarrollar un modulo que permite elegir el fichero DICOM, la visualización de la

imagen y el procesado.

Después de definir los seis campos y una vez elegido el estudio de DICOM, se visualiza el fichero

DICOM elegido, para poder aplicarle las diferentes opciones que permite la herramienta:

- Mostrar la información completa del fichero, incluida la imagen.

- Generar fichero similar al original sin incluir la información personal (edad, peso, nombre).

- Generar una copia de la imagen en formato JPG para poder estudiarla aparte.

- Ofrecer la posibilidad de guardar los resultados en fichero Matlab® y otros (Excel®).

Page 23: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

7

- Desarrollar un módulo que permite elegir la imagen JGP1, la visualización e el

procesado:

Después de definir los seis campos y una vez elegido el estudio de DICOM, se visualiza el fichero

JGP/PNG elegido (como la imagen) así como las opciones de estudio:

- poder elegir una zona de la imagen marcando puntos en forma de polígono

- poder elegir una zona de la imagen diciendo el lado y marcando el centro de un rectángulo.

- calcular la distancia entre dos puntos elegidos sobre la imagen.

- poder guardar una copia de la imagen.

- poder guardar copia la zona de la imagen elegida.

- Procesar la imagen aplicándola un total de cien funciones diferentes (detallado

posteriormente).

- Poder guardar los resultados del procesado en fichero Matlab® y otro (Excel®).

1  JPEG  (Joint  Photographic  Experts  Group)  es  un  algoritmo  diseñado  para  comprimir  imágenes  con  24  bits  de  profundidad  

o  en  escala  de  grises.  Normalmente  se  le  llama  JPG  debido  a  la  extensión  que  tiene  en  sistemas  operativos  que  sólo  aceptan  

tres  letras  de  extensión.

Page 24: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

1 INTRODUCCION

8

El esquema general de la aplicación se presenta a continuación:

PROCESA

PROCESA_ROI

PROCESA_Imagen PROCESA_DICOM

Page 25: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

2. ENTORNO DE TRABAJO

2.1. Especificaciones técnicas

_ Hardware:

- Procesador : 2GHZ Intel Core 2 Duo

-Memoria 2 Go 1067 MHZ DDR3

_ Sistema Operativo:

- OS X Yosemite

- Versión 10.10

_ Monitor:

- Pantalla de 13 “

- Resolución 1440 x 900 pixeles

Page 26: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

2. ENTORNO DE TRABAJO

10

2.2. Lenguaje de programación

Durante el desarrollo de esta aplicación se ha hecho uso del sistema interactivo MATLAB® versión R2006a

Figura 2.1. Sistema operativo usado.

MATLAB (abreviatura de MATrix LABoratory, "laboratorio de matrices") es un software matemático que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programación propio (lenguaje M). Está disponible para las plataformas Unix, Windows y Mac OS X.

Entre sus prestaciones básicas se encuentran la manipulación de matrices, la representación de datos y funciones, la implementación de algoritmos, la creación de interfaces de usuario (GUI) y la comunicación con programas en otros lenguajes y con otros dispositivos hardware.

Page 27: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

2. ENTORNO DE TRABAJO

11

El paquete de software de MATLAB dispone de dos herramientas adicionales que expanden sus prestaciones: Simulink (plataforma de simulación multidominio) y GUIDE (editor de interfaces de usuario - GUI).

Además, se pueden ampliar las capacidades de MATLAB con las cajas de herramientas (toolboxes) que cubren actualmente la mayoría de áreas principales del mundo de la ingeniería y la simulación, como por ejemplo la toolbox de procesado digital de imágenes (IPT de aquí en adelante), la toolbox de procesado de señal, la toolbox de comunicaciones... y así hasta más de 150 herramientas.

MATLAB proporciona un entorno de trabajo interactivo cuyo elemento básico de trabajo son las matrices, lo que permite la resolución numérica de problemas en un tiempo mucho menor que si se utilizaran lenguajes de programación tradicionales como pueden ser los lenguajes Fortran, Basic o C, con la ventaja de que su lenguaje propio de programación es similar al de los lenguajes tradicionales [5].

Al trabajar con matrices se pueden describir infinidad de variables de una forma altamente flexible y matemáticamente eficiente. Por ejemplo, una imagen se puede escribir como una matriz de píxeles, un sonido como una matriz de fluctuaciones, y en general se puede describir con una matriz cualquier relación lineal entre las componentes de un modelo matemático.

Page 28: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

3.1. Descripción de la aplicación

La aplicación realizada se denomina “PROCESA”.

Esta herramienta informática recibe imagen de entrada y aplica un conjunto de operaciones que se describen a continuación:

1. Recibe una imagen de entrada que se muestra en la pantalla , y permite elegir una región

de interés sobre esta imagen con dos maneras diferentes marcar esta región:

- marcando el centro de un cuadrado y definiendo el lado en milímetros.

- marcando un conjunto de puntos que forman un polígono.

A continuación se puede calcular la distancia entre dos puntos de la imagen original o

sobre la zona recortada, y además de se puede aplicar un conjunto de cien operaciones

con diferentes funcionalidades que detallaremos en el capitulo siguiente.

2. Recibe un imagen DICOM, la muestra por pantalla y, a continuación se puede leer la

información del fichero DICOM, asi como quitar la información personal del paciente

(proceso de anonimización). Posteriormente se puede cambiar la imagen a formato JPG.

Page 29: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

13

3.2. Diagrama de la aplicación

3.2.1 Diagrama de bloques

El diagrama de bloques es la representación gráfica del funcionamiento interno de un

sistema, que se hace mediante bloques y sus relaciones, y que, además, definen la

organización de todo el proceso interno, sus entradas y sus salidas.

Está compuesto por bloques funcionales unidos mediante flechas. Cada bloque esta

asociado a un tipo de proceso, y las flechas representan transferencias de datos entre los

bloques relacionados [6].

Para esta aplicación se han empleado los bloques que se muestran a continuación. Cada uno

de ellos se acompaña se acompaña del significado que se le asigna en los diagramas.

Funciones del programa: son las instrucciones que se ejecutan

según la programación de la aplicación.

Interacción con el usuario: mediante botones que aparecen en las

ventanas el usuario puede ordenar que se realicen las

operaciones pertinentes.

Page 30: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

14

Datos de entrada y salida: al comenzar la ejecución de una

función se muestran los datos que es necesario introducir

desde el punto desde el que se realiza la llamada. Igualmente se

representan los valores que la función devuelve .

Visualización de la imagen en la ventana de la interfaz

grafica.

Decisión: este símbolo indica que dependiendo del valor que

tenga la variable de entrada se realizan distintas operaciones

Llamada a otra función: para facilitar la organización de los diagramas

de bloques cuando se llama a una función que tenga bastantes

instrucciones se realiza una llamada y se explica aparte.

Mensajes de error: cuando se cumplen ciertas condiciones, el

programa muestra un aviso indicando que no se puede llevar

acabo la orden.

Page 31: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

15

3.2.2 Diagrama general PROCESA

Se presenta a continuación un esquema conciso de las interfaces graficas que componen la

aplicación:

En los apartados siguientes se representan diagramas desarrollados de cada funcionalidad de la aplicación PROCESA.

PROCESA

PROCESA_ROI

PROCESA_Imagen PROCESA_DICOM

Page 32: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

16

3.2.3 Diagrama PROCESA-ROI

Autores Cerrar Continuar

A

Mostrar Autores

PROCESA

PROCESA_ROI

Page 33: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

17

Page 34: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

18

Abrir DICOM

Ayuda

Abrir Imagen

Volver

A

B

ERROR ¿Camp

Valido?

No

Si

B1

C D

PROCESA

PROCESA_Imagen PROCESA_DICOM

Page 35: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

19

B1

Mostrar instrucciones de ayuda

PROCESA_ROI

Volver

Page 36: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

20

3.2.4 Diagrama PROCESA- DICOM

C

Elegir Imagen

¿Formato

Valido? ERROR

Visualización Imagen

Ayuda Cerrar Volver

C4 C2 C3 C1

PROCESA_ROI

PROCESA_DICOM

Si

No

Page 37: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

21

C1

Mostrar instrucciones de ayuda

Volver

PROCESA_DICOM

Page 38: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

22

C2

Convertir JPG Guardar Imagen

Se guarda copia de la

imagen en formato

DICOM

-­‐ Se convierte la imagen a formato JPG

-­‐ Se guarda la copia de la imagen convertida

PROCESA_DICOM

Page 39: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

23

C3

- se muestra la

información que

contiene el fichero

DICOM

-­‐ Se quita la información personal

-­‐ Se guarda la copia anónima de la imagen

Mostrar Info Anonimar

PROCESA_DICOM

Page 40: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

24

C4

PROCESA_DICOM

_ se guardan los

resultados de

procesamiento en fichero

Matlab®

_Se guardan los

resultados de

procesamiento en

fichero Excel®

Guardar .mat Procesa IMG JPG Guardar .xsl

PROCESA_DICOM

PROCESA_Imagen

Page 41: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

25

3.2.4 Diagrama PROCESA- Imagen:

D1 D2

D

PROCESA_Image

n

PROCESA

Ayuda Abrir Imagen

Cerrar Volver

Page 42: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

26

D1

Mostrar instrucciones de ayuda

Volver

PROCESA_Imagen

Page 43: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

27

D2

¿Formato

Valido?

Visualización Imagen

D3

ERROR

Si

No

Page 44: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

28

D3

D6

D5 D4

Guardar Imagen Calcular Distancia

Elegir Region I

-Se guarda copia

de la imagen por

separado

PROCESA_Imagen

n

Page 45: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

29

D4

¿Polígono

cerrado?

Visualización Imagen

PROCESA_Imagen

- Se recorta la región del

polígono marcado

D7

D6

Calcular Distancia

No

Si

Page 46: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

30

D5

¿Lado

Definido?

Visualización Imagen

PROCESA_Imagen

- Se corta la región del

cuadrado definido con

D7

definir

Lado

Elegir Región II

Marcar Centro

Calcular Distancia

D6

Si

No

Page 47: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

31

Doble click Marcar punto dos

Marcar punto uno

D6

¿Punto

definido?

¿Punto

definido?

Visualización de la

distancia en mm

-Calcular

distancia

¿Puntos

definido?

PROCESA_Imagen

No

No

No

Si

Si

Si

Page 48: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

32

D7

Guardar Region Elegida

-Se guarda

la imagen

por

separado

Procesar Imagen

Guardar .mat Guardar .xls

- Se guardan todos

los resultados de

estudio en fichero

matlab

- Se guardan todos los

resultados de estudio

en fichero

PROCESA_Imagen

D8

Page 49: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

33

media

D8

transpuesta

logaritmoNeperiano

desviacionEstadistica

raizCuadrada

exponencial

moda

inversa

Determinante

mediana

PROCESA_Imagen

-Se muestran los

resultados de

procesado .

Page 50: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

34

rango

D8

norma

condicion

coeficientesCorrelacion

reciprocoCondicion

valoresSingulares

mReducidaEscalonada

mayorSumaColumnas

mayorSumaFilas

sumaDiagonal

PROCESA_Imagen

-Se muestran los

resultados de

procesado .

Page 51: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

35

funcion_1

D8

funcion_f9

funcion_f8

funcion_f7

funcion_f4

funcion_f3

funcion_f2

funcion_f5

funcion_f10

funcion_f6

PROCESA_Imagen

-Se muestran los

resultados de

procesado .

Page 52: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

36

funcion_f11

D8

funcion_f19

funcion_f18

funcion_f17

funcion_f14

funcion_f13

funcion_12

funcion_f15

funcion_f20

funcion_f16

PROCESA_Imagen

-Se muestran los

resultados de

procesado .

Page 53: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

37

funcion_f21

D8

funcion_f29

funcion_f28

funcion_f27

funcion_f24

funcion_f23

funcion_f22

funcion_f25

funcion_f30

funcion_f26

PROCESA_Imagen

-Se muestran los

resultados de

procesado .

Page 54: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

38

funcion_f31

D8

funcion_f39

funcion_f38

funcion_f37

funcion_f34

funcion_f33

funcion_f32

funcion_f35

funcion_f40

funcion_f36

PROCESA_Imagen

-Se muestran los

resultados de

procesado .

Page 55: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

39

funcion_f41

D8

funcion_f49

funcion_f48

funcion_f47

funcion_f44

funcion_f43

funcion_f42

funcion_f45

funcion_f50

funcion_f46

PROCESA_Imagen

-Se muestran los

resultados de

procesado

.

Page 56: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

40

funcion_f60

D8

funcion_f68

funcion_f67

funcion_f66

funcion_f63

funcion_f62

funcion_f61

funcion_f64

funcion_f69

funcion_f65

PROCESA_Imagen

-Se muestran los

resultados de

procesado.

Page 57: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

3. SOFTWARE DESARROLLADO: LA APLICACIÓN “PROCESA”

41

funcion_f70

D8

funcion_f78

funcion_f77

funcion_f76

funcion_f73

funcion_f72

funcion_f71

funcion_f74

funcion_f79

funcion_f75

PROCESA_Imagen

-Se muestran los

resultados de

procesado.

Page 58: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

4 GUIA DE USUARIO

4 GUIA DE USUARIO

4.1. Requisitos de la aplicación

Para la ejecución y correcto funcionamiento de la aplicación realizada es necesario disponer

de un sistema informático que soporte la versión de MATLAB usada, descrita en el apartado 2.2

4.2. Interfaz de usuario

-Ventana PROCESA:

Una vez abierto MATLAB, para acceder a la aplicación PROCESA, habrá que escribir en la

ventana ‘Command Windows’ de MATLAB la palabra: PROCESA

Justo al darle a entrar se abre la aplicación PROCESA según la figura

Page 59: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

4 GUIA DE USUARIO

43

Figura 4.1. Ventana PROCESA.

Aquí se muestran los logos de los diferentes departamentos colaboradores, así como tres

botones:

-Autores: una pequeña presentación de los autores de la aplicación y los departamentos a los

que pertenecen, y un botón “Volver” para retornar a la primera ventana PROCESA.

Page 60: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

4 GUIA DE USUARIO

44

-

Figura 4.2. Ventana Autores.

Cerrar: el botón cerrar para salir de la aplicación.

- Continuar: al pulsarlo se muestra la ventana PROCESA_ROI, que definimos a continuación.

Page 61: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

4 GUIA DE USUARIO

45

-Ventana PROCESA_ROI:

Figura 4.3. Ventana PROCESA-ROI.

Esta ventana permite definir el estudio que vamos a realizar mediante el uso de seis campos

numéricos que se deben rellenar:

-Proyecto: para introducir el identificador del campo Proyecto.

-Estudio: para introducir el identificador del campo Estudio.

-Caso: para introducir el identificador del campo Caso.

-Corte: para introducir el identificador del campo Corte.

-Muestra: para introducir el identificador del campo Muestra.

-Otro: para introducir el identificador del campo Otro.

Page 62: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

4 GUIA DE USUARIO

46

Después de rellenar los campos podemos elegir entre dos botones:

Abrir Imagen: si queremos estudiar un fichero formato JPG/PNG. Al pulsar el botón “Abrir

imagen” nos dirige a otra ventana PROCESA_imagen que veremos a continuación.

Abrir DICOM: si queremos estudiar un fichero en formato DICOM nos dirige a otra ventana

PROCESA_ROI que veremos a continuación.

Además de estos dos botones y los seis campos citados, la ventana PROCESA_ROI contiene

otros dos botones:

Volver: para volver al principio de la aplicación (ventana PROCESA).

Ayuda: breve descripción de las funcionalidades de la ventana actual para ofrecer ayuda sobre

el manejo de la aplicación al usuario, así como un botón Volver, para volver a la ventana

PROCESA_ROI, según muestra la figura:

Figura 4.4. Ventana Ayuda-ROI.

Page 63: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

4 GUIA DE USUARIO

47

- Ventana PROCESA_DICOM:

Llegamos a esta parte de la aplicación si vamos a estudiar un fichero DICOM. Si hemos pulsado

anteriormente el botón Abrir DICOM, la interface es como se muestra en la figura:

Figura 4.5. Ventana PROCESA –DICOM.

En la ventana hay varios botones con diferentes opciones:

-Abrir Imagen: para poder elegir la imagen de interés. Al pulsar el botón se puede acceder a los

ficheros guardados en el ordenador para seleccionar uno. Después de seleccionar la imagen,

aparece la imagen elegida en la pantalla (figura).

Page 64: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

4 GUIA DE USUARIO

48

Figura 4.6. Ventana PROCESA-DICOM, buscar fichero.

Figura 4.7. Ventana PROCESA-DICOM, mostrar imagen.

Page 65: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

4 GUIA DE USUARIO

49

-Guardar Imagen: al pulsar este botón se guarda una copia exacta de la imagen mostrada en la

pantalla en el directorio de trabajo bajo el nombre dinámico:

PoyectoEstudioCasoCorteMuestraOtroCopia.dcm

-Mostrar info: al pulsar este botón se muestra la información del paciente que incluye el fichero

DICOM. Esta información se muestra en forma de una estructura de 127 campos según se

muestra a continuación:

Figura 4.8. Ventana info DICOM 1.

Page 66: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

4 GUIA DE USUARIO

50

Figura 4.9. Ventana info DICOM 2.

Figura 4.10. Ventana info DICOM 3.

Page 67: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

4 GUIA DE USUARIO

51

Figura 4.11. Ventana info DICOM 4.

Figura 4.12. Ventana info DICOM 5.

Page 68: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

4 GUIA DE USUARIO

52

-Anonimizar: al pulsar este botón se guarda una copia de la imagen mostrada en la pantalla en

el directorio de trabajo, sin la información personal del paciente, bajo el nombre dinámico:

PoyectoEstudioCasoCorteMuestraOtroAnonima.dcm

Para visualizarlo, pulsamos el botón Mostrar info de la imagen anónima y la estructura

resultado es de 114 campos, habiéndose eliminado todos los que aportan información personal

del paciente como se muestra en la siguiente figura:

Figura 4.13. Ventana info DICOM anónima 1.

Page 69: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

4 GUIA DE USUARIO

53

Figura 4.14. Ventana info DICOM anónima 2.

Figura 4.15. ventana info DICOM anónima 3.

Page 70: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

4 GUIA DE USUARIO

54

-Convertir JPG: al pulsar este botón se convierte la imagen mostrada por pantalla de formato

DICOM a formato JPG y se guarda en el directorio de trabajo bajo el nombre:

PoyectoEstudioCasoCorteMuestraOtroCopiaJPG.jpg

-Procesar IMG JPG: al pulsar este botón se hace llamada a la ventana PROCESA_Imagen para

poder procesar la imagen recién convertida.

-Guardar .mat: al pulsar este botón se guardan el estudio realizado en un fichero .mat bajo el

nombre:

PoyectoEstudioCasoCorteMuestraOtro.mat

-Guardar .xsl: al pulsar este botón se guardan les resultados en un fichero Excel, bajo el

nombre:

PoyectoEstudioCasoCorteMuestraOtro.xsl

-Volver: al pulsar este botón se vuelve al principio de la aplicación: ventana PROCESA.

-Cerrar: al pulsar este botón se cierra la aplicación.

-Ayuda: breve descripción de las funcionalidades de la ventana actual para ofrecer ayuda sobre

el manejo de la aplicación al usuario, así como un botón Volver para volver a la ventana

PROCESA_DICOM, según muestra la figura:

Page 71: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

4 GUIA DE USUARIO

55

Figura 4.16. Ventana Ayuda -ROCESA-DICOM.

Page 72: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

4 GUIA DE USUARIO

56

Ventana PROCESA_Imagen:

- Llegamos a esta parte de la aplicación si vamos a estudiar un fichero JPG. Si hemos pulsado

anteriormente el botón Abrir Imagen, la interface es como se muestra en la figura:

Figura 4.17. Ventana PROCESA-Imagen.

-Abrir Imagen: para poder elegir la imagen de interés, al pulsar el botón se puede acceder a los

ficheros guardados en el ordenador para seleccionar uno, después de seleccionar la imagen,

aparece la imagen elegida en la pantalla, según la figura.

Page 73: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

4 GUIA DE USUARIO

57

Figura 4.18. Ventana PROCESA-Imagen, mostrar imagen.

-Elegir Región II: este botón permite elegir parte de la imagen mostrada en la pantalla uno

(Imagen original) y mostrarla en la pantalla dos (Región Elegida).

La región elegida se corta en forma de cuadrado, que el usuario tiene que introducir el lado en

milímetros y marcar el centro.

Antes de pulsar este botón, habrá que introducir el lado en el espacio blanco que esta situado

justo alado del botón, después se muestra un cursor para poder situarlo en la zona deseada para

elegir el centro según muestra la siguiente figura:

Page 74: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

4 GUIA DE USUARIO

58

Figura 4.19. Ventana PROCESA-Imagen, cortar imagen 1.

Elegir Region II: este botón permite elegir parte de la imagen mostrada en la pantalla uno

(Imagen original) y mostrarla en la pantalla dos (Región Elegida ).

La región elegida se recorta en forma de polígono que el usuario puede elegir una vez pulsado

el botón (mediante puntos moviendo el ratón) y soltándolo en la posición del punto deseado

hasta cerrar el polígono, según muestra la figura:

Page 75: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

4 GUIA DE USUARIO

59

Figura 4.20. Ventana PROCESA-Imagen, mostrar imagen 2.

-Guardar Img Original: al pulsar este botón se guarda una copia exacta de la imagen mostrada

en la pantalla uno en el directorio de trabajo bajo el nombre dinámico:

PoyectoEstudioCasoCorteMuestraOtrOriginal.jpg

-Guardar Región Elegida: al pulsar este botón se guarda una copia exacta de la imagen mostrada

en la pantalla dos en el directorio de trabajo bajo el nombre dinámico:

PoyectoEstudioCasoCorteMuestraOtroRegion.jpg

-Guardar .mat: al pulsar este botón se guardan el estudio realizado en un fichero .mat bajo el

nombre:

PoyectoEstudioCasoCorteMuestraOtro.mat

Page 76: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

4 GUIA DE USUARIO

60

-Guardar .xsl: Al pulsar este botón se guardan los resultados en un fichero Excel de cien

paginas, cada una de las cuales se corresponde con los resultados una cada operación, bajo el

nombre:

PoyectoEstudioCasoCorteMuestraOtro.xsl

- Volver: al pulsar este botón se vuelve al principio de la aplicación: ventana PROCESA.

-Cerrar: al pulsar este botón se cierra la aplicación.

-Ayuda: breve descripción de las funcionalidades de la ventana actual para ofrecer ayuda sobre

el manejo de la aplicación al usuario, así como un botón Volver, para volver a la ventana

PROCESA_Imagen, según muestra la figura:

Page 77: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

4 GUIA DE USUARIO

61

Figura 4.21. Ventana Ayuda-PROCESA-Imagen.

Calcular distancia: este botón permite calcular la distancia entre dos puntos de la imagen

original o la imagen región elegida.

Al pulsar el botón salta un cursor para poder elegir el primer punto, moviendo el ratón el

marcando la posición deseada con un clic, lo mismo para elegir el segundo punto, una ves

definidos los dos puntos se muestra la distancia entre los dos puntos en milímetros en el espacio

blanco que esta justo alado del botón.

El cursor para marcar puntos se queda abierto para hacer más cálculos, para salir de esta

operación habrá que hacer doble clic, según se muestra a continuación:

Page 78: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

4 GUIA DE USUARIO

62

Figura 4.22. Ventana PROCESA-Imagen, calcular distancia1.

Figura 4.23. Ventana PROCESA-Imagen, calcular distancia 2.

Page 79: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

4 GUIA DE USUARIO

63

Procesar Imagen: al pulsar este botón se hace llamada a cien funciones internas de PROCESA

que aplican operaciones matemáticas sobre la imagen Region Elegida (pantalla dos).

De momento están desarrolladas veinte funciones y el resto devuelve el valor = -1, para que el

usuario en el futuro los adapte a sus necesidades.

El resultado de las operaciones se muestra una vez ha terminado de procesar la imagen, según

las siguientes figuras:

Figura 4.24. Ventana PROCESA-Imagen, mostrar resultados 1.

Page 80: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

4 GUIA DE USUARIO

64

Figura 4.25. Ventana PROCESA-Imagen, mostrar resultados 2.

Page 81: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

4 GUIA DE USUARIO

65

Figura 4.26. Ventana PROCESA-Imagen, mostrar resultados 3.

Page 82: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

5 EJEMPLO DE USO: INSERCION DE CODIGOS ESPECIFICOS

66

5 EJEMPLO DE USO: INSERCION DE CODIGOS ESPECIFICOS

5.1 Inserción de códigos específicos

Utilizando una imagen de granos de arroz, este ejemplo ilustra cómo se puede mejorar una

imagen para corregir una iluminación no uniforme, y luego usar la imagen mejorada para

identificar granos individuales. Esto permite aprender extraer características geométricas de los

granos y calcular fácilmente las estadísticas de todos los granos en la imagen [7]. El análisis de la imagen se hará en once pasos: Paso 1: Leer imagen Leer y mostrar la imagen en escala de grises arroz .png.

Page 83: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

5 EJEMPLO DE USO: INSERCION DE CODIGOS ESPECIFICOS

67

Figura5.1. Imagen en escala de grises rice.png.

Paso 2: calcular el fondo de la imagen

En la imagen de muestra, la iluminación de fondo es más brillante en el centro de la imagen que en la parte inferior. En este paso, el ejemplo utiliza una operación de apertura morfológica para estimar la iluminación de fondo. La apertura morfológica es una erosión seguida de una dilatación, usando el mismo elemento estructurante para ambas operaciones. La operación de apertura tiene el efecto de eliminar objetos que no pueden contener por completo el elemento estructurador.

Page 84: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

5 EJEMPLO DE USO: INSERCION DE CODIGOS ESPECIFICOS

68

Paso 3: Mostrar la aproximación de fondo como una superficie

Se usa el comando de navegación para crear una visualización de superficie del fondo (la aproximación de fondo creada en el paso 2). El comando de navegación crea superficies paramétricas de colores que le permiten ver funciones matemáticas sobre una región rectangular. Sin embargo, la función de navegación requiere datos de clase doble, por lo que primero necesita convertir el fondo con el comando doble. El ejemplo usa la sintaxis de indexación MATLAB para ver solo 1 de 8 píxeles en cada dirección, de lo contrario, la gráfica de superficie sería demasiado densa. El ejemplo también establece la escala de la gráfica para que coincida mejor el rango de los datos uint8 e invierte el eje y de la pantalla para proporcionar una mejor visualización de los datos. (Los píxeles en la parte inferior de la imagen aparecen en el frente del gráfico de la superficie). En la pantalla de la superficie, 0, 0 ] representa el origen o la esquina superior izquierda de la imagen. La parte más alta de la curva indica que los valores de píxeles más altos del fondo (y, por consiguiente, rice.png) se encuentran cerca del centro de la imagen. parte inferior de la imagen y se representan en el gráfico de superficie por la parte más baja de la curva.

Figura5.2. Superficie parcela.

Page 85: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

5 EJEMPLO DE USO: INSERCION DE CODIGOS ESPECIFICOS

69

Paso 4: Restar la imagen de fondo de la imagen original

para crear una imagen más uniforme de fondo, restamos la imagen de fondo, a partir de la imagen original.

Figura5.3. Imagen con fondo uniforme.

Page 86: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

5 EJEMPLO DE USO: INSERCION DE CODIGOS ESPECIFICOS

70

Paso 5: Aumentar el contraste de la imagen

Después de la sustracción, la imagen tiene un fondo uniforme pero ahora es un poco oscura. El siguiente ejemplo ajusta el contraste de la imagen creada en el paso anterior.

Figura5.4. Imagen después del ajuste de la intensidad.

Page 87: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

5 EJEMPLO DE USO: INSERCION DE CODIGOS ESPECIFICOS

71

Paso 6: Umbral de la imagen

Creamos una versión binaria de la imagen para que pueda usar toolbox para contar cuantos granos de arroz hay en la imagen y después eliminamos el ruido del fondo.

Figura5.5. Versión binaria de la imagen.

Page 88: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

5 EJEMPLO DE USO: INSERCION DE CODIGOS ESPECIFICOS

72

Paso 7: Identificar los objetos de la imagen

Se encuentran todos los componentes conectados (objetos) en la imagen binaria. La precisión

de los resultados depende del tamaño de los objetos, el parámetro de conectividad (4,8, o

arbitrario) y si un objeto toca a otro, en cuyo caso podrían ser etiquetados como un único objeto.

En este ejemplo tenemos un total de objetos de 122, siendo 4 objetos que se están tocando.

Figura5.6. Numero de objetos de la imagen.

Page 89: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

5 EJEMPLO DE USO: INSERCION DE CODIGOS ESPECIFICOS

73

Paso 8: Examinar un único objeto

cada objeto esta etiquetados con el mismo valor entero. mostrar el grano que es el componente 50:

Figura5.7. El objeto numero 50.

Page 90: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

5 EJEMPLO DE USO: INSERCION DE CODIGOS ESPECIFICOS

74

Paso 9: Visualización de todos los objetos

Una forma de visualizar los componentes conectados es crear una matriz de etiquetas. a luego mostrarlo como una imagen de pseudo-color.

Figura5.8. Matriz de etiquetas como pseudocolor imagen.

Page 91: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

5 EJEMPLO DE USO: INSERCION DE CODIGOS ESPECIFICOS

75

Paso 10: Calcular el área de cada objeto

Cada grano de arroz es un componente conectado en la estructura obtenida. En la siguiente figura se muestra una estructura de 122 campos que corresponde con el numero de objetos de la imagen, mostrando el área de cada objeto.

Figura5.9. Área de cada objeto de la imagen.

Page 92: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

5 EJEMPLO DE USO: INSERCION DE CODIGOS ESPECIFICOS

76

Paso 11: Mostrar Histograma del área

En la siguiente figura se muestra un histograma del área de los granos de arroz de la imagen.

Figura5.10. Histograma del área de los granos de arroz.

Page 93: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

77

5.2 Tiempos de procesado

los tiempos de ejecución han sido satisfactorios, calculando el tiempo con ayuda de matlab

usando el comando:

tic;

%el código del programa

tiempo = toc; fprintf('El código insertado en este capitulo ha tardado %d segundos', tiempo);

El código insertado en este capitulo ha tardado 2.779935e+01 segundos en ejecutarse.

Page 94: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

78

6 FUNCIONES DEL PROGRAMA

6.1 Funciones del programa

6.1.1 PROCESA.m:

- Definición:

function PROCESA

- Argumentos de entrada:

Sin argumentos

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función esta llamada desde EL WORK SPACE Matlab nada

mas escribir la palabra PROCESA, su finalidad es mostrar la interface

grafica de interacción con el usuario para poder acceder a la aplicación o

cerrarlo en su caso.

6.1.2 Autores.m:

- Definición:

function Autores

Page 95: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

79

- Argumentos de entrada:

Sin argumentos

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función esta llamada desde la ventana PROCESA, su

finalidad es mostrar los autores y organismos que han colaborado en la

realización de la aplicación.

6.1.3 PROCESA_ROI.m:

- Definición:

function PROCESA_ROI

- Argumentos de entrada:

Sin argumentos

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función esta llamada desde la ventana PROCESA, tiene

dos objetivos:

o permitir al usuario elegir entre estudiar una imagen JPG o un

fichero DICOM,

Page 96: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

80

o permite al usuario identificar su estudio introduciendo seis

campos numéricos que se usan después para guardar ficheros y

imágenes del estudio realizado.

6.1.4 Ayuda_ROI.m:

- Definición:

function Ayuda_ROI

- Argumentos de entrada:

Sin argumentos

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función esta llamada desde la ventana PROCESA_ROI, su

objetivo es mostrar instrucciones de manejo de la ventana

PROCESA_ROI a fin de facilitar el uso de la aplicación al usuario.

6.1.5 PROCESA_DICOM.m:

- Definición:

- function PROCESA_DICOM

Page 97: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

81

- Argumentos de entrada :

o I: la imagen del fichero DICOM en forma de matriz.

o map: el contenido del fichero DICOM

o Path: la ruta del directorio donde esta guardado el fichero

DICOM.

- Argumentos de salida :

Sin argumentos

- Descripción:

Esta función esta llamada desde la ventana PROCESA_ROI,

muestra una interface grafica que permite al usuario realizar varias

operación, cada operación es una llamada a otra función interna de la

función PROCESA_DICOM que vamos a presentar a continuación:

o dicomread: para la lectura del fichero DICOM

o dicomwrite: para guardar el fichero DICOM

o infoDICOM: para extraer la información incluida en el fichero

DICOM

o - dicomanon : para quitarle al fichero DICOM la información

personal del paciente.

o - imwrite: para guardar el fichero DICOM en formato JPG

o Save: para guardar el estudio realizado en un fichero Matlab

Page 98: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

82

o Xlswrite: para guardar el estudio realizado en un fichero Excel.

6.1.6 Ayuda_PROCESA_DICOM.m:

- Definición:

function Ayuda_PROCESA_DICOM

- Argumentos de entrada:

Sin argumentos

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función esta llamada desde la ventana

PROCESA_DICOM, su objetivo es mostrar instrucciones de manejo de

la ventana PROCESA_DICOM a fin de facilitar el uso de la aplicación

al usuario

6.1.7 PROSECA_Imagen.m:

- Definición:

function PROSECA_Imagen

Page 99: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

83

- Argumentos de entrada:

Sin argumentos

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función esta llamada desde la ventana PROCESA_ROI,

muestra una interface grafica que permite al usuario

o Elegir una imagen y mostrarla por pantalla.

o Elegir una zona dentro de la imagen mediante dibujar un

polígono, se aplica una mascara a la imagen para generar el

polígono elegido y mostrarlo en una pantalla diferente a la

pantalla de la imagen original.

o Elegir una zona dentro de la imagen mediante definir un centro

y lado de un cuadrado, se corta el cuadrado según las medidas

elegidas y se presenta en una pantalla diferente a la pantalla de

la imagen original.

o Guardar los resultados de estudio en fichero Matlab.

o Guardar los resultados de estudio en fichero Excel.

o y realizar y otras operaciones, cada operación es una llamada a

otra función en fichero fuera de la función PROSECA_Imagen

que vamos a presentar mas adelante.

6.1.8 Ayuda_PROCESA_Imagen.m:

- Definición:

function Ayuda_PROCESA_Imagen

Page 100: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

84

- Argumentos de entrada:

Sin argumentos

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función esta llamada desde la ventana

PROCESA_Imagen, su objetivo es mostrar instrucciones de manejo de

la ventana PROCESA_Imagen a fin de facilitar el uso de la aplicación

al usuario.

6.1.9 valoresSingulares.m :

- Definición:

function valoresSingulares

- Argumentos de entrada:

Im : la matriz que forma la imagen de interés.

- Argumentos de salida:

Sin argumentos

- Descripcion:

Esta función Da el vector V de valores singulares de A.

siendo Los valores singulares de A son las raíces cuadradas de

los auto valores de la matriz simétrica A’ A

-

Page 101: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

85

6.1.10 transpuesta.m:

- Definición:

function transpuesta

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función devuelve Matriz transpuesta de Im

6.1.11 sumaDiagonal.m:

- Definición:

function sumaDiagonal[8]

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés.

- Argumentos de salida:

Sin argumentos

- Descripción:

Page 102: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

86

Esta función devuelve Suma de los elementos de la diagonal de

Im

6.1.12 reciprocoCondicion.m:

- Definición:

function reciprocoCondicion

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función devuelve Recíproco de la condición de la matriz

Im

6.1.13 rango.m:

- Definición:

function rango

- Argumentos de entrada:

Im : la matriz que forma la imagen de interés.

- Argumentos de salida:

Sin argumentos

Page 103: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

87

- Descripción:

Esta función devuelve Rango de la matriz Im

6.1.14 raizCuadrada.m:

- Definicion:

function raizCuadrada[9]

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés.

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función devuelve Raíz cuadrada de la matriz cuadrada Im

6.1.15 norma.m :

- Definición:

function norma

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés.

Page 104: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

88

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función devuelve Norma de Im (mayor valor singular de la matriz Im)

6.1.16 mReducidaEscalonada.m:

- Definición:

function mReducidaEscalonada[10]

- Argumentos de entrada:

Im : la matriz que forma la imagen de interés.

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función devuelve Da la matriz reducida escalonada por

filas de Im. El número de filas no nulas de rref(Im) es el rango de la

matriz a Im

6.1.17 moda.m:

- Definición:

- function moda

Page 105: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

89

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta funcion devuelve la moda de l a matriz Im

6.1.18 mediana.m:

- Definición:

function mediana[11]

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés.

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta funcion devuelve la mediana de l a matriz Im

Page 106: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

90

6.1.19 media.m :

- Definición:

function media

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés.

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta funcion devuelve la media de l a matriz Im

6.1.20 mayorSumaFilas.m:

- Definicion:

function mayorSumaFilas

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción:

Page 107: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

91

Esta funcion devuelve la Norma infinita de Im (mayor suma de

la filas de Im)

6.1.21 mayorSumaColumnas.m:

- Definición:

function mayorSumaColumnas

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés.

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta funcion devuelve 1-norma de Im (mayor suma de las

columnas de Im)

6.1.22 inversa.m:

- Definición:

function inversa

- Argumentos de entrada:

Im : la matriz que forma la imagen de interés.

- Argumentos de salida:

Sin argumentos

Page 108: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

92

- Descripcion:

Esta funcion devuelve la Matriz inversa de la matriz cuadrada

Im (Im-1)

6.1.23 Determinante.m :

- Definición:

function Determinante

- Argumentos de entrada:

Im : la matriz que forma la imagen de interés.

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta funcion devuelve el Determinante de la matriz cuadrada

Im

6.1.24 desviacionEstadistica.m:

- Definición:

function desviacionEstadistica

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés.

Page 109: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

93

- Argumentos de salida:

Sin argumentos

- Descripcion:

Esta funcion devuelve el la desviación estándar(la raíz cuadrada

de la varianza) de la matriz Im

6.1.25 condicion.m:

- Definicion:

function condicion

- Argumentos de entrada:

Im : la matriz que forma la imagen de interés.

- Argumentos de salida:

Sin argumentos

- Descripcion:

Esta funcion devuelve la condición de la matriz Im (cociente

entre el mayor y el menor valor singular de Im)

6.1.26 coeficientesCorrelacion.m:

- Definición:

function coeficientesCorrelacion

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés.

Page 110: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

94

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función devuelve la matriz de coeficientes de correlación

para el Im, donde las columnas de Im representan variables aleatorias y

las filas representan observaciones.

6.1.27 funcion_f1.m:

- Definición:

function funcion_ f1

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés.

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función devuelve -1 de momento esta reservada

para que el usuario la implemente según la necesidad

6.1.28 funcion_f2.m:

- Definición:

function funcion_ f2

Page 111: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

95

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés.

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función devuelve -1 de momento esta reservada para que

el usuario la implemente según la necesidad

6.1.29 funcion_f3.m:

- Definición:

function funcion_ f3

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés.

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función devuelve -1 de momento esta reservada

para que el usuario la implemente según la necesidad

6.1.30 funcion_f4.m:

- Definición:

function funcion_f4

Page 112: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

96

- Argumentos de entrada:

Im : la matriz que forma la imagen de interés.

- Argumentos de salida:

Sin argumentos

- Descripción:

esta función devuelve -1 de momento esta reservada para que el

usuario la implemente según la necesidad

6.1.31 funcion_f5.m:

- Definición:

function funcion_f5

- Argumentos de entrada:

Im : la matriz que forma la imagen de interés.

- Argumentos de salida:

Sin argumentos

- Descripción:

esta función devuelve -1 de momento esta reservada para que el

usuario la implemente según la necesidad

6.1.32 funcion_f6.m:

- Definición:

function funcion_f6

- Argumentos de entrada:

Page 113: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

97

Im : la matriz que forma la imagen de interés.

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función devuelve -1 de momento esta reservada para que el

usuario la implemente según la necesidad

6.1.33 funcion_f7.m:

- Definición:

function funcion_f7

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción:

esta función devuelve -1 de momento esta reservada para que el

usuario la implemente según la necesidad

6.1.34 funcion_f8.m:

- Definición:

Page 114: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

98

function funcion_f8

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés.

- Argumentos de salida:

Sin argumentos

- Descripción:

esta función devuelve -1 de momento esta reservada para que

el usuario la implemente según la necesidad

6.1.35 funcion_f9.m:

- Definición:

function funcion_f9

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés.

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función devuelve -1 de momento esta reservada para que el

usuario la implemente según la necesidad

Page 115: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

99

6.1.36 funcion_f10.m:

- Definición:

function funcion_f10

- Argumentos de entrada:

Im : la matriz que forma la imagen de interés.

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función devuelve -1 de momento esta reservada para que el

usuario la implemente según la necesidad

6.1.37 funcion_f11.m:

- Definición:

function funcion_f11

- Argumentos de entrada:

Im : la matriz que forma la imagen de interés.

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función devuelve -1 de momento esta reservada para que el

usuario la implemente según la necesidad

Page 116: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

100

6.1.38 funcion_f12.m:

- Definición:

function funcion_f12

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés.

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función devuelve -1 de momento esta reservada para que el

usuario la implemente según la necesidad

6.1.39 funcion_f13.m:

- Definición:

function funcion_f13

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés.

- Argumentos de salida:

Sin argumentos

Page 117: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

101

- Descripción:

Esta función devuelve -1 de momento esta reservada para que el

usuario la implemente según la necesidad

6.1.40 funcion_f14.m:

- Definición:

function funcion_f14

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés.

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función devuelve -1 de momento esta reservada para que el

usuario la implemente según la necesidad

6.1.41 funcion_f15.m:

- Definición:

function funcion_f15

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés.

- Argumentos de salida:

Sin argumentos

Page 118: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

102

- Descripción:

Esta función devuelve -1 de momento esta reservada para que el

usuario la implemente según la necesidad

6.1.42 funcion_f16.m:

- Definición:

function funcion_f16

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés.

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función devuelve -1 de momento esta reservada para que el

usuario la implemente según la necesidad

6.1.43 funcion_f17.m:

- Definición:

function funcion_f17

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés.

- Argumentos de salida:

Page 119: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

103

Sin argumentos

- Descripción:

Esta función devuelve -1 de momento esta reservada para que el

usuario la implemente según la necesidad

6.1.44 funcion_f18.m:

- Definición:

function funcion_f18

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés.

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función devuelve -1 de momento esta reservada para que el

usuario la implemente según la necesidad

6.1.45 funcion_f19.m:

- Definición:

function funcion_f19

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés.

Page 120: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

104

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función devuelve -1 de momento esta reservada para que el

usuario la implemente según la necesidad

6.1.46 funcion_f20.m:

- Definición:

function funcion_f20

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés.

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función devuelve -1 de momento esta reservada para que el

usuario la implemente según la necesidad

6.1.47 funcion_f21.m:

- Definición:

function funcion_f21

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés.

Page 121: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

105

- Argumentos de salida:

Sin argumentos

- Descripcion:

Esta función devuelve -1 de momento esta reservada para que el

usuario la implemente según la necesidad

6.1.48 funcion_f22.m:

- Definición:

function funcion_f22

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés .

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función devuelve -1 de momento esta reservada para que el

usuario la implemente según la necesidad

6.1.49 funcion_f23.m:

- Definición:

function funcion_f23

Page 122: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

106

- Argumentos de entrada:

Im : la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función devuelve -1 de momento esta reservada para que

el usuario la implemente según la necesidad

6.1.50 funcion_f24.m:

- Definición:

function funcion_f24

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función devuelve -1 de momento esta reservada para que el

usuario la implemente según la necesidad

6.1.51 funcion_f25.m:

- Definición:

function funcion_f25

Page 123: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

107

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés .

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función devuelve -1 de momento esta reservada para que el

usuario la implemente según la necesidad

6.1.52 funcion_f26.m:

- Definición:

function funcion_f26

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida :

Sin argumentos

- Descripción:

Esta función devuelve -1 de momento esta reservada para que el

usuario la implemente según la necesidad

6.1.53 funcion_f27.m:

- Definición:

function funcion_f27

Page 124: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

108

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función devuelve -1 de momento esta reservada para que el

usuario la implemente según la necesidad

6.1.54 funcion_f28.m:

- Definición:

function funcion_f28

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función devuelve -1 de momento esta reservada

para que el usuario la implemente según la necesidad

Page 125: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

109

6.1.55 funcion_f29.m:

- Definición:

function funcion_f29

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función devuelve -1 de momento esta reservada para que el

usuario la implemente según la necesidad

6.1.56 funcion_f30.m:

- Definición:

function funcion_f30

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función devuelve -1 de momento esta reservada para que el

usuario la implemente según la necesidad

Page 126: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

110

6.1.57 funcion_f31.m:

- Definición:

function funcion_f31

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción:

Esta función devuelve -1 de momento esta reservada para que el

usuario la implemente según la necesidad

6.1.58 funcion_f32.m:

- Definición:

function funcion_f32

- Argumentos de entrada:

Im : la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

Page 127: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

111

6.1.59 funcion_f33.m:

- Definición:

function funcion_f33

- Argumentos de entrada:

Im : la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.60 funcion_f34.m :

- Definición:

function funcion_f34

- Argumentos de entrada:

Im : la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.61 funcion_f35.m:

- Definición:

function funcion_f35

Page 128: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

112

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.62 funcion_f36.m:

- Definición:

function funcion_f36

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.63 funcion_f37.m:

- Definición:

function funcion_f37

- Argumentos de entrada :

Im: la matriz que forma la imagen de interés

Page 129: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

113

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.64 funcion_f38.m:

- Definición:

function funcion_f38

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.65 funcion_f39.m:

- Definición:

function funcion_f39

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

Page 130: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

114

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.66 funcion_f40.m:

- Definición:

function funcion_f40

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.67 funcion_f41.m:

- Definición:

function funcion_f41

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

Page 131: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

115

6.1.68 funcion_f42.m:

- Definición:

function funcion_f42

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.69 funcion_f43.m:

- Definición:

function funcion_f43

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.70 funcion_f44.m:

- Definición:

function funcion_f44

Page 132: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

116

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.71 funcion_f45.m:

- Definición:

function funcion_f45

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.72 funcion_f46.m:

- Definición:

function funcion_f46

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

Page 133: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

117

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.73 funcion_f47.m:

- Definición:

function funcion_f47

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.74 funcion_f48.m:

- Definición:

function funcion_f48

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

Page 134: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

118

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.75 funcion_f49.m:

- Definición:

function funcion_f49

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.76 funcion_f50.m:

- Definición:

function funcion_f50

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

Page 135: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

119

6.1.77 funcion_f51.m:

- Definición:

function funcion_f51

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.78 funcion_f52.m:

- Definición:

function funcion_f52

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.79 funcion_f53.m:

- Definición:

function funcion_f53

Page 136: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

120

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.80 funcion_f54.m:

- Definición:

function funcion_f54

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.81 funcion_f55.m:

- Definición:

function funcion_f55

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

Page 137: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

121

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.82 funcion_f56.m:

- Definición:

function funcion_f56

- Argumentos de entrada :

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.83 funcion_f57.m:

- Definición:

function funcion_f57

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

Page 138: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

122

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.84 funcion_f58.m:

- Definición:

function funcion_f58

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.85 funcion_f59.m:

- Definición:

function funcion_f59

- Argumentos de entrada :

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

Page 139: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

123

6.1.86 funcion_f60.m:

- Definición:

function funcion_f60

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.87 funcion_f61.m:

- Definición:

function funcion_f61

- Argumentos de entrada :

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.88 funcion_f62.m:

- Definición:

function funcion_f62

Page 140: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

124

- Argumentos de entrada :

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.89 funcion_f63.m:

- Definición:

function funcion_f63

- Argumentos de entrada :

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.90 funcion_f64.m:

- Definición:

function funcion_f64

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

Page 141: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

125

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.91 funcion_f65.m:

- Definición:

function funcion_f65

- Argumentos de entrada :

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.92 funcion_f66.m:

- Definición:

function funcion_f66

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

Page 142: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

126

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.93 funcion_f67.m:

- Definición:

function funcion_f67

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.94 funcion_f68.m:

- Definición:

function funcion_f68

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

Page 143: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

127

6.1.95 funcion_f69.m:

- Definición:

function funcion_f69

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.96 funcion_f70.m:

- Definición:

function funcion_f70

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.97 funcion_f71.m:

- Definición:

function funcion_f71

Page 144: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

128

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.98 funcion_f72.m:

- Definición:

function funcion_f72

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.99 funcion_f73.m:

- Definición:

function funcion_f73

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

Page 145: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

129

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.100 funcion_f74.m:

- Definición:

function funcion_f74

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.101 funcion_f75.m:

- Definición:

function funcion_f75

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

Page 146: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

130

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.102 funcion_f76.m:

- Definición:

function funcion_f76

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.103 funcion_f77.m:

- Definición:

function funcion_f77

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

Page 147: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

6 FUNCIONES DEL PROGRAMA

131

6.1.104 funcion_f78.m:

- Definición:

function funcion_f78

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.105 funcion_f79.m:

- Definición:

function funcion_f79

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

6.1.106 funcion_f80.m:

- Definición:

function funcion_f80

Page 148: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

132

- Argumentos de entrada:

Im: la matriz que forma la imagen de interés

- Argumentos de salida:

Sin argumentos

- Descripción: esta función devuelve -1 de momento esta reservada para

que el usuario la implemente según la necesidad

Page 149: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

7 CONCLUCIONES Y LINEAS DE DESARROLLO

133

7 CONCLUCIONES Y LINEAS DE DESARROLLO Conclusiones

1. En este Proyecto se ha desarrollado una aplicación (programa software) para el análisis de

imágenes medicas en formato DICOM en un ordenador personal.

2. El programa elaborado permite

-abrir fichero DICOM.

-leer la información contenida en el fichero DICOM.

-Eliminar la información personal contenida en el fichero DICOM y guardar una copia exacta

con los datos generales, configurando un estudio anónimo adecuado para su uso.

-Convertir una imagen DICOM en imagen en formato JPG.

-Elegir una región de estudio de imagen con dos métodos diferentes.

-Aplicar un total de veinte operaciones estadísticas de estudio de matrices.

-Identificar el número de objetos de una imagen y calcular el área de cada objeto.

3. Se ha realizado un conjunto de pruebas de uso con ficheros de imagen médica estándar

comprobándose el correcto funcionamiento de la aplicación. Los tiempos de procesado de las

imágenes son muy satisfactorios (en el orden de varios minutos) en un ordenador personal de

gama media.

Este programa cumple con el planteamiento inicial de servir como herramienta de ayuda a los

médicos y investigadores (del Hospital Universitario Virgen del Rocío, en Sevilla) en el estudio

de las imágenes medicas en formato DICOM.

Según se ha visto ofrece varias utilidades de manejo de imagen, y operaciones de estudio de

matrices, que facilitan la tarea de estos profesionales .

Page 150: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

7 CONCLUCIONES Y LINEAS DE DESARROLLO

134

Líneas de desarrollo

1. En los ficheros de código de la aplicación se deja margen de mejora según futuras

necesidades, con ochenta módulos funcionales predefinidos para que en el futuro se

puedan implementar en los mismos diferentes códigos específicos según necesidad, sin

modificar la jerarquía PROCESA o afectar al funcionamiento existente .

2. Convertirla en formato ejecutable para poder utilizarla sin tener Matlab® instalado en el

ordenador.

Page 151: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

BIBLIOGRAFIA Y REFERENCIAS

135

BIBLIOGRAFIA Y REFERENCIAS Bibliografía

Imágenes processing with matlab – Kendall T.

Referencias

[1]https://www.google.fr/search?q=rice.png&source=lnms&tbm=isch&sa=X&ved=0ahUKEwj

05duevfXZAhWJfFAKHaNeAzAQ_AUICigB&biw=1417&bih=729#imgrc=Ek1TKezwSeblc

M:

[2]https://www.google.fr/search?biw=1427&bih=687&tbm=isch&sa=1&ei=DnKuWpX9L4ffw

AKswpeYDg&q=radiografo&oq=radiografo&gs_l=psy-

ab.1.0.0l6j0i30k1j0i5i30k1j0i24k1j0i10i24k1.2834.2834.0.4671.1.1.0.0.0.0.73.73.1.1.0....0...1c.

1.64.psy-ab..0.1.73....0.gtTP7s9_1OE

[3]https://www.google.fr/search?biw=1427&bih=687&tbm=isch&sa=1&ei=FHKuWs_QJ9DT

wQKo1724AQ&q=Imagen+DICOM&oq=Imagen+DICOM&gs_l=psy-

ab.3..0j0i24k1l2.29091.34901.0.35190.14.9.1.4.4.0.65.440.9.9.0....0...1c.1.64.psy-

ab..0.14.477...0i30k1j0i10i24k1.0.46KWl_Azyg4

[4] https://www.mathworks.com/

[5]https://en.wikibooks.org/

[6]https://matlab.developpez.com/

[7]https://www.lawebdelprogramador.com/cursos/Matlab/6606-Aprender-a-programar-con-

Matlab.html

[8]https://www.tutellus.com/ciencias-aplicadas/ingenierias/aprende-a-programar-con-matlab-

3185

[9]https://es.wikipedia.org/wiki/Wikipédia

[10]https://definicion.de/

[11]https://www.radiantviewer.com/es/

[12]https://support.office.com/es-es/article/crear-un-diagrama-de-bloques-f7e11f20-45d9-4c31-

92c9-16a87a6b6fee

[13]https://www.google.fr/search?client=firefox-b-

ab&dcr=0&q=elementos+de+un+diagrama+de+bloques&sa=X&ved=0ahUKEwiV5ZaElrLZAh

Page 152: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

136

WrLMAKHW6DCxgQ1QII4AEoBQ&biw=1366&bih=65

[14]https://es.wikihow.com/

[15]https://support.office.com/es-es/article/tareas-b%C3%A1sicas-en-word-2010-eeff6556-

2d15-47d2-a04a-7ed74e99a484

[16]http://ctms.engin.umich.edu/CTMS/index.php?aux=Home

Page 153: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

137

APENDICE. CODIGO DEL PROGRAMA:

function varargout = PROCESA(varargin)

% PROCESA MATLAB code for PROCESA.fig

% PROCESA, by itself, creates a new PROCESA or raises the

existing

% singleton*.

%

% H = PROCESA returns the handle to a new PROCESA or the handle

to

% the existing singleton*.

%

% PROCESA('CALLBACK',hObject,eventData,handles,...) calls the

local

% function named CALLBACK in PROCESA.M with the given input

arguments.

%

% PROCESA('Property','Value',...) creates a new PROCESA or raises

the

% existing singleton*. Starting from the left, property value

pairs are

% applied to the GUI before PROCESA_OpeningFcn gets called. An

% unrecognized property name or invalid value makes property

application

% stop. All inputs are passed to PROCESA_OpeningFcn via

varargin.

%

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows

only one

Page 154: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

138

% instance to run (singleton)".

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help PROCESA

% Last Modified by GUIDE v2.5 17-Jan-2018 02:04:14

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @PROCESA_OpeningFcn, ...

'gui_OutputFcn', @PROCESA_OutputFcn, ...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

% --- Executes just before PROCESA is made visible.

function PROCESA_OpeningFcn(hObject, eventdata, handles, varargin)

Page 155: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

139

% This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% varargin command line arguments to PROCESA (see VARARGIN)

a=imread('PROCESA.png');

image(a)

axis off

% Choose default command line output for PROCESA

handles.output = hObject;

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes PROCESA wait for user response (see UIRESUME)

% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.

function varargout = PROCESA_OutputFcn(hObject, eventdata, handles)

% varargout cell array for returning output args (see VARARGOUT);

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure

varargout{1} = handles.output;

Page 156: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

140

% --- Breve descripcion de los autores del proyecto

function Autores_Callback(hObject, eventdata, handles)

% hObject handle to Autores (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

Autores;

% --- Continuar en la aplicacion procesa.

function pushbutton2_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

PROCESA_ROI

% --- cerrar la ventana y salir de la aplicacion.

function pushbutton3_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton3 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

close(gcbf);

function varargout = Autores(varargin)

% AUTORES MATLAB code for Autores.fig

% AUTORES, by itself, creates a new AUTORES or raises the

Page 157: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

141

existing

% singleton*.

%

% H = AUTORES returns the handle to a new AUTORES or the handle

to

% the existing singleton*.

%

% AUTORES('CALLBACK',hObject,eventData,handles,...) calls the

local

% function named CALLBACK in AUTORES.M with the given input

arguments.

%

% AUTORES('Property','Value',...) creates a new AUTORES or raises

the

% existing singleton*. Starting from the left, property value

pairs are

% applied to the GUI before Autores_OpeningFcn gets called. An

% unrecognized property name or invalid value makes property

application

% stop. All inputs are passed to Autores_OpeningFcn via

varargin.

%

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows

only one

% instance to run (singleton)".

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help Autores

% Last Modified by GUIDE v2.5 23-Jan-2018 22:34:14

% Begin initialization code - DO NOT EDIT

Page 158: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

142

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @Autores_OpeningFcn, ...

'gui_OutputFcn', @Autores_OutputFcn, ...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

% --- Executes just before Autores is made visible.

function Autores_OpeningFcn(hObject, eventdata, handles, varargin)

% This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% varargin command line arguments to Autores (see VARARGIN)

a=imread('Autores.png');

image(a)

axis off

Page 159: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

143

% Choose default command line output for Autores

handles.output = hObject;

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes Autores wait for user response (see UIRESUME)

% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.

function varargout = Autores_OutputFcn(hObject, eventdata, handles)

% varargout cell array for returning output args (see VARARGOUT);

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure

varargout{1} = handles.output;

% --- Volver a la aplicacion.

function pushbutton1_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

PROCESA;

close(gcbf);

Page 160: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

144

function varargout = PROCESA_ROI(varargin)

% PROCESA_ROI MATLAB code for PROCESA_ROI.fig

% PROCESA_ROI, by itself, creates a new PROCESA_ROI or raises the

existing

% singleton*.

%

% H = PROCESA_ROI returns the handle to a new PROCESA_ROI or the

handle to

% the existing singleton*.

%

% PROCESA_ROI('CALLBACK',hObject,eventData,handles,...) calls the

local

% function named CALLBACK in PROCESA_ROI.M with the given input

arguments.

%

% PROCESA_ROI('Property','Value',...) creates a new PROCESA_ROI

or raises the

% existing singleton*. Starting from the left, property value

pairs are

% applied to the GUI before PROCESA_ROI_OpeningFcn gets called.

An

% unrecognized property name or invalid value makes property

application

% stop. All inputs are passed to PROCESA_ROI_OpeningFcn via

varargin.

%

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows

Page 161: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

145

only one

% instance to run (singleton)".

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help PROCESA_ROI

% Last Modified by GUIDE v2.5 08-Feb-2018 20:44:43

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @PROCESA_ROI_OpeningFcn, ...

'gui_OutputFcn', @PROCESA_ROI_OutputFcn, ...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

% --- Executes just before PROCESA_ROI is made visible.

Page 162: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

146

function PROCESA_ROI_OpeningFcn(hObject, eventdata, handles, varargin)

% This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% varargin command line arguments to PROCESA_ROI (see VARARGIN)

a=imread('dep.png');

axes(handles.axes1);

image(a)

axis off

b=imread('unii.png');

axes(handles.axes2);

image(b)

axis off

% Choose default command line output for PROCESA_ROI

handles.output = hObject;

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes PROCESA_ROI wait for user response (see UIRESUME)

% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.

function varargout = PROCESA_ROI_OutputFcn(hObject, eventdata,

handles)

% varargout cell array for returning output args (see VARARGOUT);

Page 163: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

147

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure

varargout{1} = handles.output;

function edit1_Callback(hObject, eventdata, handles)

% hObject handle to edit1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text

% str2double(get(hObject,'String')) returns contents of edit1

as a double

% --- Executes during object creation, after setting all properties.

function edit1_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns

called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

Page 164: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

148

end

function edit2_Callback(hObject, eventdata, handles)

% hObject handle to edit2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit2 as text

% str2double(get(hObject,'String')) returns contents of edit2

as a double

% --- Executes during object creation, after setting all properties.

function edit2_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns

called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

Page 165: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

149

function edit3_Callback(hObject, eventdata, handles)

% hObject handle to edit3 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit3 as text

% str2double(get(hObject,'String')) returns contents of edit3

as a double

% --- Executes during object creation, after setting all properties.

function edit3_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit3 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns

called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function edit4_Callback(hObject, eventdata, handles)

% hObject handle to edit4 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

Page 166: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

150

% Hints: get(hObject,'String') returns contents of edit4 as text

% str2double(get(hObject,'String')) returns contents of edit4

as a double

% --- Executes during object creation, after setting all properties.

function edit4_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit4 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns

called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function edit5_Callback(hObject, eventdata, handles)

% hObject handle to edit5 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit5 as text

% str2double(get(hObject,'String')) returns contents of edit5

as a double

Page 167: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

151

% --- Executes during object creation, after setting all properties.

function edit5_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit5 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns

called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function edit6_Callback(hObject, eventdata, handles)

% hObject handle to edit6 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit6 as text

% str2double(get(hObject,'String')) returns contents of edit6

as a double

% --- Executes during object creation, after setting all properties.

function edit6_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit6 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns

Page 168: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

152

called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

% --- Executes on button press in pushbutton1.

function pushbutton1_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

Ayuda_ROI;

% --- Executes on button press in pushbutton2.

function pushbutton2_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global a b d e f g

a = get(handles.edit1,'String');

if isempty(a)

msgbox(sprintf('Introduzca el campo Proyecto'),'Error','Error');

return

else

a = char(a);

end

Page 169: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

153

b = get(handles.edit2,'String');

if isempty(b)

msgbox(sprintf('Introduzca el campo Estudio'),'Error','Error');

return

else

b = char(b);

end

d = get(handles.edit3,'String');

if isempty(d)

msgbox(sprintf('Introduzca el campo Caso'),'Error','Error');

return

else

d = char(d);

end

e = get(handles.edit4,'String');

if isempty(e)

msgbox(sprintf('Introduzca el campo Corte'),'Error','Error');

return

else

e = char(e);

end

f = get(handles.edit5,'String');

if isempty(f)

msgbox(sprintf('Introduzca el campo Muestra'),'Error','Error');

return

else

Page 170: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

154

f = char(f);

end

g = get(handles.edit6,'String');

if isempty(g)

msgbox(sprintf('Introduzca el campo Otro'),'Error','Error');

return

else

g = char(g);

end

a = strcat (a,b,d,e,f,g);

PROSECA_Imagen;

% --- Executes on button press in pushbutton3.

function pushbutton3_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton3 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global a b d e f g

a = get(handles.edit1,'String');

if isempty(a)

msgbox(sprintf('Introduzca el campo Proyecto'),'Error','Error');

return

Page 171: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

155

else

a = char(a);

end

b = get(handles.edit2,'String');

if isempty(b)

msgbox(sprintf('Introduzca el campo Estudio'),'Error','Error');

return

else

b = char(b);

end

d = get(handles.edit3,'String');

if isempty(d)

msgbox(sprintf('Introduzca el campo Caso'),'Error','Error');

return

else

d = char(d);

end

e = get(handles.edit4,'String');

if isempty(e)

msgbox(sprintf('Introduzca el campo Corte'),'Error','Error');

return

else

e = char(e);

end

f = get(handles.edit5,'String');

if isempty(f)

Page 172: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

156

msgbox(sprintf('Introduzca el campo Muestra'),'Error','Error');

return

else

f = char(f);

end

g = get(handles.edit6,'String');

if isempty(g)

msgbox(sprintf('Introduzca el campo Otro'),'Error','Error');

return

else

g = char(g);

end

a = strcat (a,b,d,e,f,g);

PROCESA_DICOM;

%end

% --- Executes on button press in pushbutton4.

function pushbutton4_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton4 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

PROCESA;

close(gcbf);

Page 173: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

157

function varargout = Ayuda_ROI(varargin)

% AYUDA_ROI MATLAB code for Ayuda_ROI.fig

% AYUDA_ROI, by itself, creates a new AYUDA_ROI or raises the

existing

% singleton*.

%

% H = AYUDA_ROI returns the handle to a new AYUDA_ROI or the

handle to

% the existing singleton*.

%

% AYUDA_ROI('CALLBACK',hObject,eventData,handles,...) calls the

local

% function named CALLBACK in AYUDA_ROI.M with the given input

arguments.

%

% AYUDA_ROI('Property','Value',...) creates a new AYUDA_ROI or

raises the

% existing singleton*. Starting from the left, property value

pairs are

% applied to the GUI before Ayuda_ROI_OpeningFcn gets called. An

% unrecognized property name or invalid value makes property

application

% stop. All inputs are passed to Ayuda_ROI_OpeningFcn via

varargin.

%

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows

only one

% instance to run (singleton)".

Page 174: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

158

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help Ayuda_ROI

% Last Modified by GUIDE v2.5 15-Feb-2018 10:24:02

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @Ayuda_ROI_OpeningFcn, ...

'gui_OutputFcn', @Ayuda_ROI_OutputFcn, ...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

% --- Executes just before Ayuda_ROI is made visible.

function Ayuda_ROI_OpeningFcn(hObject, eventdata, handles, varargin)

% This function has no output args, see OutputFcn.

Page 175: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

159

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% varargin command line arguments to Ayuda_ROI (see VARARGIN)

c=imread('AyudaProcesaRoi.png');

axes(handles.axes2);

image(c)

axis off

% Choose default command line output for Ayuda_ROI

handles.output = hObject;

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes Ayuda_ROI wait for user response (see UIRESUME)

% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.

function varargout = Ayuda_ROI_OutputFcn(hObject, eventdata, handles)

% varargout cell array for returning output args (see VARARGOUT);

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure

varargout{1} = handles.output;

Page 176: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

160

% --- Executes on button press in pushbutton1.

function pushbutton1_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

PROCESA_ROI;

close(gcbf);

% --- Executes on button press in pushbutton2.

function pushbutton2_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

PROCESA_ROI

function varargout = PROCESA_DICOM(varargin)

% PROCESA_DICOM MATLAB code for PROCESA_DICOM.fig

% PROCESA_DICOM, by itself, creates a new PROCESA_DICOM or raises

the existing

% singleton*.

Page 177: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

161

%

% H = PROCESA_DICOM returns the handle to a new PROCESA_DICOM or

the handle to

% the existing singleton*.

%

% PROCESA_DICOM('CALLBACK',hObject,eventData,handles,...) calls

the local

% function named CALLBACK in PROCESA_DICOM.M with the given input

arguments.

%

% PROCESA_DICOM('Property','Value',...) creates a new

PROCESA_DICOM or raises the

% existing singleton*. Starting from the left, property value

pairs are

% applied to the GUI before PROCESA_DICOM_OpeningFcn gets called.

An

% unrecognized property name or invalid value makes property

application

% stop. All inputs are passed to PROCESA_DICOM_OpeningFcn via

varargin.

%

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows

only one

% instance to run (singleton)".

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help PROCESA_DICOM

% Last Modified by GUIDE v2.5 13-Feb-2018 10:29:52

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

Page 178: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

162

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @PROCESA_DICOM_OpeningFcn, ...

'gui_OutputFcn', @PROCESA_DICOM_OutputFcn, ...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

% --- Executes just before PROCESA_DICOM is made visible.

function PROCESA_DICOM_OpeningFcn(hObject, eventdata, handles,

varargin)

% This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% varargin command line arguments to PROCESA_DICOM (see VARARGIN)

axes(handles.axes1);

axis off

a=imread('dep.png');

axes(handles.axes2);

Page 179: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

163

image(a)

axis off

b=imread('unii.png');

axes(handles.axes3);

image(b)

axis off

% Choose default command line output for PROCESA_DICOM

handles.output = hObject;

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes PROCESA_DICOM wait for user response (see UIRESUME)

% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.

function varargout = PROCESA_DICOM_OutputFcn(hObject, eventdata,

handles)

% varargout cell array for returning output args (see VARARGOUT);

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure

varargout{1} = handles.output;

% --- Executes on button press in pushbutton1.

Page 180: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

164

function pushbutton1_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

%abrir imagen DICOM y mostrarla por pantalla.

global path I

[path, user_cance]=imgetfile();

if user_cance

msgbox(sprintf('Error'),'Error','Error');

return

end

[I,map]=dicomread(path);

axes(handles.axes1);

imshow(I,map);

% --- Executes on button press in pushbutton2.

function pushbutton2_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% guardar copia de la imagen DICOM

global I map a

name = strcat(a, 'DICOMcopia.dcm');

dicomwrite(I,map,name);

Page 181: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

165

% --- Executes on button press in pushbutton3.

function pushbutton3_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton3 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global path Info

Info = infoDICOM(path);

workspace; % me abre el wokspace

% --- Executes on button press in pushbutton4.

function pushbutton4_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton4 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% crear una imagen con la imformacion personal borrada //anonimar

global a path

nameanonim = strcat(a, 'Anonima.dcm'); % guardar la copia anonima con

el nombre ROI

dicomanon(path,nameanonim);

workspace; % me abre el wokspace

% --- Executes on button press in pushbutton5.// convertir DICOM to

JGP

function pushbutton5_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton5 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

%convertir DICOM a imagen

Page 182: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

166

global I a

name = strcat(a, 'JPGcopia.jpg');

image = uint8(255* mat2gray(I));

imwrite(image,name,'jpg');

% --- Executes on button press in pushbutton6.// guardar .Mat

function pushbutton6_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton6 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global a

save(a);

% --- Executes on button press in pushbutton7.

function pushbutton7_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton7 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global anonima Info a

name = strcat (a,'copia.xls');

xlswrite(name, Info ,'hoja1');

% --- Executes on button press in pushbutton8.

function pushbutton8_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton8 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

Page 183: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

167

% handles structure with handles and user data (see GUIDATA)

Ayuda_PROCESA_DICOM;

% --- Executes on button press in pushbutton9.

function pushbutton9_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton9 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

PROCESA;

close(gcbf);

% --- Executes on button press in pushbutton10.

function pushbutton10_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton10 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

close(gcbf);

% --- Executes on button press in pushbutton11.

function pushbutton11_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton11 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

PROSECA_Imagen;

Page 184: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

168

function varargout = Ayuda_PROCESA_DICOM(varargin)

% AYUDA_PROCESA_DICOM MATLAB code for Ayuda_PROCESA_DICOM.fig

% AYUDA_PROCESA_DICOM, by itself, creates a new

AYUDA_PROCESA_DICOM or raises the existing

% singleton*.

%

% H = AYUDA_PROCESA_DICOM returns the handle to a new

AYUDA_PROCESA_DICOM or the handle to

% the existing singleton*.

%

% AYUDA_PROCESA_DICOM('CALLBACK',hObject,eventData,handles,...)

calls the local

% function named CALLBACK in AYUDA_PROCESA_DICOM.M with the given

input arguments.

%

% AYUDA_PROCESA_DICOM('Property','Value',...) creates a new

AYUDA_PROCESA_DICOM or raises the

% existing singleton*. Starting from the left, property value

pairs are

% applied to the GUI before Ayuda_PROCESA_DICOM_OpeningFcn gets

called. An

% unrecognized property name or invalid value makes property

application

% stop. All inputs are passed to Ayuda_PROCESA_DICOM_OpeningFcn

via varargin.

%

Page 185: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

169

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows

only one

% instance to run (singleton)".

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help

Ayuda_PROCESA_DICOM

% Last Modified by GUIDE v2.5 13-Feb-2018 17:13:29

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @Ayuda_PROCESA_DICOM_OpeningFcn,

...

'gui_OutputFcn', @Ayuda_PROCESA_DICOM_OutputFcn,

...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

Page 186: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

170

% --- Executes just before Ayuda_PROCESA_DICOM is made visible.

function Ayuda_PROCESA_DICOM_OpeningFcn(hObject, eventdata, handles,

varargin)

% This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% varargin command line arguments to Ayuda_PROCESA_DICOM (see

VARARGIN)

c=imread('AyudaProcesaDICOM.png');

axes(handles.axes1);

image(c)

axis off

% Choose default command line output for Ayuda_PROCESA_DICOM

handles.output = hObject;

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes Ayuda_PROCESA_DICOM wait for user response (see

UIRESUME)

% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.

function varargout = Ayuda_PROCESA_DICOM_OutputFcn(hObject, eventdata,

handles)

% varargout cell array for returning output args (see VARARGOUT);

Page 187: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

171

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure

varargout{1} = handles.output;

function varargout = PROSECA_Imagen(varargin)

% PROSECA_IMAGEN MATLAB code for PROSECA_Imagen.fig

% PROSECA_IMAGEN, by itself, creates a new PROSECA_IMAGEN or

raises the existing

% singleton*.

%

% H = PROSECA_IMAGEN returns the handle to a new PROSECA_IMAGEN

or the handle to

% the existing singleton*.

%

% PROSECA_IMAGEN('CALLBACK',hObject,eventData,handles,...) calls

the local

% function named CALLBACK in PROSECA_IMAGEN.M with the given

input arguments.

%

% PROSECA_IMAGEN('Property','Value',...) creates a new

PROSECA_IMAGEN or raises the

% existing singleton*. Starting from the left, property value

pairs are

% applied to the GUI before PROSECA_Imagen_OpeningFcn gets

Page 188: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

172

called. An

% unrecognized property name or invalid value makes property

application

% stop. All inputs are passed to PROSECA_Imagen_OpeningFcn via

varargin.

%

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows

only one

% instance to run (singleton)".

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help PROSECA_Imagen

% Last Modified by GUIDE v2.5 12-Feb-2018 11:05:42

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @PROSECA_Imagen_OpeningFcn, ...

'gui_OutputFcn', @PROSECA_Imagen_OutputFcn, ...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

Page 189: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

173

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

% --- Executes just before PROSECA_Imagen is made visible.

function PROSECA_Imagen_OpeningFcn(hObject, eventdata, handles,

varargin)

% This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% varargin command line arguments to PROSECA_Imagen (see VARARGIN)

axes(handles.axes1);%//pantalla Region a procesar.

axis off

axes(handles.axes2);%//pantalla Imagen Original.

axis off

a=imread('dep.png');

axes(handles.axes3);

image(a)

axis off

b=imread('unii.png');

axes(handles.axes4);

image(b)

axis off

% Choose default command line output for PROSECA_Imagen

handles.output = hObject;

Page 190: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

174

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes PROSECA_Imagen wait for user response (see UIRESUME)

% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.

function varargout = PROSECA_Imagen_OutputFcn(hObject, eventdata,

handles)

% varargout cell array for returning output args (see VARARGOUT);

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure

varargout{1} = handles.output;

% --- Executes on button press in pushbutton2.// elegir la region

diagonal.

function pushbutton2_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

%%global im4

%%im4= imcrop;

global im im4

%Captura una regi?n

h=impoly; %Captura una regi?n

Page 191: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

175

resume(h); %reasume ejecucion

%Crear la nm?scara

maskImage = createMask(h)

%%whos maskImage

% Mask the image with the ellipse.

%im4 = im.* cast(maskImage, class(im));

im4 = im.* cast(maskImage, class(im));

%axes(handles.axes2);

imshow(im4,'Parent',handles.axes1);

guidata(hObject,handles);

% --- Executes on button press in pushbutton3.

function pushbutton3_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton3 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global im im3

a = handles.edit9 ;

%set(handles.text2,'string',a);

[x,y]=ginput(1);

%im3 =im (x-(a/2):x+(a/2)-1,y-(a/2):y+(a/2)-1);

im3 =im (x-(a/2):x+(a/2),y-(a/2):y+(a/2));

%im3 =im (x-50:x+50,y-50:y+50);

imshow(im3,'Parent',handles.axes1);

%Pixel = impixel;

guidata(hObject,handles);

Page 192: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

176

% --- Executes on button press in pushbutton4.// Abrir imagen

original.

function pushbutton4_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton4 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global im im2

[path, user_cance]=imgetfile();

if user_cance

msgbox(sprintf('Error'),'Error','Error');

return

end

im=imread(path);

im=im2double(im); %convercion a double

im2=im; % para procesarla luego.

axes(handles.axes2);

imshow(im2);

guidata(hObject,handles);

% --- Executes on button press in pushbutton5.// guardar imagen

original .

function pushbutton5_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton5 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global im2

%rgb = getimage(handles.axes2);

%if isempty(rgb),return,end

%formatos = {'*.jpg','JPG(*.jpg)';'*.tif,TIF(*.tif)'};

Page 193: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

177

[nomb,ruta]= uiputfile('*.jpg','GUARDAR IMAGEN');

%if nomb == 0 , return , end ;

fName = fullfile(ruta,nomb);

%imwrite(rgb,fName);

imwrite(im2,fName);

% --- Executes on button press in pushbutton6.

function pushbutton6_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton6 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

%errordlg('Haga 2 click para medir distancia (doble click para

terminar)...','Aviso');

%return;

while 1

%errordlg('Haga 2 click para medir distancia (doble click para

terminar)...','Aviso');

%disp('Haga 2 click para medir distancia (doble click para

terminar)...');

[x y]=ginput(2);

x1=x(1);x2=x(2);

y1=y(1);y2=y(2);

if (x1==x2) & (y1==y2), break;end;

d=sqrt((x1-x2)^2+(y1-y2)^2);

Xmm=d*0.264;

val = num2str(Xmm);

Page 194: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

178

set (handles.edit3,'string',val);

% disp( 'la distacia entre los dos puntos seleccionados en mm es = '

);

% disp(Xmm);

end;

% --- Executes on button press in pushbutton7.// se procesa 100

funcion

% para imagen

function pushbutton7_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton7 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global im5 Region med medi mod desv exp log raizCuad transp inve

deter

global rang sDiag vsingular cond rcond normm normC normF mredesc

coecorr

global f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15 f16 f17 f18

f19 f20 f21 f22 f23 f24 f25 f26

global f27 f28 f29 f30 f31 f32 f33 f34 f35 f36 f37 f38 f39 f40 f41 f42

f43 f44 f45 f46 f47 f48 f49 f50

global f51 f52 f53 f54 f55 f56 f57 f58 f59 f60 f61 f62 f63 f64 f65 f66

f67 f68 f69 f70 f71 f72 f73 f74

global f75 f76 f77 f78 f79 f80

Region = getimage(handles.axes1);

im5=im2double(Region);

workspace; % me abre el wokspace

Page 195: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

179

med = media(im5);

medi =mediana(im5);

mod = moda(im5);

desv = desviacionEstadistica(im5);

exp = exponencial(im5);

log = logaritmoNeperiano(im5);

raizCuad =raizCuadrada(im5);

transp =transpuesta(im5);

inve =inversa(im5);

deter =Determinante(im5);

rang =rango(im5);

sDiag =sumaDiagonal(im5);

vsingular =valoresSingulares(im5);

cond =condicion(im5);

rcond =reciprocoCondicion(im5);

normm =norma(im5);

normC =mayorSumaColumnas(im5);

normF =mayorSumaFilas(im5);

mredesc =mReducidaEscalonada(im5);

coecorr =coeficientesCorrelacion(im5);

f1 = funcion_1(im5);

f2 = funcion_f2(im5);

f3 = funcion_f3(im5);

f4 = funcion_f4(im5);

f5 = funcion_f5(im5);

f6 = funcion_f6(im5);

f7 = funcion_f7(im5);

f8 = funcion_f8(im5);

f9 = funcion_f9(im5);

f10 = funcion_f10(im5);

f11 = funcion_f11(im5);

Page 196: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

180

f12 = funcion_f12(im5);

f13 = funcion_f13(im5);

f14 = funcion_f14(im5);

f15 = funcion_f15(im5);

f16 = funcion_f16(im5);

f17 = funcion_f17(im5);

f18 = funcion_f18(im5);

f19 = funcion_f19(im5);

f20 = funcion_f20(im5);

f21 = funcion_f21(im5);

f22 = funcion_f22(im5);

f23 = funcion_f23(im5);

f24 = funcion_f24(im5);

f25 = funcion_f25(im5);

f26 = funcion_f26(im5);

f27 = funcion_f27(im5);

f28 = funcion_f28(im5);

f29 = funcion_f29(im5);

f30 = funcion_f30(im5);

f31 = funcion_f31(im5);

f32 = funcion_f32(im5);

f33= funcion_f33(im5);

f34= funcion_f34(im5);

f35= funcion_f35(im5);

f36= funcion_f36(im5);

f37= funcion_f37(im5);

f38= funcion_f38(im5);

f39= funcion_f39(im5);

f40= funcion_f40(im5);

f41= funcion_f41(im5);

f42= funcion_f42(im5);

Page 197: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

181

f43= funcion_f43(im5);

f44= funcion_f44(im5);

f45= funcion_f45(im5);

f46= funcion_f46(im5);

f47= funcion_f47(im5);

f48= funcion_f48(im5);

f49= funcion_f49(im5);

f50= funcion_f50(im5);

f51= funcion_f51(im5);

f52= funcion_f52(im5);

f53= funcion_f53(im5);

f54= funcion_f54(im5);

f55= funcion_f55(im5);

f56= funcion_f56(im5);

f57= funcion_f57(im5);

f58= funcion_f58(im5);

f59= funcion_f59(im5);

f60= funcion_f60(im5);

f61= funcion_f61(im5);

f62= funcion_f62(im5);

f63= funcion_f63(im5);

f64= funcion_f64(im5);

f65= funcion_f65(im5);

f66= funcion_f66(im5);

f67= funcion_f67(im5);

f68= funcion_f68(im5);

f69= funcion_f69(im5);

f70= funcion_f70(im5);

f71= funcion_f71(im5);

f72= funcion_f72(im5);

f73= funcion_f73(im5);

Page 198: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

182

f74= funcion_f74(im5);

f75= funcion_f75(im5);

f76= funcion_f76(im5);

f77= funcion_f77(im5);

f78= funcion_f78(im5);

f79= funcion_f79(im5);

f80= funcion_f80(im5);

% --- Executes on button press in pushbutton8.// guardar la region

elegida

function pushbutton8_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton8 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global im3

%rgb = getimage(handles.axes2);

%if isempty(rgb),return,end

%formatos = {'*.jpg','JPG(*.jpg)';'*.tif,TIF(*.tif)'};

[nomb,ruta]= uiputfile('*.jpg','GUARDAR IMAGEN');

%if nomb == 0 , return , end ;

fName = fullfile(ruta,nomb);

%imwrite(rgb,fName);

imwrite(im3,fName);

Page 199: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

183

% --- Executes on button press in pushbutton9.// guardar el Workspace

en

% .mat

function pushbutton9_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton9 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global a

save(a);

% --- Executes on button press in pushbutton10.// guardar los

resultados

% del workspace en xls file

function pushbutton10_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton10 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global a med medi mod desv exp log raizCuad transp inve deter

global rang sDiag vsingular cond rcond normm normC normF mredesc

coecorr

global f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15 f16 f17 f18

f19 f20 f21 f22 f23 f24 f25 f26

global f27 f28 f29 f30 f31 f32 f33 f34 f35 f36 f37 f38 f39 f40 f41 f42

f43 f44 f45 f46 f47 f48 f49 f50

global f51 f52 f53 f54 f55 f56 f57 f58 f59 f60 f61 f62 f63 f64 f65 f66

f67 f68 f69 f70 f71 f72 f73 f74

global f75 f76 f77 f78 f79 f80

%S= whos;

%i=0;

%xslfilename = 'CCCsavedFile.xslx';

Page 200: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

184

%xslfilename = 'EEEEEEEEEsavedFile.xls';

%for ii = 1:numel(S);

% i=i+1;

% cmd =sprintf('xslwrite(xslfilename,%s,''%s'');',S(ii).name

,S(ii).name);

% xlswrite(xslfilename,S(ii));

%end

%i=1;

name = strcat (a,'copia.xls');

xlswrite(name, med ,'hoja1');

xlswrite(name, medi ,'hoja2');

xlswrite(name, mod ,'hoja3');

xlswrite(name, desv ,'hoja4');

xlswrite(name, exp ,'hoja5');

xlswrite(name, log ,'hoja6');

xlswrite(name, raizCuad ,'hoja7');

xlswrite(name, transp ,'hoja8');

xlswrite(name, inve ,'hoja9');

xlswrite(name, deter ,'hoja10');

xlswrite(name, rang ,'hoja11');

xlswrite(name, sDiag ,'hoja12');

xlswrite(name, vsingular ,'hoja13');

xlswrite(name, cond ,'hoja14');

xlswrite(name, rcond ,'hoja15');

xlswrite(name, normm ,'hoja16');

xlswrite(name, normC ,'hoja17');

xlswrite(name, normF ,'hoja18');

xlswrite(name, mredesc ,'hoja19');

Page 201: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

185

xlswrite(name, coecorr ,'hoja20');

xlswrite(name, f1 ,'hoja21');

xlswrite(name, f2 ,'hoja22');

xlswrite(name, f3 ,'hoja23');

xlswrite(name, f4 ,'hoja24');

xlswrite(name, f5 ,'hoja25');

xlswrite(name, f6 ,'hoja25');

xlswrite(name, f7 ,'hoja26');

xlswrite(name, f8 ,'hoja27');

xlswrite(name, f9 ,'hoja28');

xlswrite(name, f10 ,'hoja29');

xlswrite(name, f11,'hoja30');

xlswrite(name, f12 ,'hoja31');

xlswrite(name, f13 ,'hoja32');

xlswrite(name, f14 ,'hoja33');

xlswrite(name, f15 ,'hoja34');

xlswrite(name, f16 ,'hoja35');

xlswrite(name, f17 ,'hoja36');

xlswrite(name, f18 ,'hoja37');

xlswrite(name, f19 ,'hoja38');

xlswrite(name, f20 ,'hoja39');

xlswrite(name, f21 ,'hoja40');

xlswrite(name, f22 ,'hoja41');

xlswrite(name, f23 ,'hoja42');

xlswrite(name, f24 ,'hoja43');

xlswrite(name, f25 ,'hoja45');

xlswrite(name, f26 ,'hoja46');

xlswrite(name, f27 ,'hoja47');

xlswrite(name, f28 ,'hoja48');

xlswrite(name, f29 ,'hoja49');

xlswrite(name, f30 ,'hoja50');

Page 202: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

186

xlswrite(name, f31 ,'hoja51');

xlswrite(name, f32 ,'hoja52');

xlswrite(name, f33 ,'hoja53');

xlswrite(name, f34 ,'hoja54');

xlswrite(name, f35 ,'hoja55');

xlswrite(name, f36 ,'hoja56');

xlswrite(name, f37 ,'hoja57');

xlswrite(name, f38 ,'hoja58');

xlswrite(name, f39 ,'hoja59');

xlswrite(name, f40 ,'hoja60');

xlswrite(name, f41,'hoja61');

xlswrite(name, f42 ,'hoja62');

xlswrite(name, f43 ,'hoja63');

xlswrite(name, f44 ,'hoja64');

xlswrite(name, f45 ,'hoja65');

xlswrite(name, f46 ,'hoja66');

xlswrite(name, f47 ,'hoja67');

xlswrite(name, f48 ,'hoja68');

xlswrite(name, f49 ,'hoja69');

xlswrite(name, f50 ,'hoja70');

xlswrite(name, f51 ,'hoja71');

xlswrite(name, f52,'hoja72');

xlswrite(name, f53,'hoja73');

xlswrite(name, f54,'hoja74');

xlswrite(name, f55,'hoja75');

xlswrite(name, f56,'hoja76');

xlswrite(name, f57,'hoja77');

xlswrite(name, f58,'hoja78');

xlswrite(name, f59,'hoja79');

xlswrite(name, f60,'hoja80');

xlswrite(name, f61,'hoja81');

Page 203: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

187

xlswrite(name, f62,'hoja82');

xlswrite(name, f63,'hoja83');

xlswrite(name, f64,'hoja84');

xlswrite(name, f65,'hoja85');

xlswrite(name, f66,'hoja86');

xlswrite(name, f67,'hoja87');

xlswrite(name, f68,'hoja88');

xlswrite(name, f69,'hoja89');

xlswrite(name, f70,'hoja90');

xlswrite(name, f71,'hoja91');

xlswrite(name, f72,'hoja92');

xlswrite(name, f73,'hoja93');

xlswrite(name, f74,'hoja94');

xlswrite(name, f75,'hoja95');

xlswrite(name, f76,'hoja96');

xlswrite(name, f77,'hoja97');

xlswrite(name, f78,'hoja98');

xlswrite(name, f79,'hoja99');

xlswrite(name, f80,'hoja100');

% --- Executes on button press in pushbutton11.

function pushbutton11_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton11 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

Page 204: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

188

Ayuda_PROCESA_Imagen;

% --- Executes on button press in pushbutton12.

function pushbutton12_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton12 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

PROCESA;

close(gcbf);

% --- Executes on button press in pushbutton13.

function pushbutton13_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton13 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

close(gcbf);

function edit1_Callback(hObject, eventdata, handles)%// lctura del

lado

% hObject handle to edit1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text

Page 205: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

189

% str2double(get(hObject,'String')) returns contents of edit1

as a double

newStrVal= get(hObject,'String') ;

newVal=str2double(newStrVal);

%COMPROBAMOS QUE LOS DATOS DE ENTRDA SON VALORES NUMERICOS VALIDOS

SINO

% HAY QUE ENSE?AR UN MENSAJE (LOS DATOS NO SON VALIDOS)

if isnan(newVal);

errordlg('Valor incorrecto')

return

end

handles.edit9=newVal ;

guidata(hObject,handles);

% --- Executes during object creation, after setting all properties.

function edit1_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns

called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

Page 206: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

190

function edit2_Callback(hObject, eventdata, handles)

% hObject handle to edit2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit2 as text

% str2double(get(hObject,'String')) returns contents of edit2

as a double

% --- Executes during object creation, after setting all properties.

function edit2_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns

called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function edit3_Callback(hObject, eventdata, handles)

% hObject handle to edit3 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

Page 207: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

191

% Hints: get(hObject,'String') returns contents of edit3 as text

% str2double(get(hObject,'String')) returns contents of edit3

as a double

% --- Executes during object creation, after setting all properties.

function edit3_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit3 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns

called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function varargout = Ayuda_PROCESA_Imagen(varargin)

% AYUDA_PROCESA_IMAGEN MATLAB code for Ayuda_PROCESA_Imagen.fig

% AYUDA_PROCESA_IMAGEN, by itself, creates a new

AYUDA_PROCESA_IMAGEN or raises the existing

% singleton*.

%

% H = AYUDA_PROCESA_IMAGEN returns the handle to a new

AYUDA_PROCESA_IMAGEN or the handle to

% the existing singleton*.

Page 208: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

192

%

% AYUDA_PROCESA_IMAGEN('CALLBACK',hObject,eventData,handles,...)

calls the local

% function named CALLBACK in AYUDA_PROCESA_IMAGEN.M with the

given input arguments.

%

% AYUDA_PROCESA_IMAGEN('Property','Value',...) creates a new

AYUDA_PROCESA_IMAGEN or raises the

% existing singleton*. Starting from the left, property value

pairs are

% applied to the GUI before Ayuda_PROCESA_Imagen_OpeningFcn gets

called. An

% unrecognized property name or invalid value makes property

application

% stop. All inputs are passed to Ayuda_PROCESA_Imagen_OpeningFcn

via varargin.

%

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows

only one

% instance to run (singleton)".

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help

Ayuda_PROCESA_Imagen

% Last Modified by GUIDE v2.5 13-Feb-2018 16:39:14

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @Ayuda_PROCESA_Imagen_OpeningFcn,

Page 209: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

193

...

'gui_OutputFcn', @Ayuda_PROCESA_Imagen_OutputFcn,

...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

% --- Executes just before Ayuda_PROCESA_Imagen is made visible.

function Ayuda_PROCESA_Imagen_OpeningFcn(hObject, eventdata, handles,

varargin)

% This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% varargin command line arguments to Ayuda_PROCESA_Imagen (see

VARARGIN)

c=imread('AyudaProcesaIMG.png');

axes(handles.axes1);

image(c)

axis off

Page 210: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

194

% Choose default command line output for Ayuda_PROCESA_Imagen

handles.output = hObject;

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes Ayuda_PROCESA_Imagen wait for user response (see

UIRESUME)

% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.

function varargout = Ayuda_PROCESA_Imagen_OutputFcn(hObject,

eventdata, handles)

% varargout cell array for returning output args (see VARARGOUT);

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure

varargout{1} = handles.output;

function [valoresSingulares]= valoresSingulares(Im)

valoresSingulares = svd(Im) ;

assignin('base', 'valoresSingulares', valoresSingulares );

return;

Page 211: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

195

function [transpuesta]= transpuesta(Im)

transpuesta = transpose(Im) ;

assignin('base', 'transpuesta', transpuesta );

return;

function [sumaDiagonal]= sumaDiagonal(Im)

sumaDiagonal = trace(Im) ;

assignin('base', 'sumaDiagonal', sumaDiagonal );

return;

function [reciprocoCondicion]= reciprocoCondicion(Im)

reciprocoCondicion = rcond(Im) ;

assignin('base', 'reciprocoCondicion', reciprocoCondicion );

return;

function [rango]= rango(Im)

rango = rank(Im) ;

assignin('base', 'rango', rango );

return;

function [raizCuadrada]= raizCuadrada(Im)

Page 212: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

196

raizCuadrada = sqrtm(Im) ;

assignin('base', 'raizCuadrada', raizCuadrada );

return;

function [norma]= norma(Im)

norma = norm(Im) ;

assignin('base', 'norma', norma );

return;

function [mReducidaEscalonada]= mReducidaEscalonada(Im)

mReducidaEscalonada = rref(Im) ;

assignin('base', 'mReducidaEscalonada', mReducidaEscalonada );

return;

function [moda]= moda(Im)

moda = mode(Im) ;

assignin('base', 'moda', moda );

return;

function [mediana]= mediana(Im)

mediana = median(Im) ;

assignin('base', 'mediana', mediana );

return;

Page 213: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

197

function [media]= media(Im)

media = mean(Im) ;

assignin('base', 'media', media );

return;

function [mayorSumaFilas]= mayorSumaFilas(Im)

mayorSumaFilas = norm(Im,inf) ;

assignin('base', 'mayorSumaFilas', mayorSumaFilas );

return;

function [mayorSumaColumnas]= mayorSumaColumnas(Im)

mayorSumaColumnas = norm(Im,1) ;

assignin('base', 'mayorSumaColumnas', mayorSumaColumnas );

return;

function [inversa]= inversa(Im)

inversa = inv(Im) ;

assignin('base', 'inversa', inversa );

return;

function [Determinante]= Determinante(Im)

Determinante = det(Im) ;

assignin('base', 'Determinante', Determinante );

Page 214: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

198

return;

function [desviacionEstadistica]= desviacionEstadistica(Im)

desviacionEstadistica = std(Im) ;

assignin('base', 'desviacionEstadistica', desviacionEstadistica );

return;

function [condicion]= condicion(Im)

condicion = cond(Im) ;

assignin('base', 'condicion', condicion );

return;

function [coeficientesCorrelacion]= coeficientesCorrelacion(Im)

coeficientesCorrelacion = corrcoef(Im) ;

assignin('base', 'coeficientesCorrelacion', coeficientesCorrelacion

);

return;

function [funcion_f80]= funcion_f80(Im)

funcion_f80 = -1 ;

assignin('base', 'funcion_f80', funcion_f80 );

return;

function [funcion_f79]= funcion_f79(Im)

Page 215: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

199

funcion_f79 = -1 ;

assignin('base', 'funcion_f79', funcion_f79 );

return;

function [funcion_f78]= funcion_f78(Im)

funcion_f78 = -1 ;

assignin('base', 'funcion_f78', funcion_f78 );

return;

function [funcion_f77]= funcion_f77(Im)

funcion_f77 = -1 ;

assignin('base', 'funcion_f77', funcion_f77 );

return;

function [funcion_f76]= funcion_f76(Im)

funcion_f76 = -1 ;

assignin('base', 'funcion_f76', funcion_f76 );

return;

function [funcion_f75]= funcion_f75(Im)

funcion_f75 = -1 ;

assignin('base', 'funcion_f75', funcion_f75 );

return;

function [funcion_f74]= funcion_f74(Im)

funcion_f74 = -1 ;

assignin('base', 'funcion_f74', funcion_f74 );

return;

Page 216: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

200

function [funcion_f73]= funcion_f73(Im)

funcion_f73 = -1 ;

assignin('base', 'funcion_f73', funcion_f73 );

return;

function [funcion_f72]= funcion_f72(Im)

funcion_f72 = -1 ;

assignin('base', 'funcion_f72', funcion_f72 );

return;

function [funcion_f71]= funcion_f71(Im)

funcion_f71 = -1 ;

assignin('base', 'funcion_f71', funcion_f71 );

return;

function [funcion_f70]= funcion_f70(Im)

funcion_f70 = -1 ;

assignin('base', 'funcion_f70', funcion_f70 );

return;

function [funcion_f69]= funcion_f69(Im)

funcion_f69 = -1 ;

assignin('base', 'funcion_f69', funcion_f69 );

return;

function [funcion_f68]= funcion_f68(Im)

funcion_f68 = -1 ;

assignin('base', 'funcion_f68', funcion_f68 );

return;

Page 217: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

201

function [funcion_f67]= funcion_f67(Im)

funcion_f67 = -1 ;

assignin('base', 'funcion_f67', funcion_f67 );

return;

function [funcion_f66]= funcion_f66(Im)

funcion_f66 = -1 ;

assignin('base', 'funcion_f66', funcion_f66 );

return;

function [funcion_f65]= funcion_f65(Im)

funcion_f65 = -1 ;

assignin('base', 'funcion_f65', funcion_f65 );

return;

function [funcion_f64]= funcion_f64(Im)

funcion_f64 = -1 ;

assignin('base', 'funcion_f64', funcion_f64 );

return;

function [funcion_f63]= funcion_f63(Im)

funcion_f63 = -1 ;

assignin('base', 'funcion_f63', funcion_f63 );

return;

Page 218: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

202

function [funcion_f62]= funcion_f62(Im)

funcion_f62 = -1 ;

assignin('base', 'funcion_f62', funcion_f62 );

return;

function [funcion_f61]= funcion_f61(Im)

funcion_f61 = -1 ;

assignin('base', 'funcion_f61', funcion_f61 );

return;

function [funcion_f60]= funcion_f60(Im)

funcion_f60 = -1 ;

assignin('base', 'funcion_f60', funcion_f60 );

return;

function [funcion_f59]= funcion_f59(Im)

funcion_f59 = -1 ;

assignin('base', 'funcion_f59', funcion_f59 );

return;

function [funcion_f58]= funcion_f58(Im)

funcion_f58 = -1 ;

assignin('base', 'funcion_f58', funcion_f58 );

Page 219: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

203

return;

function [funcion_f57]= funcion_f57(Im)

funcion_f57 = -1 ;

assignin('base', 'funcion_f54', funcion_f57 );

return;

function [funcion_f56]= funcion_f56(Im)

funcion_f56 = -1 ;

assignin('base', 'funcion_f56', funcion_f56 );

return;

function [funcion_f55]= funcion_f55(Im)

funcion_f55 = -1 ;

assignin('base', 'funcion_f55', funcion_f55 );

return;

function [funcion_f54]= funcion_f54(Im)

funcion_f54 = -1 ;

assignin('base', 'funcion_f54', funcion_f54 );

return;

function [funcion_f53]= funcion_f53(Im)

funcion_f53 = -1 ;

assignin('base', 'funcion_f53', funcion_f53 );

return;

Page 220: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

204

function [funcion_f52]= funcion_f52(Im)

funcion_f52 = -1 ;

assignin('base', 'funcion_f52', funcion_f52 );

return;

function [funcion_f51]= funcion_f51(Im)

funcion_f51 = -1 ;

assignin('base', 'funcion_f51', funcion_f51 );

return;

function [funcion_f50]= funcion_f50(Im)

funcion_f50 = -1 ;

assignin('base', 'funcion_f50', funcion_f50 );

return;

function [funcion_f49]= funcion_f49(Im)

funcion_f49 = -1 ;

assignin('base', 'funcion_f48', funcion_f49 );

return;

function [funcion_f48]= funcion_f48(Im)

funcion_f48 = -1 ;

assignin('base', 'funcion_f48', funcion_f48 );

return;

Page 221: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

205

function [funcion_f47]= funcion_f47(Im)

funcion_f47 = -1 ;

assignin('base', 'funcion_f47', funcion_f47 );

return;

function [funcion_f46]= funcion_f46(Im)

funcion_f46 = -1 ;

assignin('base', 'funcion_f46', funcion_f46 );

return;

function [funcion_f45]= funcion_f45(Im)

funcion_f45 = -1 ;

assignin('base', 'funcion_f45', funcion_f45 );

return;

function [funcion_f44]= funcion_f44(Im)

funcion_f44 = -1 ;

assignin('base', 'funcion_1', funcion_f44 );

return;

function [funcion_f42]= funcion_f42(Im)

funcion_f42 = -1 ;

assignin('base', 'funcion_f42', funcion_f42 );

return;

Page 222: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

206

function [funcion_f41]= funcion_f41(Im)

funcion_f41 = -1 ;

assignin('base', 'funcion_f41', funcion_f41 );

return;

function [funcion_f40]= funcion_f40(Im)

funcion_f40 = -1 ;

assignin('base', 'funcion_f40', funcion_f40 );

return;

function [funcion_f39]= funcion_f39(Im)

funcion_f39 = -1 ;

assignin('base', 'funcion_f39', funcion_f39 );

return;

function [funcion_f38]= funcion_f38(Im)

funcion_f38 = -1 ;

assignin('base', 'funcion_f38', funcion_f38 );

return;

function [funcion_f37]= funcion_f37(Im)

funcion_f37 = -1 ;

assignin('base', 'funcion_f37', funcion_f37 );

return;

Page 223: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

207

function [funcion_f36]= funcion_f36(Im)

funcion_f36 = -1 ;

assignin('base', 'funcion_f36', funcion_f36 );

return;

function [funcion_f35]= funcion_f35(Im)

funcion_f35 = -1 ;

assignin('base', 'funcion_f35', funcion_f35 );

return;

function [funcion_f34]= funcion_f34(Im)

funcion_f34 = -1 ;

assignin('base', 'funcion_f34', funcion_f34 );

return;

function [funcion_f33]= funcion_f33(Im)

funcion_f33 = -1 ;

assignin('base', 'funcion_f33', funcion_f33 );

return;

function [funcion_f32]= funcion_f32(Im)

funcion_f32 = -1 ;

assignin('base', 'funcion_f32', funcion_f32 );

return;

Page 224: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

208

function [funcion_f31]= funcion_f31(Im)

funcion_f31 = -1 ;

assignin('base', 'funcion_f31', funcion_f31 );

return;

function [funcion_f30]= funcion_f30(Im)

funcion_f30 = -1 ;

assignin('base', 'funcion_f30', funcion_f30 );

return;

function [funcion_f29]= funcion_f29(Im)

funcion_f29 = -1 ;

assignin('base', 'funcion_f29', funcion_f29 );

return;

function [funcion_f28]= funcion_f28(Im)

funcion_f28 = -1 ;

assignin('base', 'funcion_f12', funcion_f28 );

return;

Page 225: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

209

function [funcion_f27]= funcion_f27(Im)

funcion_f27 = -1 ;

assignin('base', 'funcion_f12', funcion_f27 );

return;

function [funcion_f26]= funcion_f26(Im)

funcion_f26 = -1 ;

assignin('base', 'funcion_f26', funcion_f26 );

return;

function [funcion_f25]= funcion_f25(Im)

funcion_f25 = -1 ;

assignin('base', 'funcion_f25', funcion_f25 );

return;

function [funcion_f24]= funcion_f24(Im)

funcion_f24 = -1 ;

assignin('base', 'funcion_f24', funcion_f24 );

return;

function [funcion_f23]= funcion_f23(Im)

funcion_f23 = -1 ;

assignin('base', 'funcion_f12', funcion_f23 );

return;

function [funcion_f22]= funcion_f22(Im)

Page 226: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

210

funcion_f22 = -1 ;

assignin('base', 'funcion_f22', funcion_f22 );

return;

function [funcion_f21]= funcion_f21(Im)

funcion_f21 = -1 ;

assignin('base', 'funcion_f21', funcion_f21 );

return;

function [funcion_f20]= funcion_f20(Im)

funcion_f20 = -1 ;

assignin('base', 'funcion_f20', funcion_f20 );

return;

% step 1 I = imread ('rice.png'); imshow (I); % step 2 background = imopen (I , strel ('disk',15)); % step 3 figure, surf(double(background(1:8:end,1:8:end))),zlim([0 255]); set (gca , 'ydir' , 'reverse'); % step 4 I2 = I - background; figure , imshow (I2); % step 5 I3= imadjust(I2); figure , imshow(I3); % step 6 level = graythresh(I3); bw = im2bw (I3,level); bw = bwareaopen(bw,50); figure , imshow (bw);

Page 227: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/12410/fichero/PFC-2410-MARAH.pdf · lo bueno y lo malo. viii . ix Resumen Las contribuciones

APENDICE. CODIGO DEL PROGRAMA:

211

% step 7 cc = bwconncomp(bw,4); cc.NumObjects; % step 8 grain = false(size(bw)); grain(cc.PixelIdxList{50})= true; figure,imshow(grain); % step 9 labeled = labelmatrix(cc); RGB_label = label2rgb(labeled,@spring, 'c' ,'shuffle'); figure , imshow(RGB_label); % step 10 graindata = regionprops (cc , 'basic'); graindata(50).Area; % step 11 grain_areas = [graindata.Area]; [min_area,idx] = min(grain_areas); grain = false(size(bw)); grain(cc.PixelIdxList{idx}) = true; figure, imshow(grain); % step 12 nbins = 20; figure, hist(grain_areas , nbins) title('Histograma del area de granos de arroz');