首页 > 解决方案 > 如何从二进制掩码生成 trimap?

问题描述

我现在正在尝试实施这篇论文:

使用卷积神经网络的自动皮肤和头发遮罩

我已经让 FCN 和 CRF 部分正常工作,并且一旦我有了 trimap,我就找到了生成 alpha 掩码的代码。

纸上的图表

不过,我被困在(c)和(d)之间的部分。

如何在给定二进制掩码的情况下生成 trimap?论文说:

我们在头发和皮肤的二元分割掩码上应用形态学算子,获得指示前景(头发/皮肤)、背景和未知像素的三元图。为了处理分割不准确的问题,并最好地捕捉前景和背景的外观变化,我们首先用一个小内核侵蚀二进制掩码,然后提取骨架像素作为前景约束像素的一部分。我们还使用更大的内核侵蚀二进制掩码,以获得更多的前景约束像素。最终的前景约束像素是两部分的并集。如果我们只保留第二部分,那么一些细毛区域将在大内核侵蚀后消失。如果一个像素在扩张蒙版之外,那么我们将其作为背景约束像素。标记为未知的所有其他像素,

标签: opencvimage-processingcomputer-visionimage-segmentation

解决方案


OpenCV 支持形态学运算。
请参阅本教程解释如何使用erodedilate功能。


推荐阅读