2012-02-27 43 views
7

Como requisito previo de mi proyecto, tengo que eliminar los pelos de la piel de la imagen. Para esto encontré un already existing program. La implementación se realiza en Matlab.Desarrollo del algoritmo de eliminación del vello

El enlace anterior cita el siguiente

  1. Identifica los lugares pelo oscuro por una operación de cierre morfológico escala de grises generalizada,
  2. Se verifica la forma de los píxeles para el cabello como delgadas y estructura de largo, y sustituir el píxeles verificados mediante una interpolación bilineal, y
  3. Suaviza los píxeles de cabello reemplazados con un filtro mediano adaptativo.

En cuanto a la parte de arriba donde se menciona generalized grayscale morphological closing operation no pude averiguar lo que significaba y no ser capaz de ponerlo en práctica en Matlab o bien

Actualmente lo que tengo que hacer es simplemente

  1. identificar píxeles pelo
  2. Verify píxeles pelo
  3. reemplazar píxeles vecinos pelo con la piel píxeles

Me preguntaba si podría sugerir algún método que pueda utilizarse para la implementación de este algoritmo (detección de bordes y similares), ya que hasta ahora todos los intentos no han funcionado correctamente. Cualquier función de matlab que podría usarse sería muy útil también. También me preguntaba qué método podría usar para verificar los píxeles como estructuras delgadas y largas

Actualizado: Como soy nuevo en el procesamiento de imágenes, no tengo ningún conocimiento previo de qué métodos usar para identificar los píxeles de pelo, verifíquelos y reemplácelos con píxeles vecinos, por lo tanto, la solicitud de orientación

+0

Prueba [pila de procesamiento de señales] (http://dsp.stackexchange.com) – Nzbuu

Respuesta

3

supongo que entiende lo que es una imagen en escala de grises y las operaciones sobre ella. Si no, edita tu pregunta para aclarar.

Matlab Image Processing Toolbox incluye la función imclose. Morphological closing se explica en Wikipedia. Internet está inundado de información sobre morfología matemática para el procesamiento de imágenes.

EDITAR después comentario

This page da una introducción general a la morfología matemática para el procesamiento de imágenes. Una vista de lo que intenta hacer es eliminar el ruido de su imagen, donde ese ruido se expresa como elementos oscuros largos (-ish) delgados (-ish) sobre un fondo claro, si, es decir, los pelos son oscuros y la piel es liviana Esta no es una aplicación que he visto, así que no puedo brindar más ayuda. Que te diviertas.

+0

Actualicé la pregunta, bueno, sí, aunque realmente sé qué es una imagen en escala de grises, no tengo ningún conocimiento de qué operaciones se pueden usar sobre eso Echa un vistazo al operador de imagen Morphologically close en matlab, ¿qué es reemplazar píxeles con discos o cualquier otra forma deseada correcta? ¿Puede explicar cómo serviría a mi propósito identificar los pixeles y reemplazarlos con los píxeles vecinos? – MilindaD

0

La secuencia de operaciones es 1.Identify hair pixels 2. Verifica los pixeles capilares 3. Reemplaza los pixeles capilares con los pixeles de la piel contigua. Esto se debe principalmente a que los filtros morfológicos abiertos son de escala de grises o escalares. Por lo tanto, el problema de las imágenes en color puede resolverse bien encontrando un buen espacio de color (generalmente difícil a medida que varía el fondo) o realizando un cierre (como la respuesta anterior dice: si el pelo es oscuro y el fondo es claro) filtre en cada canal y interpolar sobre los demás, que es la solución actual.

Así, podemos echar un vistazo a lo que MATLAB da con lo que se menciona en el documento para detectar las estructuras alargadas pelo:

se1 = strel('line',10,90); 
se2 = strel('line',10,180); 
figure, imshow(imclose(imclose(I,se1),se2),[]) % this closing is done channel wise independently. 

para los fondos complejos unas buenas características de espacio de color es necesario. Aquí se trabaja más o menos desde la imagen en color se ordena (rojo> verde> azul, o algo por el orden - se puede verificar esto) Input image from the website Line filtered image

El problema ahora es interpolar sobre los valores que faltan desde el cierre deja algunos artefactos. uno puede usar el filtrado de la mediana de interpolación como se sugiere en Lee T, Ng V, Gallagher R, Coldman A, McLean D. DullRazor: un enfoque de software para la depilación de imágenes. Computers in Biology and Medicine 1997; 27: 533-543.

Otra idea simple sería realizar rgb2gray (I) -> Cierre morológico mediante estructuras lineales -> mapear la escala de grises a tonos RGB. ¡La asignación de vuelta es simple si el espacio de color de fondo no cambia demasiado y es robusto!