Восстановление веток деревьев, которые закрыты листьями

12

Как бы приблизительно восстановить ветви на фотографии дерева, где части ветвей покрыты листьями?

Я могу извлечь видимые части ветвей, установив порог, затем открыв линейные сегменты под несколькими разными углами. Но как я тогда (приблизительно) заполнил бы места, которые были покрыты листьями?

Предположим, мы начнем с этого рисунка дерева:

цвет дерева

загрузить изображение в градациях серого

uu = mmreadgray ('tree2.jpg')

дерево

порог темных цветов; преобразовать в двоичный файл; удалить связанные области под площадью 200 пикселей

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

дерево

открыть vv с сегментами линии 10px на 90 градусов, 180 градусов, 135 градусов и 45 градусов; добавить эти изображения вместе, чтобы сформировать маркер изображения ZZ

zz = mmaddm (mmaddm (mmaddm (mmopen (vv, mmseline (10, 90))), mmopen (vv, mmseline (10, 180))), mmopen (vv, mmseline (10, 135))), mmopen (vv, ммселин (10, 45)))

дерево

реконструировать видимые части конечностей в vv из изображения маркера zz

aa = mminfrec (zz, vv)

дерево

отобразить результат aa поверх исходного изображения uu; разумное извлечение конечностей достигается

ммшоу (ау, аа) дерево

Буду признателен за любые мысли о том, как теперь приблизительно восстановить всю конечность. (Или улучшения шагов, указанных выше). Спасибо!

Мартин
источник
3
Два человека проголосовали за ваш вопрос - вы сможете загружать изображения прямо сейчас.
Ники Эстнер
1
@ Мартин Я верю, что технику, известную как «рисование», стоит посмотреть.
Спейси
1
Разве не было бы более эффективно изолировать ветви по оттенку, а не по яркости? То есть выберите коричневые части изображения, а не темные. Так как это вы смешиваете много листьев с ветками и теряете много ветвей.
Трэвисбартли
Я бы попытался использовать градиенты освещения на ветвях, чтобы помочь определить их направления или, по крайней мере, устранить неправильные предложенные заливки.
DarenW

Ответы:

1

The masked area hidden by leaves is very large and while the border and shading seems to imply what is hidden to a human being it is unsuited to "inpainting" which relies on pretty consistent boundary, such as where a foreground object temporarily obscures something continuing behind.

The branch orientation is a start but not enough data on its own to imply how the twigs extend without having some external concept of an oak tree versus a willow, poplar or pine. That is more about 3d fractal modeling than about image restoration.

The least obviously visible algorithms for in-painting involve texture synthesis called "Healing" in Photoshop. G'MIC and Resynth are popular open-source tools for that available as plug-ins for GIMP. While visual continuity is quite good they have no concept of a tree or depth, just 2-d patch statistics so would need input from an artist as well in the example given. The mask is white background on the outer edges and thick branches on the inside .. so texture interpolation gives a weird unnatural result.

James Prichard
источник