如何在树的照片中大致重构树枝,而树枝的某些部分被树叶覆盖?

我可以通过脱阈然后在线段处用线段打开来提取树枝的可见部分。几个不同的角度。但是我该如何(大约)填充被树叶覆盖的空间?

我们假设从这张树的图画开始:



以灰度级加载图像
uu = mmreadgray('tree2.jpg')



将较深的颜色阈值;转换为二进制;删除200px区域以下的连接区域
vbr = mmareaopen(mmbinary(mmthreshad(mmneg(uu),200)),20)



用90、180、135和45度的10px线段打开vv;将这些图像加在一起以形成标记图像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)))来自标记图像zz

aa = mminfrec(zz,vv)



在原始图像uu上方显示结果aa;实现了合理的四肢抽出

mmshow(uu,aa)


对于现在如何大致重建整个四肢的想法,我将不胜感激。 (或改进上述步骤)。谢谢!

评论

两个人支持您的问题-您现在应该可以上传图片。

@Martin我相信称为“修复”的技术可能值得一看。

通过色相而不是亮度来隔离分支会更有效吗?也就是说,选择图片的棕色部分而不是深色部分。因为它是您与分支混合在一起的大量叶子阴影,并且失去了许多分支。

我会尝试在树枝上使用照明渐变来帮助确定其方向,或者至少消除建议的不良填充。

#1 楼

叶子所掩盖的遮蔽区域非常大,而边框和阴影似乎暗示了对人类隐藏的区域,因此不适合依赖于相当一致的边界的“修复”,例如前景对象暂时遮盖了后面连续的物体。

分支的方向只是一个开始,但没有足够的数据来暗示树枝的延伸方式,而没有像橡树,柳树,杨树或松树那样的外部概念。

最不明显的用于绘画的算法涉及在Photoshop中称为“修复”的纹理合成。 G'MIC和Resynth是流行的开源工具,可作为GIMP的插件使用。尽管视觉连续性非常好,但它们没有树或深度的概念,只是二维补丁统计信息,因此在给出的示例中也需要来自艺术家的输入。遮罩的外部边缘为白色背景,内部为较粗的分支..因此,纹理插值会产生奇怪的不自然结果。