2014-07-15 7 views
1

16 진수 형식의 이미지 데이터 (1 장의 사진)가 들어있는 텍스트 파일이 있습니다.이미지 데이터가 포함 된 텍스트 파일을 이미지로 변환하는 방법은 무엇입니까?

12:0a:11:0b:08:18:0d:0e 
0e:0c:14:12:0a:0d:10:0e 
0f:12:0b:0e:0c:0e:0a:14 
11:13:0c:0e:13:0e:0a:10 
0e:0c:11:08:0c:0e:0f:0e 
0c:0c:0b:12:06:10:0e:0e........and so on 

데이터는 통합 직렬 카메라 (ucam)로 촬영합니다. 이 그림은 80x60 8 비트 그레이 스케일 RAW 이미지입니다. 데이터를 이미지로 변환하고 싶습니다. 어떤 아이디어를 파이썬에서 어떻게 할 것인가?

+1

가능한 중복 [파이썬에서 PNG로 RAW 이미지를 변환하는 방법?] (http://stackoverflow.com/questions/9922402/how-to-convert-raw-images-to-png-in- python) – njzk2

+0

원시 데이터는 8 개의 그룹으로 분리 된 것처럼 보입니다. 그게 무슨 뜻이야? 파일에 개행 문자가 포함되어 있습니까? 질문에 전체 샘플 이미지의 데이터를 붙여 넣을 수 있다면 유용 할 것입니다. – martineau

+0

@ njzk2 "RAW 데이터"가 아닌 "RAW 이미지"를 png 형식으로 변환하는 방법을 묻습니다. 그는 이미 이미지를 가지고있다. – user3826526

답변

0

아마 더 나은 솔루션이 있습니다하지만 전체 이미지 80x60를 얻기 위해 반복적으로 사용할 수 있도록 데이터의 부분이 있기 때문에 나는 그것이 PyGame

와 함께 할 수 있다고 생각합니다.
전체 데이터를 변경해야합니다.

data ='''12:0a:11:0b:08:18:0d:0e 
0e:0c:14:12:0a:0d:10:0e 
0f:12:0b:0e:0c:0e:0a:14 
11:13:0c:0e:13:0e:0a:10 
0e:0c:11:08:0c:0e:0f:0e''' 

sf = pygame.Surface((80,60), depth=24) 

x = 0 
y = 0 

for __ in range(120): # repeat the same data 
    for row in data.splitlines(): 
     for pixel in row.split(':'): 
      c = int(pixel,16) 
      sf.set_at((x,y), pygame.Color(c,c,c)) 
      x += 1 
      if x == 80: 
       x = 0 
       y += 1 

pygame.image.save(sf, 'new.png') 

당신은 당신이 생의 바이트로 텍스트 표현을 변환하면

enter image description here

0

, 당신은 변환 할 PIL의 Image.fromstring를 사용할 수있는 몇 가지 (회색) 색상을 확인하기 위해 화면에 이미지 크기를 조정해야합니다 이미지로.

from PIL import Image 
values = [v for line in data.split() for v in line.split(':')] 
bstr = ''.join(chr(int(v, 16)) for v in values) 
im = Image.fromstring('L', (80, 60), bstr) 
관련 문제