【问题标题】:Algorithm to iterate through image pixels迭代图像像素的算法
【发布时间】:2012-05-14 11:41:19
【问题描述】:

我确定这方面的东西已经存在,所以我想为什么要重新发明轮子。

有谁知道一种算法可以从左上角到右下角遍历图像中的像素。

首先它会检查:(0, 0)

然后:(1, 0), (1, 1), (0, 1)

然后(2, 0), (2, 1), (2, 2), (1, 2), (0, 2)

……等等……

为这个问题寻找最有效的算法。

谢谢。

【问题讨论】:

  • 这里的效率不是问题。这只是一个 for 循环。不可能做得更好。

标签: algorithm


【解决方案1】:

您似乎想以这种方式进行迭代:

1 4 9
  ↑ ↑
2→3 8
    ↑
5→6→7

...

这只是一个for循环:

for radius in range(squareImage.width):
    for col in range(radius):
        yield (radius, col)
    for row in range(radius):
        yield (radius-row, radius)
    yield (0, radius)

这里的效率不是问题。不可能比线性像素数(像这样)做得更好,因为您必须访问每个像素。

【讨论】:

  • 这个复杂度是 O(N^2),我看不出你能做得比这更好。
  • @DarthVader:由于需要 O(N^2) 次收益操作,所以不可能做得更好。
  • @sdcvvc 是的。我也是这么说的:)
猜你喜欢
  • 2011-07-03
  • 1970-01-01
  • 2018-01-03
  • 2023-03-28
  • 1970-01-01
  • 2021-11-17
  • 2021-09-27
  • 2013-01-12
  • 1970-01-01
相关资源
最近更新 更多