2014-10-24 2 views
0

그림의 RGB 값을 인쇄하는 함수를 작성하고 싶습니다. 사진은 모두 red, green, yellow 또는 흰색으로 표시됩니다.RGB 값 찾기

내가 가지고있는 것은 다음

def findColor(): 
    pic=takePicture() 
    red = 0 
    green = 0 
    blue = 0 
    size = getWidth(pic)*getHeight(pic) 
    for pix in getPixels(pic): 
     r = getRed(pix) 
     g = getGreen(pix) 
     b = getBlue(pix) 
     red = red + r 
     green = green + g 
     blue = blue + b 
    print(red//size,green//size,blue//size) 

이상으로 나에게 유사한 값을 제공하는 코드 :

def findColor(): 
    pic=takePicture() 
    for pix in getPixels(pic): 
     r = getRed(pix) 
     g = getGreen(pix) 
     b = getBlue(pix) 
    print(r,g,b) 

이 코드를 RGB 값을 얻기의 올바른 방법인가? 사진에 다른 색상이 포함 된 경우 두 번째 코드가 정확하지 않습니다.

+2

"이 코드는 RGB 값을 가져 오는 올바른 방법입니까?" 그 질문에 다른 질문으로 대답하겠습니다. 당신이 그들을 실행할 때, 당신은 원하는 출력을 얻습니까? – Kevin

+0

@Kevin 예, 링크 된 사진과 같은 제한을 설정하면 가능합니다. 그리고 제한 사항이 없으면 예를 들어 그림이 빨간색, 검은 색 및 자주색의 혼합 물인 경우입니다. 첫 번째 코드가 올바른지 알고 싶습니다. – Robben

+0

첫 번째 이미지의 모든 픽셀 평균을 인쇄합니다. 두 번째 이미지는 이미지의 오른쪽 아래 픽셀의 색을 인쇄합니다. 이미지에 정확히 하나의 색상이 포함되어 있으면 둘 다 똑같은 것을 인쇄합니다. – Kevin

답변

1

각 픽셀에 대해 rgb 값만 인쇄하려는 경우 들여 쓰기를 수정하면 두 번째 코드 블록이 작동합니다.

def findColor(): 
    pic=takePicture() 
    for pix in getPixels(pic): 
     r = getRed(pix) 
     g = getGreen(pix) 
     b = getBlue(pix) 
     print(r,g,b) 
0

많은 게시물이 원래 게시물에 늦었습니다.

은 PIC가 (R,C,3) R-> 행/높이, C와 같은 형상의 ndarray 인 경우

-> 열/폭 3 개 채널 (RGB)

이 문서 Python numpy array with multiple conditions to iterate over imageone line solution 당신이

를 검색 할 수 있습니다입니다

Red,Green,Blue = img[...,0],img[...,1],img[...,2]