2017-11-22 4 views
0

루프에서 발생을 추적 및 기록하고 루프가 끝나면이를 반환하는 연습 문제에 대해 연구하고 있습니다. 나는이 같은 Y 축을 따라 간단한 이미지의 픽셀 색상을 루프가 : 난 항상에 RGB 값을 갖이 연습첫 번째 및 마지막 발생 찾기

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

:

example pic

내 코드입니다 두 가지 색상. 루프 중에 정보를 저장하는 것에 대한 훌륭한 통찰력을 찾고 있습니다. 나를위한 목표는 제공된 이미지의 빨간색 섹션의 상단과 하단의 y 위치를 반환하는 함수를 만드는 것입니다.

카운터를 사용하여 색상을 목록에 추가하고 list[-1]을 사용하여 색상 감지 루프가 끝난 후 변경 사항을 추적하거나 목록을 구문 분석하는 등의 솔루션을 찾았습니다.

그러나 내 모든 솔루션은 매우 어수선하게 보입니다. 논리 개선의 여지가 있다고 생각합니다.

모든 도움과 의견을 보내 주시면 대단히 감사하겠습니다. 감사!

편집 : 그냥 난 단지 내가 해결책을 와서 함께 일부 바위를 htting하여이

colorList = [] 
for y in range(0, Img.size[1]): 
    x=0 
    color = spImg.getpixel((x, y)) 
    colorList.append(color) 
firstOccurance = colorList.index(redColor)#only fist occurance 
+1

나는 당신이 지금까지 시도하고 당신이 사전을 사용할 수 – AndreyF

+0

을 달성하기 위해 무엇을하려고하는 더 나은 설명 무엇을 질문에 추가한다고 생각합니다. –

+0

질문에 대해보다 구체적이고 정확하게 설명해야합니다. 무엇이 발생했는지 기록하고 있습니까? 어떤 정보를 저장하고 있습니까? 어떤 해결책을 시도 했습니까? 어떤 산출물이 필요한가요? –

답변

0

확인과 같은 부분적인 해결책을 깨달았다. 아마도 가장 효과적인 것은 아니지만 최소한 나는 다소 만족 스럽습니다.

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] 
관련 문제