0

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

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 循环存在问题,但我太初学者了,无法理解原因。先感谢您。

4

1 回答 1

0

我同意问题可能出在第二个 for 循环上。

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

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

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

这是一个很好的做法,但我确信有一种更 Python 的方式来做你想做的事

于 2013-10-04T14:53:38.143 回答