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

Documents pareils