Reconstrucción de ramas de árboles que están ocluidas por hojas

12

¿Cómo se reconstruirían aproximadamente las ramas en una foto de un árbol, donde porciones de las ramas están cubiertas por hojas?

Puedo extraer las partes visibles de las ramas al sujetarlas y luego abrirlas con segmentos de línea en algunos ángulos diferentes. Pero, ¿cómo llenaría entonces (aproximadamente) los espacios cubiertos por hojas?

Supongamos que comenzamos con este dibujo de un árbol:

árbol de color

cargar la imagen como escala de grises

uu = mmreadgray ('árbol2.jpg')

árbol

umbral de los colores más oscuros; convertir a binario; eliminar regiones conectadas en un área de 200 px

vv = mmareaopen (mmbinary (mmthreshad (mmneg (uu), 200)), 20)

árbol

vv abierto con segmentos de línea de 10 px a 90 grados, 180 grados, 135 grados y 45 grados; agregue estas imágenes juntas para formar una imagen de marcador zz

zz = mmaddm (mmaddm (mmaddm (mmopen (vv, mmseline (10, 90)), mmopen (vv, mmseline (10, 180))), mmopen (vv, mmseline (10, 135))), mmopen (vv, mmseline (10, 45)))

árbol

reconstruir las partes visibles de las extremidades en vv a partir de la imagen del marcador zz

aa = mminfrec (zz, vv)

árbol

muestra el resultado aa encima de la imagen original uu; Se logra una extracción razonable de las extremidades.

mmshow (uu, aa) árbol

Agradecería cualquier idea sobre cómo reconstruir aproximadamente toda la extremidad. (O mejoras a los pasos dados anteriormente). ¡Gracias!

Martín
fuente
3
Dos personas han votado tu pregunta: ahora deberías poder subir imágenes.
Niki Estner
1
@ Martin Creo que la técnica conocida como 'pintura' podría valer la pena.
Spacey
1
¿No sería más efectivo aislar las ramas por tono que por brillo? Es decir, elija las partes marrones de la imagen en lugar de las partes oscuras. Tal como está, está mezclando muchas sombras de hojas con sus ramas y está perdiendo muchas ramas.
travisbartley
Intentaría usar gradientes de iluminación en las ramas para ayudar a determinar sus direcciones, o al menos para eliminar los rellenos propuestos incorrectos.
DarenW

Respuestas:

1

El área enmascarada oculta por las hojas es muy grande y, aunque el borde y el sombreado parecen implicar lo que está oculto para un ser humano, no es adecuado para "pintar", que se basa en límites bastante consistentes, como cuando un objeto en primer plano oculta temporalmente algo que continúa detrás .

La orientación de la rama es un comienzo, pero no hay suficientes datos por sí mismos para implicar cómo se extienden las ramitas sin tener un concepto externo de un roble contra un sauce, un álamo o un pino. Se trata más del modelado fractal 3D que de la restauración de imágenes.

Los algoritmos menos evidentes para la pintura implican la síntesis de textura llamada "Curación" en Photoshop. G'MIC y Resynth son herramientas populares de código abierto para eso disponibles como complementos para GIMP. Si bien la continuidad visual es bastante buena, no tienen un concepto de árbol o profundidad, solo las estadísticas de parches en 2-d, por lo que también necesitarían información de un artista en el ejemplo dado. La máscara es de fondo blanco en los bordes exteriores y ramas gruesas en el interior ... por lo que la interpolación de textura da un resultado extraño y poco natural.

James Prichard
fuente