gpt4 book ai didi

python - 如何将具有连接像素的形状分成二值图像中的两个部分

转载 作者:行者123 更新时间:2023-12-02 16:04:17 24 4
gpt4 key购买 nike

我的目标是通过移除与整个面部区域相连的颈部区域,在面部周围绘制一个矩形边框。这里所有的正值都代表肤色像素。到目前为止,我已经使用 OpenCV 和 python 过滤掉了二进制图像。到目前为止的代码 skinid.py

下面是测试图片。

enter image description here

噪声去除也已应用于此二值图像

enter image description here

至此,我关注了这篇论文Face segmentation using skin-color map in videophone applications .对于其中的大部分,我使用自定义函数而不是使用内置的 OpenCV 函数,因为我有点想从头开始。 (虽然用了一些腐 eclipse 、开、闭来调优)

我想知道一种从整个面部区域分离颈部并像这样去除它的方法,

enter image description here

因为我对整个图像处理领域还很陌生。

最佳答案

执行距离变换(内置于 opencv 中,或者您可以手写它是一个非常有趣且简单的方法,可以迭代地使用侵 eclipse 函数编写,并将结果添加到每轮的另一个矩阵中,哈哈缓慢但概念上容易)。在您上面提供的二值图像上,距离变换中的最高值(我认为在任何面部照片中都非常普遍)将是面部的中心。所以那个像素是你的盒子的中心,而且那个值(距离变换后那个像素的值)会给你一个非常可靠的近似面部大小(因为它将是从面部中心到面的水平边缘)。根据您的需求,您可能只能将该距离乘以 1.5 左右(计算出标准面宽与高度的比例等以选择最佳乘数),将其设置为您的圆半径(或半边宽一个盒子)并收工。如果您需要任何澄清,请发表评论,因为我对这个答案非常有信心,如果您需要,我很乐意编写一些快速代码(在 c++ opencv 中)/它会有所帮助。

(替代想法)。您可以稍微调整您的滤色器以拒绝较暗的区域(这将至少在呈现的图像中)由于下巴的阴影而在您的脸和脖子之间创建一个很好的分离。 (您可能需要拨回您的扩张/关闭操作)

关于python - 如何将具有连接像素的形状分成二值图像中的两个部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62382686/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com