【问题标题】:image processing with python用python进行图像处理
【发布时间】:2015-05-29 13:25:39
【问题描述】:

我有这个输入image1,它是 20x20 大小,看起来像这样

00000000000000000000
00111000000000000000
01101100000001111000
11000110000001111110
11100000001100011110

我需要一个能生成输出的函数,比如 image2,大小为 20x20,看起来像这样

00000000000000000000
00111000000000000000
11011000000022220000
11000110000002222220
11000110000002222220
11100000003300022220

不同之处在于,第一个似乎是灰度图像(只有 0 和 1),而基于输入图像的相似区域的所需输出现在将包含 2,3,依此类推。

到目前为止,我正在寻找 pillow 的一些可能适合我的内置函数,但我什至不确定我是否正在寻找正确的方向。您能否建议一种方法来解决这个问题?

【问题讨论】:

  • 您应该看看 Flood-Fill-Algorithms,它们实施起来简单快捷。
  • @PeterNL 我不知道.. 好的,谢谢

标签: image python-2.7 image-processing


【解决方案1】:

您是否查看过之前关于 stackoverflow 的帖子 (Simple object recognition) ?

总之你可以使用 SciPy 的 ndimage.label() http://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.measurements.label.html#scipy.ndimage.measurements.label

祝你好运。

【讨论】:

  • ndimage.label() 是要走的路。它本质上执行洪水填充。很好的答案。
【解决方案2】:

我建议写一个简单的函数

步骤:

  1. 复制一张用零填充的图像并将其用作访问数组
  2. 执行 dfs。您只需要在图像上找到岛屿,这是一个简单的图形问题。谷歌在图表中寻找岛屿。

希望它有所帮助,您总是不需要命名算法来做简单的事情

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-21
    • 2018-05-18
    相关资源
    最近更新 更多