我正在尝试使用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循环存在问题,但我太初衷了解为什么。先谢谢你。
答案 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方法可以做你想做的事情