发现第一次和最后一次发生

2024-04-25 09:47:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在研究一个实践问题,即跟踪和记录循环中的事件,然后在循环结束时返回它们。我必须沿着Y轴循环一个简单图像的像素颜色,就像这样:

example pic

这是我的密码:

for y in range(0, Img.size[1]):
    x=0
    color = spImg.getpixel((x, y))
    print(color)

对于本练习,我将始终使用两种不同颜色的RGB值。我在寻找一些关于在循环过程中存储信息的优雅见解。我的目标是创建一个函数,返回所提供图像的红色部分的顶部和底部的y位置。你知道吗

我确实想出了一些解决方案,比如用计数器向列表添加颜色,并在颜色检测循环结束后使用list[-1]跟踪更改或解析列表。你知道吗

但我所有的解决方案似乎都很笨拙,我认为逻辑上还有改进的空间。你知道吗

编辑:刚刚意识到我只有这样的部分解决方案

colorList = []
for y in range(0, Img.size[1]):
    x=0
    color = spImg.getpixel((x, y))
    colorList.append(color)
firstOccurrence = colorList.index(redColor)#only first occurrence

Tags: in图像列表imgforsize颜色记录
1条回答
网友
1楼 · 发布于 2024-04-25 09:47:01

好吧,把一些石头放在一起,我想出了一个解决办法。也许不是最有效的方法,但至少我对它有点满意。你知道吗

clrs = []
tarClrList = []
for y in range(0, Img.size[1]):
    x=0
    color = Img.getpixel((x, y))
    clrs.append(color)
    if color == green:
        tarClrList.append(clrs.index(green,y))
max = tarClrList[-1]
min = tarClrList[0]

相关问题 更多 >