2016-10-11 3 views
0

파이썬 모드에서 처리를 사용하여 이미지를로드하고 계산을 수행합니다. 일반적인 생각은 : 최대 1920x1200 정도의 작은 이미지Py 픽셀 처리 [] 배열에 큰 이미지의 모든 픽셀이 포함되어 있지 않습니다.

def setup(): 
    global maxx, maxy 
    maxx = 0 
    maxy = 0 

    # load the image 
    global img 
    img = loadImage("img.jpg"); 

    maxx = img.width 
    maxy = img.height 

def draw(): 
    image(img, 0, 0); 

def mousePressed(): 
    calc() 

def calc(): 
    height = int(img.height) 
    width = int(img.width) 
    print "width: " + `width` 
    print "height: " + `height` 
    print "width*height: " + `width*height` 

    # iterate over the input image 
    loadPixels() 
    print "length of pixels array: " + `len(pixels)` 

    # ... do stuff with the image 

의 "폭 * 높이"및 "픽셀 어레이의 길이는"동일하다. 3025 × 2009과 같은 큰 이미지의 경우 픽셀 배열의 길이가 상당히 줄어 듭니다. 3025 X 2009의 예를 들어 그 차이는 다음과 같습니다
폭 * 높이 : 픽셀 배열의 6,077,225 길이 : 3,944,600

에 갈 수있는 무엇을 어떤 아이디어가?

+0

은 무엇 발생에 대한 더 많은 연구 후에이 대답을 업데이 트됩니다 ... IMG에서 loadPixel 올바른 픽셀을 얻는다 호출 정렬? 그 이미지는 어떻게 생겼습니까? –

+0

@KevinWorkman이 응답 해 주셔서 감사합니다. 당신이 제안한 것처럼 이미지에 픽셀을 써 넣으려고 할 때, 나는 더 명백한 것이 문제를 해결한다는 것을 발견했습니다. img.loadPixels() 인쇄 "픽셀 배열의 길이 :"+'len (img.pixels)' – raf

답변

1

디버깅 중 문제가 발생했습니다.

def calc(): 
    height = int(img.height) 
    width = int(img.width) 
    print "width: " + `width` 
    print "height: " + `height` 
    print "width*height: " + `width*height` 

    # iterate over the input image 
    img.loadPixels() 
    print "length of pixels array: " + `len(img.pixels)` 

나는 loadPixels()는 그 픽셀 새 이미지를 만들려고하면

관련 문제