Proyecto Fin de Carrera - Servidor de la Biblioteca de...

44
Proyecto Fin de Carrera Ingeniería Industrial Desarrollo de software de conteo de anillos en otolitos Autor: Miguel Sánchez García-Pozuelo Tutor: David Muñoz de la Peña Sequedo Dpto. de Ingeniería de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2018

Transcript of Proyecto Fin de Carrera - Servidor de la Biblioteca de...

Page 1: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

Proyecto Fin de Carrera

Ingeniería Industrial

Desarrollo de software de conteo de anillos en

otolitos

Autor: Miguel Sánchez García-Pozuelo

Tutor: David Muñoz de la Peña Sequedo

Dpto. de Ingeniería de Sistemas y Automática

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/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han
Page 3: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

Proyecto Fin de Carrera

Ingeniería Industrial

Desarrollo de software de conteo de anillos en

otolitos

Autor:

Miguel Sánchez García-Pozuelo

Tutor:

David Muñoz de la Peña Sequedo

Catedrático de la Universidad de Sevilla

Dpto. de Ingeniería de Sistemas y Automática

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/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han
Page 5: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

Contenido

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

2. Objetivos ................................................................................................................... 4

3. Desarrollo ................................................................................................................. 5

3.1. Visita al Centro Oceanográfico de Málaga ........................................................ 5

3.2. Tecnología empleada ......................................................................................... 6

3.2.1. Librería CImg ............................................................................................... 6

3.2.2. Formularios de Windows ............................................................................ 7

3.2.3. Microsoft Visual Studio .............................................................................. 8

3.3. Estructura ........................................................................................................... 8

3.4. Conexión con la cámara ..................................................................................... 9

3.5. Conteo automático de anillos .......................................................................... 10

3.5.1. La polilínea ................................................................................................ 11

3.5.2. Filtrado de la imagen ................................................................................ 14

3.5.3. Algoritmo de conteo ................................................................................. 16

3.6. Interfaz gráfica ................................................................................................. 18

3.6.1. Información General ................................................................................. 19

3.6.2. Calibrar microscopio ................................................................................. 20

3.6.3. Transectos................................................................................................. 21

3.6.4. Guardar proyecto ..................................................................................... 27

4. Fase de experimentación ....................................................................................... 28

5. El código .................................................................................................................. 31

6. Conclusiones y trabajo futuro ................................................................................ 33

7. Bibliografía .............................................................................................................. 36

8. Tabla de imágenes .................................................................................................. 37

Page 6: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han
Page 7: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

1. Introducción

1

1. Introducción

La edad de los peces es útil para conocer la madurez, mortalidad y crecimiento de las

poblaciones de peces. Los métodos de estudio de longevidad de los bancos de peces se

dividen en tres grupos: el método estadístico basado en el análisis de la distribución de

la frecuencia de la longitud de los peces, el método empírico basado en la observación

de especímenes criados en cautividad o marcaje y recaptura de peces con su posterior

estudio anatómico de alguna de las partes del pez como son las escamas, las vértebras

o los otolitos.

El método estadístico parte de que los especímenes de la misma edad tendrán un

tamaño similar en una distribución normal, por lo que se pueden distribuir las

poblaciones de cada año basándose en el tamaño.

Imagen 1. Ejemplo de la distribución longitud-edad de un banco de peces (S. fuegensis)

El marcaje consiste en marcar un pez con su edad para su posterior captura. La

comparación del tamaño de los peces criados en libertad con peces en cautividad tiene

el inconveniente de que al ser diferentes las condiciones a las que se someten el

tamaño puede ser diferente.

Page 8: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

Desarrollo de software de conteo de anillos en otolitos

2

Imagen 2. Pez espada marcado

Los otolitos son estructuras formadas por carbonato cálcico que se alojan en el oído

del pez, aunque el otolito en los individuos más jóvenes tiende a tener forma esférica,

la forma y tamaño varía de unas especies a otras en los adultos. El otolito crece en

todas las direcciones a lo largo de la vida del pez depositándose material orgánico en la

superficie del mismo.

Si se secciona el otolito se puede apreciar una capa opaca y otra transparente por cada

año del pez, además con un tratamiento adecuado y un microscopio de mayor

aumento se verán las capas que se depositan diariamente en el contorno del órgano,

pudiendo determinar el número de días desde el nacimiento del pez.

El proceso para el estudio del otolito consiste primero en la extracción del mismo de la

cabeza del pez. El otolito se incluye en una matriz de resina para después cortar el

otolito pasando por el centro.

Imagen 3. Extracción de un otolito (OTO - OTOLITH TRAINING ONLINE)

Al cortar el otolito es importante pasar por el centro para alcanzar a ver todos los

anillos y no estimar por debajo la edad. El otolito embebido en la matriz de resina se

lija y pule hasta obtener una lámina de unas 20-40 micras de espesor.

Otro método si el otolito es lo bastante grande es dar dos cortes y después pulir

finamente las caras expuestas.

Page 9: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

1. Introducción

3

Imagen 4. Detalle de un otolito cortado

Una vez se tiene la muestra lista para el estudio es observado al microscopio sobre una

fuente de luz.

Imagen 5. Otolito visto a trasluz en el microscopio

Ahora se contarían las líneas que parten del núcleo que representan cada día de edad

del pez en cuestión.

Hay que tener en cuenta que la lectura no siempre será posible ya que se puede haber

cortado el otolito sin atravesar todas las capas, al lijar y limar el otolito pueden saltar

partes del mismo o simplemente que la morfología del mismo dificulte la lectura.

Page 10: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

Desarrollo de software de conteo de anillos en otolitos

4

2. Objetivos

Este trabajo pretende desarrollar una aplicación software que de soporte a la labor de

investigación de la edad de los peces a través del análisis de los otolitos. El programa

contará con una interfaz gráfica que permite crear un nuevo proyecto, registrar en un

formulario los datos relevantes de la captura, comunicarse con una cámara conectada

a un microscopio para mostrar por pantalla la imagen de la muestra analizada,

registrar los datos del análisis y guardar todos los datos en una tabla para la aplicación

de Microsoft Office EXCEL.

A través del Centro Oceanográfico de Málaga se ha conocido de primera mano la labor

realizada por los investigadores, tanto la técnica de preparación de la muestra como el

trabajo realizado con el software disponible y el equipamiento del que disponen para

dichas tareas.

Además, con el objetivo de reducir el tiempo empleado por el investigador se ha

implementado una funcionalidad que permite contar automáticamente los anillos que

contiene el otolito si se desea. Para ello el usuario del software deberá trazar en la

imagen del otolito (que está siendo capturado por la cámara y mostrado por pantalla)

una polilínea a través de la cual se contarán los anillos que cruzan dicha polilínea. La

razón por la que esta polilínea debe ser marcada por el investigador es porque los

anillos han de contarse desde un determinado punto del otolito hasta el borde

exterior, además de que en general la imagen del otolito tendrá zonas en las que no se

puedan distinguir los anillos debido a defectos en el otolito o debido a las lascas que

pueden desprenderse durante la preparación del mismo.

Page 11: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

3. Desarrollo

5

3. Desarrollo

El software de OTOLIVE se genera conjuntamente entre el proyecto fin de carrera

“Visión Artificial en el laboratorio biológico: Análisis de otolitos de especies marinas”

(Gerardo Tejada, Universidad de Sevilla 2012) centrado en la comunicación con la

cámara y este proyecto fin de carrera que gira en torno a la obtención de datos de los

otolitos. Ambos trabajos abarcan la generación de las interfaces gráficas necesarias y el

almacenamiento de los datos.

Para ello se trabajó conjuntamente, eligiendo el mismo lenguaje de programación, las

mismas librerías y acordando los argumentos de entrada y salida de las funciones para

que fuese sencillo unir los códigos en un solo software, así como diseñando una

interfaz gráfica que fuera coherente al ensamblar ambos trabajos.

El primero de los pasos fue la visita a los laboratorios donde se analizan los otolitos en

Málaga.

3.1. Visita al Centro Oceanográfico de Málaga

En la costa de Málaga se encuentra el Instituto Español de Oceanografía en el Centro

Oceanográfico de Málaga. El investigador Javier Rey Sanz (perteneciente al centro

oceanográfico) se encargó de guiar la visita además de aportar la información y

soporte desde el punto de vista de los estudios de los otolitos.

La visita comenzó con un paseo por las instalaciones del centro, allí se podían ver las

distintas fases del proceso de interpretación de los otolitos; por un lado había decenas

de peces capturados esperando para ser abiertos, otros ya habían sido seccionados y

el otolito extraído, y en otra zona se preparaban las muestras para poder ser vistas al

microscopio. En esta zona de la visita el investigador recalcó la importancia y

delicadeza de preparar las muestras, ya que se necesitan láminas de un espesor de

micras pulidas a mano, de ahí que en algunas muestras, al observarlas al microscopio

se puedan ver zonas sombreadas porque durante el proceso de pulido puede

desprenderse una lasca del otolito, dependiendo de cómo afecte a la visibilidad del

otolito puede significar tener que desechar la muestra.

Page 12: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

Desarrollo de software de conteo de anillos en otolitos

6

En la planta superior del edificio está la sala en la que se encuentra el microscopio con

la cámara conectada al mismo donde pudimos ver un ejemplo de lectura de los anillos

por parte de uno de los investigadores del centro.

Finalmente, Javier nos indicó una lista de necesidades o características que debería de

tener el software para poder sacarle partido:

- Poder ejecutarlo en Windows.

- Conexión con la cámara de la que dispone el microscopio.

- Rellenar un formulario con los datos de interés y resultados del análisis.

- Guardar el análisis en base de datos.

3.2. Tecnología empleada

El desarrollo de la aplicación se ha llevado a cabo en un sistema operativo Windows

Vista.

El lenguaje de programación utilizado es C++ debido a que las librerías de la cámara del

microscopio se encuentran dicho lenguaje así como que se dispone de la librería CImg

en C++ la cual tiene una gran cantidad de funciones que facilitan la labor de trabajar

con imágenes.

La cámara que se utiliza en el Centro Oceanográfico de Málaga para el estudio de los

otolitos es una MicroPublisher 3.3 RTV perteneciente a QImaging.

3.2.1. Librería CImg

Únicamente se ha necesitado esta librería para trabajar con las imágenes ya que

dispone de una amplia variedad de herramientas que han abarcado las necesidades

del proyecto. CImg define clases y métodos que permiten cargar y guardar archivos en

varios formatos, acceder a los valores de cada píxel, mostrar/transformar/filtrar

imágenes, dibujar figuras geométricas. Necesita poco recursos de memoria, una sola

cabecera CImg.h se incluye en el código a compilar y todas las funciones se realizan con

cuatro clases diferentes. Además CImg es una librería de código abierto con licencia de

tipo CeCILL-C o CeCILL. (http://cimg.eu/)

La licencia CeCILL está diseñada para la distribución de software libre. El código que se

ampara en esta licencia se puede utilizar, modificar y distribuir de manera libre,

independientemente del uso comercial que se le pudiera dar. Además el código

Page 13: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

3. Desarrollo

7

utilizado se puede distribuir en código fuente o como objetos resultantes de la

compilación, por lo que se puede proteger el código que se ha desarrollado de manera

original.

Sin embargo, si se ha modificado el código de una librería con licencia con licencia

CeCILL, dicho código modificado debe estar también distribuido con la misma licencia

aunque el resto del código pudiera tener una licencia más restrictiva en términos de

distribución. (http://www.cecill.info/licences/Licence_CeCILL-C_V1-en.txt)

En el caso concreto de este proyecto no se ha modificado el código de la librería CImg

por lo que si se quisiera distribuir o explotar el software no es necesario que el código

desarrollado se acoja a la licencia CeCILL.

3.2.2. Formularios de Windows

Windows Forms o formularios de Windows, es una librería orientada a objeto cuyas

clases se emplean para desarrollar la GUI (Graphic User Interface) de una aplicación.

En general se trabaja declarando las clases que se van a emplear y se muestran por

pantalla dichos objetos como son ventanas, cuadros de diálogo, cuadros de texto,

botones, desplegables, que muestran información o reciben información del usuario.

El aspecto que tienen las aplicaciones desarrolladas en Windows Forms se asemeja a

las aplicaciones de Windows, el usuario estará por lo tanto acostumbrado al aspecto

de dichas interfaces, la posición de los botones en las ventanas, la interacción del ratón

con los botones y cuadros o el desplazamiento usando el tabulador, por lo que una

persona acostumbrada a trabajar en Windows sabrá navegar por la aplicación de

manera intuitiva.

Estos formularios representan también una manera sencilla de programar una interfaz,

ya que la mayoría de las utilidades se podrán crear de manera visual por ejemplo para

crear un botón se accede al menú de botones disponibles y al seleccionar el que

queremos aparecerá en nuestra ventana de la aplicación. Una vez creado se puede

mover arrastrándolo con el ratón. Al generarse el botón se genera el código asociado a

la creación de dicho objeto y entonces se asigna que eventos o funciones han de

ocurrir, que dependiendo del tipo de objeto que hayamos creado tendrá disponible.

Page 14: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

Desarrollo de software de conteo de anillos en otolitos

8

3.2.3. Microsoft Visual Studio

Microsoft Visual Studio es un entorno de desarrollo integrado (IDE) para la creación de

páginas webs, servicios webs, programas para Windows y aplicaciones para móviles.

(https://msdn.microsoft.com)

Microsoft Visual Studio 2008 tiene herramientas para desarrollar aplicaciones con

Windows Forms de manera sencilla. Las ventanas, botones, cuadros de diálogo y el

resto de objetos que se muestran en la ventana de la aplicación se crean y configuran

en un entorno gráfico que genera de manera automática el código que implica la

creación de dichos objetos y sus llamadas a los métodos y eventos a medida que se

configuran.

La Universidad de Sevilla dispone de una versión de Microsoft Visual Studio 2008 a

disposición de los estudiantes para el desarrollo de aplicaciones con fines académicos

y dado que soporta C++ y facilita la creación de interfaces gráficas a través de Windows

Forms se decidió que sería el entorno de desarrollo adecuado para el software.

Si bien no es una librería, se quiere señalar que el guardado y lectura de trabajos en

EXCEL se realiza a través del namespace Microsoft::Office::Interop::Excel.

3.3. Estructura

En el siguiente gráfico se muestra como está estructurada la aplicación:

Imagen 6. Estructura de OTOLIVE

Page 15: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

3. Desarrollo

9

El usuario sería el investigador que va a realizar el análisis del otolito, el cual estará

preparado en el microscopio y la cámara conectada al ordenador.

La interfaz con la que se encuentra el usuario son las ventanas de los formularios de

Windows Forms y las ventanas o Displays con las que también cuenta la librería CImg.

3.4. Conexión con la cámara

Como se ha comentado previamente la cámara disponible es la MicroPublisher 3.3 RTV

que se puede ver en la Imagen 7.

Imagen 7. Cámara MicroPublisher 3.3 RTV (www.qimaging.com)

En la imagen se puede ver como la cámara está conectada a un microscopio de

ejemplo. El microscopio realiza la función de aumento de la imagen mediante las

lentes que se seleccionen y la cámara recibe la imagen de la muestra que se verá por

pantalla.

Para conocer la medida real de la imagen arrojada por la cámara se debe realizar una

calibración. La calibración de la imagen consiste en seleccionar los aumentos del

microscopio en función del tamaño del otolito a observar, una vez elegidos los

aumentos se coloca en el microscopio un calibrador de objetivos que contiene

sencillamente una escala con una medida precisa (por ejemplo 1 mm).

Page 16: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

Desarrollo de software de conteo de anillos en otolitos

10

Imagen 8. Ejemplo de una escala para calibrar

El software deberá tener una función que permita obtener la relación entre la distacia

en píxeles y la medida real, que se calculará señalando dos puntos en la imagen de la

que se conoce la medida real e indicando al programa dicha medida. Dicha relación se

almacena en una variable mm/píxel, que será últil para calcular el grosor de los anillos.

A nivel de programación la librería QCam ofrece todas las funciones necesarias para la

obtención de la imagen registrada por la cámara. Primero se cargan los drivers y se

accede a la cámara mediante un manejador o handle. La imagen obtenida en el

formato utilizado por la librería QCam se transforma al formato utilizado por la librería

CImg inicializando una imagen en CImg y asignando los valores pixel a pixel. Esta

transformación de formato es necesaria, ya que el formato de QCam solo se utiliza

para leer la imagen obtenida por la cámara y para el resto de tratamientos de

imágenes se utiliza CImg ya que las funciones que integra esta última son útiles para

trabajar con las mismas.

3.5. Conteo automático de anillos

El conteo automático se basa en los cambios de luminosidad que hay entre los anillos

del otolito. Se va a mostrar a continuación paso a paso como funciona OTOLIVE sin

entrar en detalle en el código C++.

Page 17: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

3. Desarrollo

11

3.5.1. La polilínea

Cuando se traza la línea se está marcando la zona que se quiere evaluar. Que serán los

píxeles de la imagen que se encuentran debajo de la línea.

Para poder evitar las imperfecciones que tienen las imágenes en los otolitos debidos a

luces o sombras producidos por otra causa que no sea la de un anillo de crecimiento se

ha optado por hacer una polilínea. Es importante que al continuar la polilínea no

volvamos hacia el centro (en el caso de estar contando desde el centro hacia afuera),

ya que si no se contarían varias veces el mismo anillo.

Imagen 9. Polilinea sobre otolito

En esta imagen vemos como se ha continuado la polilínea, marcada en amarillo, para

contar en la zona del otolito con mejor contraste pero salvando al mismo tiempo la

línea blanca que tiene justo por encima atravesando los anillos.

Page 18: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

Desarrollo de software de conteo de anillos en otolitos

12

Imagen 10. Ejemplo de conteo. Segmento marcado sobre el otolito

El primer paso para contar los anillos que cruzan la línea es abatir dicha línea

quedándonos con una imagen compuesta por una fila de pixeles. En el caso de una

polilínea se concatenan los segmentos abatidos para tener finalmente una sola fila de

píxeles.

Page 19: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

3. Desarrollo

13

Imagen 11. Sector junto a una ventana que muestra la línea

Imagen 12. La imagen a analizar tiene un pixel de alto

Cada pixel almacena el valor de intensidad correspondiente. Si se dibuja una gráfica de

luminosidad, siendo 255 el máximo y 0 el mínimo obtendríamos la curva de

luminosidad a lo largo de la línea.

Page 20: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

Desarrollo de software de conteo de anillos en otolitos

14

3.5.2. Filtrado de la imagen

Ya que el número de anillos se va a determinar contando el número de máximos de la

gráfica es importante que los cambios de intensidad se produzcan por los anillos y no

por sombras o reflejos originados por las imperfecciones de las muestras.

Para ello se va a filtrar el valor de la intensidad de cada píxel ponderándolo con los dos

píxeles anteriores y los dos píxeles siguientes

En la siguiente imagen se superponen la gráfica original y la gráfica filtrada.

Imagen 13. Diagrama frente a la línea analizada

La función del filtro tiene la siguiente expresión:

( )

( )

( )

( )

( )

( )

( )

( )

Los valores a, b, c y d deben sumar 100. En el caso a=100, b=c=d=0 tendríamos la

imagen original.

Page 21: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

3. Desarrollo

15

Por ejemplo, en el caso a=70, b=30, c=d=0 se está asignando a cada punto el 70% del

valor de la intensidad original más el 15% de la intensidad en el pixel anterior más el

15% de la intensidad en el pixel siguiente de la imagen original.

Imagen 14. Ejemplo de filtro a=70, b=30, c=d=0

Imagen 15. Ejemplo de filtro a=85, b=15, c=d=0

Por defecto se han dejado las constantes como a=70, b=30, c=d=0 que son las

constantes que mejores resultados han dado durante los experimentos. Es decir, al

contar automáticamente cuando se mantenían los coeficientes como a=70, b=30,

c=d=0 la gráfica filtrada eliminaba los “falsos” máximos no correspondientes a anillos

de crecimiento y el número de anillos contados era el mismo que el contado

manualmente. En cualquier caso dichos coeficientes son modificables desde la interfaz

gráfica, por lo que se pueden probar diferentes combinaciones.

Para realizar otro tipo de filtrado más haya de cambiar los coeficientes habría que

cambiar el filtro directamente desde el código fuente en C++. Como ha sido habitual en

Page 22: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

Desarrollo de software de conteo de anillos en otolitos

16

el desarrollo de la aplicación las funciones son independientes unas de otras evitando

el anidamiento innecesario. Por ello solo habría que modificar la función que recibe la

imagen unidimensional y que devuelve la imagen filtrada.

3.5.3. Algoritmo de conteo

Una vez filtrada la curva de la intensidad de la imagen unidimensional es necesario

contar el número de máximos que representan los anillos presentes en el otolito.

Para ello una función evalúa todos los puntos de la gráfica. Cuando un punto de la

gráfica tiene un valor superior de intensidad que el punto inmediatamente anterior y

que el punto inmediatamente posterior se considera un máximo relativo. Además para

los casos en que el máximo de la función tenga forma de escalón, es decir que al

evaluar un punto del escalón el valor de intensidad es mayor que el punto anterior

pero igual que el siguiente también se ha considerado máximo relativo. Esta

circunstancia no suele darse al filtrar la imagen pero puede darse el caso.

En las primeras versiones de OTOLIVE se marcaron con líneas los máximos para

comprobar visualmente que el código estaba contando lo que a simple vista

definiríamos como anillos. En la versión definitiva dichas marcas se han eliminado para

no entorpecer la lectura manual.

Page 23: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

3. Desarrollo

17

Imagen 16. Anillos marcados en azul

Imagen 17. Detalle de anillos marcados

Page 24: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

Desarrollo de software de conteo de anillos en otolitos

18

3.6. Interfaz gráfica

La ventana que nos encontramos al abrir la aplicación tiene el siguiente aspecto:

Imagen 18. Menú de inicio OTOLIVE

En el Menú inicial se puede gestionar el proyecto.

Imagen 19. Menú para gestionar el proyecto

Imagen 20. Acceso a las funciones de OTOLIVE

Page 25: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

3. Desarrollo

19

Imagen 21. Opciones de cámara

3.6.1. Información General

Imagen 22. Formulario Información General

Los datos que se introducen en este formulario se refieren a los datos de la captura del

pez, datos generales extraídos del espécimen y que son conocidos a priori por el

investigador.

Page 26: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

Desarrollo de software de conteo de anillos en otolitos

20

3.6.2. Calibrar microscopio

Imagen 23. Formulario Calibrar Microscopio

Para conocer la distancia real en las imágenes se calibra el microscopio obteniendo la

relación entre píxeles y mm de una imagen mostrada por la cámara. Para ello se coloca

una lámina con una escala, se señala con el ratón el inicio y el final de la escala y se

introduce la distancia real del segmento en el formulario. La relación mm/píxel

quedará almacenada.

Imagen 24. Escalada graduada

Page 27: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

3. Desarrollo

21

Imagen 25. Escala en la que se ha dibujado un segmento

Imagen 26. Se indican las lentes que lleva el microscopio y la distancia real

3.6.3. Transectos

Al abrir la aplicación de conteo, el programa reconocerá si la cámara del microscopio

está activa para tomar las imágenes de ella, en caso contrario permite trabajar a partir

de imágenes guardadas en la memoria del ordenador.

Page 28: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

Desarrollo de software de conteo de anillos en otolitos

22

Imagen 27. OTOLIVE detecta automáticamente que no hay cámara conectada

Cuando se ha capturado una imagen con la cámara o seleccionado una del disco duro

la siguiente ventana que aparece es el sector que se va a analizar tanto de manera

manual como automático.

En esta ventana se trazará la polilínea a lo largo de la cual el programa determinará el

número de anillos que cruza.

Imagen 28. Imagen tomada por la cámara o seleccionada desde un directorio

Page 29: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

3. Desarrollo

23

Cuando se presiona la tecla de enter o se haga doble clic izquierdo al dibujar un

segmento se considerará que el usuario ha dibujado la última línea y se mostrará una

nueva ventana con la información referente al sector y datos que serán introducidos

manualmente. Presionando la tecla de retroceso o el botón derecho se deshace el

último segmento dibujado.

Imagen 29. Esta ventana emerge al dibujar el último segmento

En el grupo polilínea se permite continuar la polilínea desde el último segmento en el

mismo transecto, mostrar el diagrama que compara la curva de intensidad real con la

filtrada y deshacer segmentos.

Se puede modificar la intensidad de la imagen original; es útil cuando hay zonas muy

oscuras o muy claras y el ojo humano no puede distinguir el salto de un anillo a otro,

además variar la intensidad no afecta al número máximo de anillos contados

automáticamente, ya que se toma de referencia para el conteo la imagen original.

Si el microscopio ha sido calibrado aparecerá la distancia total en mm de la polilínea y

el grosor medio de los anillos contados de modo automático.

Page 30: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

Desarrollo de software de conteo de anillos en otolitos

24

El número de anillos contados manualmente deben ser introducidos por el

investigador así como la calidad evaluada del 0 al 10 de acuerdo a su criterio. La

calidad de la medición determina como de seguro está el usuario de que los anillos

contados se corresponden con la edad real ya que habrá otolitos que por su forma o

debido a defectos derivados del lijado y pulido no permitan una clara determinación

de la edad y sea una aproximación.

El número de anillos contados automáticamente se basa en la curva de intensidad de

la imagen real que recorre la polilínea.

Imagen 30. Diagrama de intensidad de los píxeles de la imagen original bajo la polilínea

En el diagrama, la línea roja representa el valor de la intensidad a lo largo de la

polilínea trazada. Cada anillo está definido por un mínimo de intensidad y mediante el

conteo de los mínimos se obtiene el total de anillos que cruzan la polilínea. Los datos

originales son filtrados para eliminar falsos mínimos debidos a cambios de luminosidad

que no son debidos a los anillos, estos datos filtrados aparecen en verde.

Page 31: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

3. Desarrollo

25

Imagen 31. Configuración del filtro

El filtro se puede configurar de manera que si en una zona aparecen picos dobles para

anillos individuales se suavice la curva y cada anillo solo se cuente una vez; mientras

que si los cambios de intensidad son claramente debidos a la luminosidad que deja

pasar cada anillo se configura el filtro de manera que la curva filtrada se asemeje más a

la real.

Una vez han sido aceptados los datos de conteo del transecto aparecerá la ventana

con los datos globales de conteo, en la que se tiene la opción de seguir contando

anillos desde una imagen guardada en el ordenador, conectar con la cámara para

movernos a la siguiente región a analizar y configurar el filtro.

Además de poder restaurar todos los valores de conteo, deshacer el último transecto o

aceptar los datos y pasar al menú inicial.

Page 32: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

Desarrollo de software de conteo de anillos en otolitos

26

Imagen 32. Datos globales del conteo

La información que aparece es el número total de sectores evaluados, el número de

anillos totales contados tanto manualmente como automáticamente y la calidad media

de las imágenes que se han estudiado.

Al cabo de por ejemplo 4 mediciones, tenemos un resultado del siguiente modo:

Imagen 33. Datos globales tras analizar 4 transectos

Page 33: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

3. Desarrollo

27

3.6.4. Guardar proyecto

Los datos introducidos en el panel de información general y los resultados del análisis

del otolito se guardan en un fichero en formato EXCEL.

Imagen 34. Datos almacenados en EXCEL

Estos datos pueden ser recuperados en una sesión al abrir un proyecto desde OTOLIVE.

Page 34: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

Desarrollo de software de conteo de anillos en otolitos

28

4. Fase de experimentación

Para el desarrollo y testeo de la aplicación el Centro Oceanográfico de Málaga proveyó

de una serie de fotografías de muestras de otolitos preparadas para el estudio.

En este sector se puede medir a ojo con claridad por el grosor de los anillos y la

diferencia de claro a oscuro entre ellos. Al trazar la línea debemos tener en cuenta que

la parte externa está borrosa y si no se cruza por la parte en la que se distinguen los

anillos la medición automática será menor que la real.

Page 35: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

4. Fase de experimentación

29

En la segunda imagen del sector de otro otolito se traza una curva para recoger los

anillos internos y los externos, hay que sortear las manchas que aparecen en la imagen

ya que cada mancha contará como un anillo extra.

El otolito de esta imagen tiene forma achatada, para una mejor lectura se traza la línea

en la dirección de crecimiento del otolito ya que al estar las líneas más separadas se

puede contar de forma más clara tanto manual como automáticamente.

Page 36: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

Desarrollo de software de conteo de anillos en otolitos

30

En esta imagen de la sección de un otolito aparecen muchas manchas casi del tamaño

de un píxel por lo que se crea una gran cantidad de falsos anillos en el conteo

automático.

En esta muestra se pueden apreciar los anillos con mejor nitidez en la dirección del eje

de crecimiento hasta tal punto que la nitidez de la imagen y al no haber manchas en

esa zona la calidad del conteo automático es alta y se pueden contar un gran número

de anillos con una sola polilínea.

Page 37: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

5. El código

31

5. El código

En este apartado se explicarán brevemente las funciones desarrolladas sobre las que

se apoya este trabajo. Hay que destacar que para hacer un código sencillo de modificar

en versiones posteriores se han creado funciones siempre que una tarea se iba a

llamar más de una vez o que iba a aparecer en dos funciones o formularios diferentes.

De esta manera cambiando el código fuente de la función una vez no hará falta

modificar el resto del programa siempre y cuando los tipos, cantidad y orden los de

atributos de entrada y de salida de las funciones se mantengan.

nuevo_proyecto.cpp: mediante esta función se da comienzo a un nuevo trabajo

eliminando si hubiesen datos introducidos referentes a una medición en curso o

cargada.

guardar_trabajo.cpp: tras seleccionar una ubicación por el usuario se genera un

archivo de tipo Excel. En dicho Excel se escriben en las celdas de la primera hoja los

datos de la captura del pez y de las mediciones de otolitos pertenecientes al trabajo en

curso.

abrir_excel.cpp: abrir_excel muestra una ventana del explorador de Windows en la

que se selecciona un archivo de tipo Excel del que se cargan los datos de una lectura

previamente guardada.

dibujar_linea.cpp: la función dibujar línea permite al programa crear una polilínea

sobre la imagen deseada, con el uso del ratón y clicando sobre la imagen con el botón

principal se seleccionan los píxeles que serán el extremo de cada segmento de línea,

cada vez que se termine un segmento podremos seguir dibujando el siguiente

segmento. Los extremos de los segmentos se almacenan en una lista.

El color del segmento de línea cambia cuando se confirma el extremo del segmento,

los colores elegidos hacen contraste con el color blanco y negro de los otolitos.

Page 38: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

Desarrollo de software de conteo de anillos en otolitos

32

deshacer_segmento.cpp: haciendo clic con el botón secundario del ratón se deshace

el último segmento dibujado, función que también se puede realizar pulsando la tecla

de retroceso del teclado. Para finalizar la polilínea se hace doble clic al finalizar un

segmente o pulsando la tecla enter.

abatir_polilinea.cpp: la función abatir_polilinea recibe la imagen original y a través de

la lista de puntos tomados con el ratón al dibujar la polilínea. Se genera una imagen

unidimensional formada por los segmentos de la polilínea abatidos uno tras otro. El

abatimiento se realiza llamando a otra función.

abatir_linea.cpp: esta función es un ejemplo de cómo a lo largo del desarrollo del

código se ha separado en diferentes funciones siempre que es necesario y creando

subfunciones para facilitar reproceso del código y modificar secciones del mismo sin

afectar al resto.

Abatir_linea recibe una imagen y dos puntos que son las coordenadas de los extremos

de un segmento y devuelve una imagen unidimensional que se corresponde los píxeles

de la imagen original que quedan bajo el segmento dibujado.

regular_intensidad.cpp: a esta función se le llama para modificar la intensidad de la

imagen de la sección del otolito que se muestra por pantalla. Recibe una imagen y un

nivel de intensidad del 0 al 100 y devuelve la imagen con la intensidad modificada. Un

nivel de 50 se corresponde con el nivel de intensidad original.

conteo_minimos.cpp: conteo_minimos recibe una imagen unidimensional y devuelve

el número de máximos, aunque pueda parecer ambiguo el nombre original de mínimos

surgió al mostrar las gráficas en el las ventanas de display de CImg, ya que estas

aparecían invertidas al estar los ejes invertidos siendo el centro de origen la esquina

superior izquierda. Es solamente una cuestión de nomenclatura.

filtro_imagen_unidimensional.cpp: esta función recibe una imagen unidimensional y

le aplica un filtro que suaviza la variación de la intensidad. Devuelve otra imagen con

las mismas dimensiones.

comprobar_str_decimal.cpp: esta función chequea si la cadena de caracteres

introducida es un número decimal, forma parte de los chequeos a la hora de introducir

datos.

comprobar_str_entero.cpp: similar a la anterior, verifica si la cadena de caracteres es

un número entero.

obtener_diagrama.cpp: al llamar a esta función se muestra por pantalla la gráfica de la

intensidad de una imagen unidimensional superpuesta con la gráfica de la imagen

filtrada.

La función para

guardar el trabajo es

muy similar a la de

apertura, pero en este

caso el argumento que

recibe es la ruta en la

que se quiere guardar

el proyecto, se creará

un Excel y se rellenará

con la información

contenida en las

variables globales.

Page 39: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

6. Conclusiones y trabajo futuro

33

6. Conclusiones y trabajo futuro

Las mediciones realizadas mediante el conteo automático están condicionadas por

varios factores externos al programa como es la estructura y crecimiento del otolito

que dependiendo de si ha tendido a crecer de una forma esférica facilita la lectura,

mientras que si tiene ángulos acusados la concentración de capas en estas zonas

dificultan la lectura, la habilidad del científico que prepara la muestra, especialmente

en el proceso de pulido, ya que una muestra gruesa es opaca y no se distinguirían las

líneas entre capas se debe tener una muestra muy fina, y durante el proceso de pulido

pueden desprenderse capas del otolito. Adicionalmente el científico señalará donde

termina el núcleo del otolito y comienza la zona de crecimiento diario del pez, por lo

que su experiencia es fundamental.

Otros factores los aporta el programa y son decisivos en el resultado de la lectura. El

filtro que suaviza la curva de intensidad de la polilínea se ha desarrollado para obtener

el mejor resultado con las imágenes de otolitos disponibles durante el desarrollo de la

aplicación. Utilizando el conteo automático en un gran número de otolitos y

comparando las mediciones automáticas con las mediciones manuales de personal

cualificado se puede refactorizar la fórmula y código del filtro para adaptarlo a un

mayor número de tipos de otolitos.

La versión actual de la aplicación ofrece una interfaz atractiva para el usuario

acostumbrado a Windows, además se incluye en una sola aplicación el poder registrar

y recuperar los datos de mediciones del otolito y captura del pez y la interacción con la

cámara. El conteo automático se presenta muy atractivo para las mediciones en las

que se tenga un otolito en el que se pueda trazar una polilínea en una sección libre de

imperfecciones en la muestra permitiendo ahorrar el tiempo del conteo manual para

estos otolitos. Por otro lado, el conteo automático sigue dependiendo de la

experiencia del científico para determinar que recorrido de la polilínea le dará un

resultado veraz, además el filtrado de la imagen de la que se miden los picos y valles

para calcular el número de capas está limitado por la formula ajustada de manera

experimental, si bien se permite configurar los parámetros de la fórmula en el menú

del conteo, es necesario acceder al código si se quiere cambiar por completo la

fórmula del filtro.

Page 40: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

Desarrollo de software de conteo de anillos en otolitos

34

A nivel de programación se puede reducir el uso de variables globales mediante

reservas de memoria y enviar las direcciones de memoria entre funciones para reducir

el uso de recursos de memoria; aunque el uso de memoria de esta aplicación es

mínimo se puede presentar un código más limpio y eficiente en este aspecto.

Se quiere destacar como se ha separado en llamadas a funciones independientes cada

subtarea, creando un código legible en el caso de que se quiera actualizar cambiando

el código; para introducir una mejora o sustituir una función basta con encontrar la

función en el código y manteniendo las entradas y salidas podríamos sustituir por

completo la lógica de la función.

En resumen el trabajo futuro de este software de análisis de otolitos se podría resumir

en los siguientes puntos:

Eliminar el uso de variables globales.

Portabilidad a otros sistemas operativos.

Cargar por defecto la calibración del microscopio.

Portabilidad a otras cámaras

Durante la fase de experimentación se comprobó que las mediciones antes de aplicar

el filtro tenían una alta variabilidad dependiendo de los puntos que se tomaran para

trazar la polilínea, aunque las líneas atravesaran zonas aptas para el conteo. Una vez

filtrada la imagen, siempre que la polilínea no atraviese una zona ilegible para la

medición el número de anillos contados es estable variado en 1-3 anillos

normalmente, esto se puede deber a píxeles blancos o claros que aparecen en la zona

sombreada o píxeles negros u oscuros que aparecen en la zona clara del otolito. Dichos

píxeles o “ruido” pueden deberse al propio otolito o que durante la preparación de la

muestra se modifique la superficie a nivel microscopio apareciendo estas sombras o

reflejos. El filtro es capaz de eliminar la mayoría de los falsos anillos o falsos mínimos si

estamos evaluando la gráfica pero al aparecer falsos máximos debidos a píxeles de

gran contraste con respecto a los que le rodean sigue apareciendo un máximo que

sería falso. Si se cambian los parámetros del filtro se pueden llegar a eliminar todos los

falsos máximos pero se corre el riesgo de hacer desaparecer también los máximos

debidos a los anillos en la imagen filtrada si se suaviza demasiado la imagen.

La zona central del otolito (núcleo) no tiene anillos ya que se corresponde con el

otolito del pez en su primer día de vida, que normalmente tendrá una forma esférica.

El punto de transición entre el núcleo y los otolitos diarios no es fácil de discernir ya

que a menudo es una zona en la que la imagen es bastante difusa aunque

manualmente se puedan contar los anillos ya que al mirar vemos todo el conjunto y se

pueden diferenciar las trazas de los anillos. Para la medición automática es la zona más

complicada de asegurar que la medición es correcta por la difusión de la imagen.

Page 41: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

6. Conclusiones y trabajo futuro

35

El código del software se puede encontrar en la biblioteca de la Escuela Técnica

Superior de Ingeniería de la Universidad de Sevilla.

Page 42: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

Desarrollo de software de conteo de anillos en otolitos

36

7. Bibliografía

http://cimg.eu/. (s.f.). Recuperado el 19 de Enero de 2016

http://www.cecill.info/licences/Licence_CeCILL-C_V1-en.txt. (s.f.). Recuperado el 19 de

Enero de 2016

https://msdn.microsoft.com. (s.f.). Recuperado el 19 de Enero de 2016

OTO - OTOLITH TRAINING ONLINE. (s.f.). Marine Institute Foras na Mara.

www.qimaging.com. (s.f.).

Page 43: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

8. Tabla de imágenes

37

8. Tabla de imágenes

Imagen 1. Ejemplo de la distribución longitud-edad de un banco de peces (S. fuegensis)

.......................................................................................................................................... 1

Imagen 2. Pez espada marcado ........................................................................................ 2

Imagen 3. Extracción de un otolito (OTO - OTOLITH TRAINING ONLINE) ........................ 2

Imagen 4. Detalle de un otolito cortado .......................................................................... 3

Imagen 5. Otolito visto a trasluz en el microscopio ......................................................... 3

Imagen 6. Estructura de OTOLIVE .................................................................................... 8

Imagen 7. Cámara MicroPublisher 3.3 RTV (www.qimaging.com) .................................. 9

Imagen 8. Ejemplo de una escala para calibrar .............................................................. 10

Imagen 9. Polilinea sobre otolito.................................................................................... 11

Imagen 10. Ejemplo de conteo. Segmento marcado sobre el otolito ........................... 12

Imagen 11. Sector junto a una ventana que muestra la línea ....................................... 13

Imagen 12. La imagen a analizar tiene un pixel de alto ................................................. 13

Imagen 13. Diagrama frente a la línea analizada ........................................................... 14

Imagen 14. Ejemplo de filtro a=70, b=30, c=d=0............................................................ 15

Imagen 15. Ejemplo de filtro a=85, b=15, c=d=0............................................................ 15

Imagen 16. Anillos marcados en azul ............................................................................. 17

Imagen 17. Detalle de anillos marcados ........................................................................ 17

Imagen 18. Menú de inicio OTOLIVE .............................................................................. 18

Imagen 19. Menú para gestionar el proyecto ................................................................ 18

Imagen 20. Acceso a las funciones de OTOLIVE ............................................................. 18

Imagen 21. Opciones de cámara .................................................................................... 19

Imagen 22. Formulario Información General ................................................................. 19

Imagen 23. Formulario Calibrar Microscopio ................................................................. 20

Imagen 24. Escalada graduada ....................................................................................... 20

Imagen 25. Escala en la que se ha dibujado un segmento ............................................. 21

Imagen 26. Se indican las lentes que lleva el microscopio y la distancia real ................ 21

Imagen 27. OTOLIVE detecta automáticamente que no hay cámara conectada .......... 22

Imagen 28. Imagen tomada por la cámara o seleccionada desde un directorio ........... 22

Imagen 29. Esta ventana emerge al dibujar el último segmento .................................. 23

Imagen 30. Diagrama de intensidad de los píxeles de la imagen original bajo la polilínea

........................................................................................................................................ 24

Imagen 31. Configuración del filtro ................................................................................ 25

Imagen 32. Datos globales del conteo ........................................................................... 26

Page 44: Proyecto Fin de Carrera - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/5868/fichero/PFC-5868-SANCHEZ.pdf · dispone de una amplia variedad de herramientas que han

Desarrollo de software de conteo de anillos en otolitos

38

Imagen 33. Datos globales tras analizar 4 transectos .................................................... 26

Imagen 34. Datos almacenados en EXCEL ...................................................................... 27