2017-04-14 1 views
0

n 그레이 스케일 48 * 48 이미지가있는 폴더가 있습니다.이미지를 픽셀 값으로 변환하고 텍스트 파일에 저장하는 방법?

각 이미지의 픽셀 값을 따로 추출하여 별도의 텍스트 파일에 저장하려고합니다 (텍스트 파일은 n).

from PIL import Image 
import numpy as np 

im = Image.open('a.png') 

pixels = list(im.getdata()) 
width, height = im.size 
pixels = [pixels[i * width:(i + 1) * width] for i in xrange(height)] 
np.savetxt("pixel_data.txt", pixels, delimiter=" ") 

하지만이 같은 값을 받고 있어요 :

나는 이것을 시도 1.460000000000000000e+021.500000000000000000e+021.520000000000000000e+02.

픽셀 값이 0-255 인 모든 텍스트 파일에 48 열 x 48 행을 넣을 수 있습니다.

샘플 이미지 :

sample image

가 어떻게 파이썬이 할 수 있습니까?

+0

샘플 이미지를 연결시킬 수 있습니까? –

+0

이러한 값은 0-255 사이이지만 과학 표기법에서는 부동입니다.''pixels''의 값을 ints로 변환하려고 시도 했습니까? –

답변

3

숫자는 정확합니다. 숫자를 과학적 표기법으로 기본값으로 변환하는 np.savetxt 방법을 사용하고 있습니다. int로 저장하려면 다음과 같이하십시오 :

np.savetxt("pixel_data.txt", pixels, fmt='%d', delimiter=" ") 
+0

48 열 * 48 행이 있어야하지만 325 행과 1027 열을 얻고 있습니다. 뭐가 잘못 되었 니 ? –

+0

이미지가 48 x 48인지 확인 하시겠습니까? – Grr

+0

실수였습니다. 응답 해 주셔서 감사합니다. fmt = '% d'이 모두 필요했습니다. –

관련 문제