通过像素列迭代

时间:2013-10-03 12:13:29

标签: python jython imagej

我正在尝试使用Jython为ImageJ /斐济编写一个小插件。因此,我必须遍历像素列。不幸的是命令

pixels = ip.getPixels()

导致数组按像素行排序。所以我写了一些东西来获得每列像素值的总和(这满足了一个小的查询)。

x = imp.getWidth()
y = imp.getHeight() - 1
pixels = ip.getPixels()
j = 0

for j in range(x):
    print(j)
    i = j
    tempx = x - j
    su = 0
    for i in range((x * y) - 1):

      if pixels[i] > 0:
        su = su + 1
      else:
        su = su + 0  
      i = i + tempx -1

    print(su)

但它似乎只是获得图片的所有像素的总和(完成查询)。在我看来,第二个for循环存在问题,但我太初衷了解为什么。先谢谢你。

1 个答案:

答案 0 :(得分:0)

我同意问题可能是第二个for循环。

for i in range((x * y) - 1):

这将从0到(几乎)图像中的像素数(宽度*高度-1)。 我认为你想要的循环是

for i in range(y):
    if pixels[i+j*(y+1)] > 0:

这是一种很好的做法,但我确信有更多的pythonic方法可以做你想做的事情