【问题标题】:Simple "magic wand" algorithm for black and white (monochrome) images?黑白(单色)图像的简单“魔杖”算法?
【发布时间】:2015-12-06 16:21:05
【问题描述】:

如果访问 VectorStock 之类的网站并输入“剪影”或“男人剪影”,则会看到由白色背景和许多男人的黑色形状组成的矢量图像。

从图像中剪下男人的最佳方法是什么,类似于 Photoshop 中的“魔术棒”工具?我想这个算法不必那么复杂,因为我们知道只有两种颜色(黑色和白色),我们想要提取黑色图像。

我正在尝试以下(伪代码):

For each pixel
   --> If pixel is white, continue
   --> Else if black-->add it to a group 
          --> Recursively check all adjacent pixels, and if they are black add it to the calling recursors group (if any, or create a new group)

最后,所有的黑色像素都应该属于一个组,这样该组中的每个其他像素都是相连的。

有没有更好的办法?

【问题讨论】:

    标签: algorithm image-processing


    【解决方案1】:

    没有一种算法比您刚才描述的算法更有效地完成这项任务。这就是所谓的flood fill 算法。

    它扫描n 像素,递归搜索访问每个像素不超过一次,总运行时间为O(n)。没有比这更好的了。

    【讨论】:

    • 谢谢!我不知道这是一个真正的算法:D。我自己想出来的!
    • 干得好!这是您自己设计的一个非常好的算法。如果我对问题的回答令您满意,请您投票并接受我的回答吗?
    • 您是从哪里了解到洪水填充的?是在教科书上,还是在工作中遇到的?
    • 我第一次遇到它是在大学的一次编程比赛中。从那以后,我在游戏编程中多次使用该算法。
    猜你喜欢
    • 1970-01-01
    • 2015-10-23
    • 2011-10-19
    • 2013-06-22
    • 1970-01-01
    • 1970-01-01
    • 2011-03-09
    • 2019-08-26
    • 1970-01-01
    相关资源
    最近更新 更多