gpt4 book ai didi

c++ - matlab 函数 "imfill(BW,' 孔的有效实现')“在 c++ 中不使用 opencv

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

我需要高效地实现 matlab 的 imfill(BW,'holes') 函数,该函数填充二进制图像 (0,1) 中的“孔”。

二值图像表示为 0 和 1 的二维矩阵,其中 1 表示白色(亮)区域,0 表示黑色(暗)区域。

Hole 基本上是一个被“亮”区域包围的“暗”区域。换句话说,被 1 包围的 0 是一个“洞”。孔的另一个定义是:一个暗区(0s),除非我们穿过一些亮区(1s),否则不能通过四个边缘中的任何一个到达。边缘始终为黑色(0)。

现在我需要找到漏洞(0 被 1 包围)并填充这些漏洞(将这些 0 变成 1)。

是否有任何有效的算法可能?请帮忙。提前致谢。

例子:您可以点击以下链接查看示例:go to the bottom of the page and expand example: Fill Holes in a Binary Image

最佳答案

看起来简单的方法是:

  • FloodFill来自一些具有背景值的边缘点(当存在非填充背景边缘像素时重复)

  • 使用填充像素创建 mask

  • 除了用前景颜色遮盖以外的所有颜色

关于c++ - matlab 函数 "imfill(BW,' 孔的有效实现')“在 c++ 中不使用 opencv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23907474/

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