gpt4 book ai didi

c++ - 使用混合无缝克隆修复 OpenCV 中的错误隐藏

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:47:33 24 4
gpt4 key购买 nike

背景

我想在 C++ 的 OpenCV 中从皮肤镜图像中去除毛发,有两个——不一定是组合——所需的结果:

  • 使用计算机视觉进行进一步分析的预处理
  • 改善视觉感知(即不会因皮肤损伤而分心)

该方法需要完全自动化,并且应该——一如既往——尽可能快地工作,尽管我不需要需要实时计算。这是我正在谈论的示例图像:

Example input image

为此,第一步是找到并遮盖头发像素。经过一些基本的预处理后,我成功地(错误地)使用了众所周知的 Frangi filter并为头发创建了一个二进制蒙版:

Hair mask

初步方法

现在是修复部分。首先,按照一些与领域相关的论文的想法,我自己尝试使用一组形态学操作 - 结果几乎没有说服力:

Hair removal with morphological operations

除此之外,显而易见的尝试是使用 OpenCV 的 inpaint() 函数。结果更好,但仍不完美 - 计算需要很长时间:

Hair removal with Navier-Stokes

问题

关于 Poisson Image Editing 的论文很棒,最近在 OpenCV 中作为 seamlessClone() 实现。本文也将这种混合克隆方法用于错误隐藏,取得了很好的效果。

他们使用手动选择源区域进行隐藏,在我的情况下,这将是一些未分散注意力的皮肤。然而,这应该是一个全自动解决方案,我只知道图像的哪一部分是头发,哪一部分不是。

我如何使用那个简单的蒙版通过无缝克隆执行自动修复?我找不到 OpenCV 的任何直接实现,目前我不知道如何解决这个问题。有人吗?

最佳答案

第二张图片看起来不错,在这种情况下,我建议通过应用高通滤波器来处理它。这与用于平滑图像的中值滤波器非常相似。但在您的情况下,您需要删除某些街区的一些较暗像素。我会使用发膜在这些像素中应用高通滤波器。

您可以找到中值滤波器的信息 here .

关于c++ - 使用混合无缝克隆修复 OpenCV 中的错误隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35630258/

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