Recuperación de imágenes
Transcription
Recuperación de imágenes
Recuperación de imágenes Cristina Fernández Jiménez Paloma Vaquero Quintana Mariafernanda Vilera Suárez Universidad Carlos III NIA 100029559 +34 699963553 Universidad Carlos III NIA 100032948 +34 600763614 Universidad Carlos III NIA 100037168 +34 680750517 [email protected] [email protected] [email protected] OBJETIVO Basada en texto Este paper describe las distintas técnicas de recuperación de imágenes (basadas en texto, basadas en contenido y combinación de ambas) y técnicas de consulta (con ejemplo, de recuperación semántica y otras consultas). Además describe el funcionamiento de dos pequeños prototipos realizados en MATLAB. Los métodos más comunes y tradicionales de recuperación de imágenes añaden metadatos como pies de foto, palabras clave o descripciones de las imágenes de forma que la recuperación se va a hacer sobre las palabras anotadas. Anotar imágenes a pequeña escala para uso personal puede ser relativamente simple, sin embargo, a gran escala puede resultar muy complejo: consume mucho tiempo, es laborioso y caro. Para mejorar esto, se está haciendo un gran esfuerzo para tener una anotación automática de imágenes. Adicionalmente, el incremento de aplicaciones web sociales y la web semántica han inspirado el desarrollo de varias herramientas de anotación basadas en web. El prototipo I recupera imágenes basándose en el contenido a partir de una consulta con ejemplo. El prototipo II describe el número de veces que aparece un patrón dentro de una imagen. Herramientas utilizadas para el estudio: MATLAB [programa]: Programa interactivo para computación numérica y visualización de datos. Dado que la implementación de algoritmos en términos de visión de ordenadores resulta muy engorrosa debido al manejo de punteros, gestión de memoria… Utilizar lenguaje C++ supondría inversión innecesaria de tiempo, es por ello que se ha decidido manejar la herramienta MatLab. Términos Generales Procesamiento, imágenes, prototipo, recuperación… Keywords Recuperación de información, Recuperación de imágenes. 1. INTRODUCCIÓN El procesamiento de imágenes es un campo de trabajo absolutamente crucial para aquellos que estén trabajando en áreas como diagnóstico médico, astronomía, geofísica, ciencia medioambiental, análisis de datos en laboratorios, inspección industrial, etc. Las técnicas de minería de datos son herramientas que facilitan el descubrimiento de la información. En el caso de la imágenes, el objetivo es el de ser capaces de recuperar esas imágenes en colecciones heterogéneas y multilingües, estudiando la combinación óptima de enfoques visuales; es decir, a partir de una serie de documentos con imágenes y dada una serie de consultas, encontrar los casos que corresponden a esas consultas. En la anotación automática de imágenes un sistema asigna automáticamente metadatos a una imagen digital. Este método se puede considerar como una clasificación multi-clase de imágenes (con tantas clases como palabras tenga el vocabulario). Típicamente en el análisis de imágenes, un vector de características y palabras anotadas de entrenamiento, son utilizadas por técnicas de aprendizaje máquina para aplicar automáticamente notas a las nuevas imágenes. Estos métodos aprenden las correlaciones entre las características de la imagen y las notas de entrenamiento, después se desarrollan técnicas para traducir vocabulario textual con vocabulario “textual”. El problema radica en la subjetividad, ambigüedad e imprecisión que se asocian generalmente a especificar el contexto y los contenidos semánticos de las imágenes por lo que las descripciones con metadatos son la mayoría de las veces incompletas. Se pueden enumerar las siguientes desventajas: • Los pies de foto son normalmente pequeños. Las anotaciones pequeñas no pueden representar completamente el contenido de la imagen. • Los pies de foto no siempre están disponibles. La asignación manual de información resulta costosa y consume mucho tiempo. • Algunas propiedades visuales no pueden ser descritas en los pies de foto directamente. Por ejemplo, los estilos de las imágenes, como caluroso, frío, oscuro, que en general no forman parte de los pies de foto. • Las peticiones de usuario pueden tener diferentes niveles de semántica. Los usuarios pueden buscar en niveles semánticos superiores o inferiores. 1.1 Técnicas de recuperación de imágenes A la hora de recuperar las imágenes se tienen distintas posibilidades: recuperación basada en texto, recuperación basada en contenido o recuperación basada en distintas combinaciones de texto y contenido. Las anotaciones se pueden realizar en diferentes idiomas, por lo que la recuperación de imágenes basada en texto tiene naturaleza multilingüe. Por esto, los usuarios que no están familiarizados con el lenguaje, no tienen la posibilidad de comprender los documentos recuperados. Por esta razón, está cobrando gran importancia la recuperación de imágenes multilingüe (le está prestando especial atención el foro de evaluación CLEF: CrossLanguage Evaluation Forum). Basada en contenido proporcionan diferentes aspectos de la información de las imágenes. En los sistemas de recuperación de imágenes basados en contenido, el añadir información textual y la realimentación del usuario (siempre que sea posible), pueden mejorar en gran medida los resultados: para peticiones de carácter semántico resulta muy complicado resolverlas utilizando únicamente información visual. Por ejemplo, en medicina la información visual resulta insuficiente para describir un caso médico, por lo que resulta muy útil poder utilizar la información textual de que también se dispone. Cuando se habla de recuperación de imágenes basada en contenido (Content-based Image Retrieval o CBIR), la búsqueda analizará los contenidos reales de la imagen. El término contenido se refiere a colores, formas, texturas o cualquier otra información que se derive de la propia imagen. Las técnicas, herramientas y algoritmos que se utilizan tienen su origen en campos tan dispares como la estadística, el reconocimiento de patrones o el procesado de señal. Debido a las limitaciones de la recuperación basada en texto (la información textual sobre imágenes se genera utilizando las tecnologías actuales, pero requiere de humanos para describir cada imagen en la base de datos, y también es posible perder imágenes que utilizan sinónimos en sus descripciones), está creciendo el interés en CBIR. Sin embargo estos sistemas se focalizan principalmente en la recuperación de las características de bajo nivel y dan poca o ninguna importancia a la recuperación basada en texto. Existen diferentes técnicas de comparación de contenido: • Color: Es una de las técnicas más utilizadas ya que no depende del tamaño de la imagen o de la orientación. Las búsquedas por color normalmente implican comparar el histograma de color aunque no es la única técnica en práctica. • Textura: Las medidas de textura buscan patrones visuales y cómo se definen espacialmente. Las texturas se representan con “texels” (texture pixel) que se colocan dentro de un número de conjuntos, dependiendo de cuantas texturas se hayan detectado en la imagen. Estos conjuntos no definen únicamente la textura, si no también donde se sitúa dentro de la imagen. • Forma: La forma no se refiere a la forma de la imagen, si no a la forma de una parte en concreto que se busca. Las formas se detectan o por segmentación, o por detección de aristas. En algunos casos la precisión de la forma requiere de intervención humana, ya que aplicar por ejemplo segmentación, resulta muy difícil de automatizar. La búsqueda de vecinos cercanos se aplica a la recuperación de imágenes basada en contenido. Estrategias de merging Las características textuales y visuales de bajo nivel tienen diferentes niveles semánticos. Las características textuales son muy semánticas, mientras que las características visuales de bajo nivel son menos semánticas y tienen que ver con la percepción humana. Estos dos tipos de características son complementarias y Describir una imagen adecuada y completamente con metadatos es prácticamente imposible. La otra alternativa es describir el contenido de la imagen por sus características de bajo nivel como color, textura, forma. Sin embargo, se ha demostrado en la práctica que utilizar únicamente las características de bajo nivel no es completo. Por esto, los sistemas necesitan integrar tanto las descripciones con metadatos como el bajo nivel para poder tener una gestión eficiente de los datos de las imágenes. El ejemplo más simple que se nos puede ocurrir es el de realizar una recuperación basada en texto independientemente de otra basada en contenido para después combinar ambos resultados. La aproximación paralela utiliza información textual o visual para llevar a cabo una recuperación inicial. Después utiliza otras características para filtrar las imágenes que no son relevantes. En estas dos aproximaciones los usuarios pueden hacer dos tipos de peticiones: textuales y visuales. El problema radica en la dificultad de encontrar una petición visual adecuada o especificar las características visuales de bajo nivel. Para poder soportar la recuperación de imágenes basadas en contenido en los sistemas tradicionales, se utilizan diferentes motores de búsqueda para encontrar la imagen más parecida de una lista. El principal inconveniente es no poder soportar adecuadamente la combinación de operaciones de metadatos y basadas en contenido. En la actualidad se están focalizando la gran mayoría de los esfuerzos en estas estrategias de merging. 1.2 Técnicas de consulta Cuando se quiere recuperar una determinada imagen, hay distintos métodos para proporcionarle al sistema la petición. Consulta con ejemplo Se proporciona al sistema CBIR una imagen de ejemplo en la que se basará para realizar la búsqueda. Los algoritmos de búsqueda variarán de una aplicación a otra, pero las imágenes resultantes deberían compartir elementos comunes con la imagen original. Existen dos posibilidades a la hora de proporcionar la consulta: una opción es la de buscar imágenes similares a una preexistente proporcionada por el usuario (o elegir una de un conjunto aleatorio) y otra opción es la de hacer un boceto incluyendo formas y colores similares a los de la imagen que se está buscando. La consulta con ejemplo evita el tener que describir cada imagen con palabras. Muestras de consultas con ejemplo son GIFT o FIRE. GIFT (the GNU Image-Finding Tool) es un sistema de recuperación de imágenes basado en contenido (CBIR) que permite hacer una consulta con ejemplo, permitiendo al usuario mejorar los resultados con realimentación de relevancia. FIRE (Flexible Image Retrieval Engine) es otro sistema de código libre de consulta con ejemplo. En sus páginas web es posible visualizar una demostración. En el caso de FIRE (http://wwwi6.informatik.rwth-aachen.de/~deselaers/fire.html) se tiene la posibilidad de elegir una imagen aleatoria de su base de datos, o bien de cargar una imagen de nuestro PC. El paso siguiente a realizar por el usuario es el de solicitar más resultados o el de repreguntar. Recuperación semántica El usuario hace una petición textual del tipo “encuentra fotos con agua”. Pero se trata de una consulta tan abierta que resulta muy difícil de resolver (no es lo mismo una foto con un vaso de agua que una de una cascada). Otros métodos de consulta Pueden especificar las proporciones de los colores deseados (20% de rojo y 80% de azul) o buscar un objeto que venga dado en una consulta con ejemplo. 1.3 Técnicas de recuperación y consulta en el Prototipo I El prototipo I es un sistema de recuperación de imágenes realizado en MATLAB. La técnica de recuperación utilizada ha sido la de basada en contenido, teniendo en cuenta en primer lugar los colores, y en segundo lugar la forma. La técnica de consulta utilizada es la consulta con ejemplo: a partir de una imagen de muestra se van a buscar las que tengan mayor similitud. Prototipo II El prototipo II es un sistema de reconocimiento de imagen que utiliza las técnicas propias del procesado de señales tales como el filtrado y además, combina operaciones que involucran a elementos estructurales basados en la erosión, y dilatación. 2. IMAGE TOOLBOX PROCESSING Una vez se ha seleccionado la imagen deseada, el sistema busca las que son similares, dando la opción al usuario de marcar las imágenes como relevantes, indiferentes o irrelevantes. En el ejemplo siguiente se ha dado como imagen de ejemplo una radiografía del torso y FIRE ha devuelto ocho imágenes. El usuario ha marcado como relevantes las tres primeras imágenes y la última como irrelevante. Esta herramienta dota a MatLab de un conjunto de funciones para realizar desarrollo de aplicaciones y de nuevos algoritmos en el campo del proceso y análisis de imágenes. El entorno matemático de MatLab resulta el idóneo para el procesamiento de imágenes dado que éstas son al fin y al cabo matrices. Esta herramienta incorpora funciones para: • Diseño de filtros y recuperación de imágenes. • Mejora y retocado de imágenes. • Análisis y estadística de imágenes. • Operaciones morfológicas, geométricas y de color. • Transformaciones 2D. • Proceso de bloques. 3. PROTOTIPO I 3.1 Objetivo El fin de este primer prototipo es la búsqueda y posterior identificación, mediante diversos algoritmos, de la imagen más similar a una dada (patrón). 3.2 Descripción En primer lugar se muestran las imágenes objeto del estudio. La siguiente figura contiene la imagen patrón: Imagen 3 Imagen patrón 1 Las siguientes figuras contienen el resto de imágenes de comparación: Imagen 4 Tal y como se puede observar, las dos primeras imágenes se corresponden con dos fotografías de balones de fútbol y las dos siguientes con otras dos fotografías de balones de rugby. El motivo de esta elección se irá adivinando a lo largo de la explicación. En segundo lugar, dado que las dimensiones son distintas para cada imagen, se debe ajustar a una dimensión única de referencia para hacer de manera correcta las comparaciones. Se ha elegido la dimensión 400x280 dado que es la mínima común a todas ellas. PRIMERA SELECCIÓN Imagen 2 Una vez obtenidas las imágenes con dimensiones iguales, se procede a la realización de la primera selección. Para ello, mediante distancias euclídeas entre las matrices asociadas a cada imagen, se buscará cuál de las imágenes resulta más parecida a la imagen patrón. En este algoritmo se analiza el contenido de información asociada a cada píxel de las imágenes. A continuación se muestra el resultado obtenido tras la ejecución de este primer algoritmo: Algoritmo 1_Prototipo1 Contorno Imagen Patrón Tal y como se puede apreciar, este algoritmo concluye que la imagen más similar a la Imagen patrón es la Imagen 4. Inicialmente, se podría haber esperado que el resultado fuese la Imagen 2 dado que ésta, al igual que el patrón, es una fotografía de un balón de fútbol. Sin embargo, el resultado ha sido Imagen 4, esto es así porque la información contenida en ambas imágenes son más parecidas, ya que el fondo de ambas corresponde a dos tonalidades de verde y esta información es más abundante a la hora de realizar la comparación que la del balón con fondo blanco (Imagen 2). Todo esto resalta el hecho de que las imágenes obtenidas se almacenan en matrices tridimensionales m x n x p, donde m representa el número de píxeles de largo, n representa el numero de píxeles de ancho y p representa el plano, que para RGB que puede ser 1 para el rojo, 2 para el verde y 3 para el azul. SEGUNDA SELECCIÓN En este caso se va a trabajar con las imágenes en escala de grises y prestando atención en sus contornos. Mediante el uso de la función de Matlab edge con el método canny, se encuentran contornos a través de la búsqueda del máximo local del gradiente de la imagen en escala de grises. El gradiente es calculado mediante la derivada de un filtro gaussiano. El método utiliza dos umbrales para detectar contornos débiles y marcados e incluye contornos débiles a la salida sólo si están unidos por contornos marcados. A continuación se muestran las imágenes objeto de estudio tras dicha transformación: Contorno Imagen 2 Contorno Imagen 3 Algoritmo 2_Prototipo 1 Tal y como se observa, este algoritmo concluye que la imagen más similar a la Imagen Patrón es la Imagen 2. De la observación de las figuras de los contornos de cada imagen se podía esperar dicho resultado. Por tanto, puede resultar realizar filtros, como el hecho por contornos, para eliminar información redundante y ser más preciso en la detección de imágenes similares según sus formas. 4. PROTOTIPO II 4.1 Objetivo El fin de este segundo prototipo es encontrar un patrón dentro una imagen blanco y negro y contar cuantas veces aparece dentro de ella. Contorno Imagen 4 Sobre estas imágenes se procede de manera similar que en la selección primera, se realiza una comparación mediante distancias euclídeas sobre la información de estas imágenes (en escala de grises y sólo con contornos). El resultado obtenido al proceder de dicha manera se muestra en la siguiente figura: Podría parecer una tarea trivial si la inspección se realizase manualmente, pero en muchas ocasiones es necesario establecer un conteo automático del número de veces que el patrón se repite, con miras a realizar estudios donde el entorno cambia rápidamente. Por ejemplo, si conservamos un cultivo de una bacteria y queremos ver cuanto se reproduce cada segundo, es prácticamente imposible contar de una en una. La novedad radica en que el patrón puede adquirir diferente forma y tamaño, luego la tarea no se reduce a cotejar píxel a píxel el contenido de las matrices, sino a evaluar en conjunto un píxel y sus vecinos. El 4.2 Descripción resultado de la umbralización es el siguiente: En primer lugar se muestran la imagen objeto de estudio. Se tiene una imagen que corresponde a unas células en un instante de tiempo. Lo primero que se hace es aplicar un filtro paso bajo para conseguir niveles de gris más uniformes. Con esto lo que se consigue es que si existe un píxel aislado de color negro y no corresponde al patrón, se elimina porque sus píxeles adyacentes son grises. Este filtro se conoce como suavizado local. A continuación se calcula el histograma de la imagen mediante la función de matlab hist. En él se puede observar cómo se distribuyen los tonos de gris en la imagen. Esto se hace porque en el histograma es muy probable que aparezca un pico en aquel nivel de gris que corresponde al fondo (dado que un gran número de píxeles comparten ese mismo color). Se podrá entonces, distinguir claramente que píxeles pueden ser parte del patrón (gris oscuro) y cuantos forman parte del fondo (gris claro). El histograma obtenido se muestra a continuación: 4 4 x 10 3.5 Tal y como se puede observar, hay parte de las células que comparten una misma zona de color blanco. Esto debe evitarse, porque se podría confundir 3 células que están muy unidas y contabilizar con bwlabel tan sólo una. Se visualiza también, que hay zonas de color blanco que deberían ser negras porque no corresponden al patrón inicial. Se realiza nuevamente un filtrado para eliminar este efecto indeseado que denominaremos ruido impulsivo. Ahora se define un elemento estructural que recorrerá la imagen píxel a píxel y asignará blanco o negro en función del vecino más cercano. Por ejemplo, puede considerarse un elemento cuadrado de lado dos por dos píxeles. El elemento se caracterizará por una matriz de tipo: ⎡1 1⎤ ⎢1 1⎥ y ⎦ ⎣ se aplicará iterativamente sobre cada subconjunto de la imagen en función de una operación a realizar. En nuestro caso, se emplean dos conocidas como imdilate e imopen. Imdilate lo que haces es recorrer toda la imagen moviendo el elemento estructural de forma tal que si alguno de los píxeles es de diferente color, se asigna a sus vecinos ése. Imopen hace lo contrario, se asigna el color predominante a los elementos que recorre el de tipo estructural. Si se aplica convenientemente estos operadores morfológicos, el resultado será una imagen final y empleando bwlabel, el algoritmo programado devolverá el número de regiones encerradas por color negro, que es en definitiva, la caracterización de nuestro patrón (la célula). 3 2.5 2 Los valores devueltos por el programa arrojan un número de células del orden de 54. Conviene jugar con el umbral porque hay tres de ellas que están muy juntas y el programa asume que son un mismo conjunto. 1.5 1 0.5 0 0 50 100 150 200 250 Acto seguido, se realiza una umbralización. Es decir, se pretende asignar un color al fondo y otro al patrón. Este paso quizás sea el más crítico porque de él depende directamente el reconocimiento (o desconocimiento) del número de células. Tras probar con varios umbrales, se puede observar que hay un ligero valle alrededor del nivel de gris 135. A partir de ahora, los píxeles con nivel de gris mayor que 135 pasarán a ser negros (el fondo), y de menor valor pasarán a ser blancos (células en sí). Para la detección de balones se realizó el mismo procedimiento, agrupando el fondo, diferenciando bien dos regiones pero en este nuevo caso el elemento estructural sería un círculo ó un disco. El grado de libertad estaría en estimar convenientemente el radio del balón para que la detección sea la apropiada. 5. CONCLUSIONES gris1=rgb2gray(foto1); gris2=rgb2gray(foto2); El procesado de imágenes requiere de la exploración de nuevas técnicas que sean capaces de almacenar adecuadamente granes volúmenes de información que no pueden ser catalogados mediante inspección. Por eso, es tan importante continuar en la búsqueda de procedimientos combinados que describan de manera automatizada el contenido de los píxeles. En muchas ocasiones no es suficiente que la clasificación de imágenes se base únicamente en el nombre del fichero de datos, porque su manipulación conlleva a errores en el modelo. En consecuencia, se buscan técnicas mixtas que extraigan propiedades de las imágenes y que faciliten su descripción. Aún así, si somos capaces de extraer contornos, colores, texturas y tamaños, esta caracterización no conforma todo el escenario de variables. Es muy difícil realizar un reconocimiento de un objeto cuando no está aislado. Por esa razón, se intenta eliminar redundancias e información no útil para simplificar en definitiva, la complejidad del problema. Los sistemas basados en el reconocimiento de imágenes en la actualidad se basan en la retroalimentación. Habitualmente se implementan redes neuronales que mediante ensayo y error, logran “aprender” patrones y aplicarlos con capacidad de generalización. A pesar de ello, sigue siendo objeto de estudio las estrategias de búsquedas basadas en merging, dado que no se sabe con certeza que variables y con qué peso deben ser consideradas para que el resultado sea óptimo. gris3=rgb2gray(foto3); gris4=rgb2gray(foto4); contorno1 = edge(gris1, 'canny'); contorno2 = edge(gris2, 'canny'); contorno3 = edge(gris3, 'canny'); contorno4 = edge(gris4, 'canny'); figure; imshow(contorno1) figure; imshow(contorno2) figure; imshow(contorno3) resta1 = abs(contorno1-contorno2); resta2 = abs(contorno1-contorno3); resta3 = abs(contorno1-contorno4); suma1 = sum(sum(resta1)); suma2 = sum(sum(resta2)); suma3 = sum(sum(resta2)); comparacion(gris1,gris2,gris3,gris4,suma1,suma2,suma3); Comparación 6. ANEXO 6.1 Código Prototipo I Recuperación function recuperacion() close all; foto1 = imresize(imread('balon1.jpg'),[400 280]); foto2 = imresize(imread('balon2.jpg'),[400 280]); foto3 = imresize(imread('rugby1.jpg'),[400 280]); foto4 = imresize(imread('rugby4.jpg'),[400 280]); %Primera seleccion (distancia euclidea) %comparamos la primera foto con el resto resta1 = abs(foto1-foto2); function comparacion(foto1,foto2,foto3,foto4,suma1,suma2,suma3) figure; hold on; subplot(2,1,1); imshow(foto1); subplot(2,1,2); if suma1>suma2 & suma1>suma3 imshow(foto2); elseif suma2>suma1 & suma2>suma3 imshow(foto3); else imshow(foto4); end hold off; resta2 = abs(foto1-foto3); resta3 = abs(foto1-foto4); suma1 = sum(sum(resta1)); 6.2 Código Prototipo II suma2 = sum(sum(resta2)); load celulas suma3 = sum(sum(resta3)); %Eliminamos ruido impulsivo con un filtro de mediana comparacion(foto1,foto2,foto3,foto4,suma1,suma2,suma3); %Construimos la máscara del filtro %Comparando los contornos suavi=(1/9)*ones(3,3); %Transformamos a escala de grises %Aplicamos el filtro suavi_celulas=filter2(suavi,celulas); %Representamos las celulas map=colormap; map(1,:)=[1 1 1]; map(2:64,:)=map(1+randperm(63),:); hist(suavi_celulas(:),100) %Definimos un umbral para separar el fondo de las células celulas_umb=suavi_celulas<135; celulasSinRuido=medfilt2(celulas_umb); imshow(celulasSinRuido,[0 max(max(celulasSinRuido))]) %Aplicamos un elemento cuadrado de l=2 mediante la función %strel, basada en el vecino más cercano e=ones(3,3); [3] Fröhlich, B. and Plate, J. 2000. The cubic mouse: a new device for three-dimensional input. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (The Hague, The Netherlands, April 01 - 06, 2000). CHI '00. ACM Press, New York, NY, 526-531. DOI= http://doi.acm.org/10.1145/332040.332491 [4] Tavel, P. 2007 Modeling and Simulation Design. AK Peters Ltd. [5] Sannella, M. J. 1994 Constraint Satisfaction and Debugging for Interactive User Interfaces. Doctoral Thesis. UMI Order Number: UMI Order No. GAX95-09398., University of Washington. [6] Forman, G. 2003. An extensive empirical study of feature selection metrics for text classification. J. Mach. Learn. Res. 3 (Mar. 2003), 1289-1305. [7] Brown, L. D., Hua, H., and Gao, C. 2003. A widget framework for augmented interaction in SCAPE. In Proceedings of the 16th Annual ACM Symposium on User interface Software and Technology (Vancouver, Canada, November 02 - 05, 2003). UIST '03. ACM Press, New York, NY, 1-10. DOI= http://doi.acm.org/10.1145/964696.964697 se1 = strel('square',2) [8] Y.T. Yu, M.F. Lau, "A comparison of MC/DC, MUMCUT and several other coverage criteria for logical decisions", Journal of Systems and Software, 2005, in press. %Aplicamos funciones de procesado de imágen, dilate y erosion [9] Spector, A. Z. 1989. Achieving application requirements. In Distributed Systems, S. Mullender, Ed. Acm Press Frontier Series. ACM Press, New York, NY, 19-33. DOI= http://doi.acm.org/10.1145/90417.90738 celulas_erosion = imdilate(celulasSinRuido,se1); celulas_erosion2= imopen(celulas_erosion,se1); figure imshow(celulas_erosion2,[0 max(max(celulas_erosion))]) %Contamos el número de elementos de la foto. [imagen,numero]=bwlabel(celulas_erosion2,4); numero 7. REFERENCIAS [1] Bowman, M., Debray, S. K., and Peterson, L. L. 1993. Reasoning about naming systems. ACM Trans. Program. Lang. Syst. 15, 5 (Nov. 1993), 795-825. DOI= http://doi.acm.org/10.1145/161468.161471. [2] Ding, W. and Marchionini, G. 1997 A Study on Video Browsing Strategies. Technical Report. University of Maryland at College Park. [10] Mariani, Amadeo M. MATLAB como software integrador. Importancia de un laboratorio basado en MATLAB, para la enseñanza de grado en ingeniería. Facultad de Buenos Aires. DOI=http://www.electron.frba.utn.edu.ar/docentes/public/arc hivos/MATLAB_en_la_Ingenieria.pdf [11] Hervella Azoizi, Samira. 2005-2006. Editor de imágenes basado en regions. Aplicación en entorno MATLAB. Universidad de Terrasa (Proyecto de Fin de Carrera). DOI= https://upcommons.upc.edu/pfc/bitstream/2099.1/3860/1/549 60-1.pdf [12] Valdemar Cuevas Jiménez, Erik & Zaldivar Navarro, Daniel. Visión por computador utilizando MATLAB y el Toolbox de procesamiento digital de imágenes. DOI=http://static.scribd.com/docs/3yc9q37sexzug.pdf [13] Ricardo Baeza-Yates. Modern Information Retrieval [14] Image Processing Toolbox