CSV -> bitmap 전환 질문입니다
글쓴이: snowall / 작성시간: 토, 2011/07/02 - 8:50오후
안녕하세요
제가 지금 만드는 프로그램은 CCD영상을 처리하는 프로그램입니다. 영상 데이터가 바이너리로 제공되어 이것을 CSV로 변환할 수 있습니다. 예를 들어
[[4231, 3423, 4323, 5211, 563], [2351, 3423, 3423, 663, 33], [3423, 6313, 5323, 6232, 964]]
와 같이 정수로 주어집니다. 16비트 정수로 0~65535 사이의 값을 갖고 있습니다.
이걸 Grayscale이나 Pseudocolor로 변환하여 윈도우 화면에 표시해야 합니다.
파이썬 버전은 2.7.1이고 GUI를 위해 wx를, 수치해석을 위해 numpy를 사용하고 있습니다. wx.Bitmap으로 옮겨야 합니다.
self.wxImg = wx.EmptyImage( f.getData().shape[1], f.getData().shape[2] ) self.wxImg = Image.fromstring("L", (f.getData().shape[1],f.getData().shape[2]), f.getData()[0]) t=numpy.zeros((f.getData().shape[1],f.getData().shape[2], 3)) t.shape for i in range(f.getData().shape[1]-1): #~ print(f.getData()[0][i]) for j in range(f.getData().shape[2]-1): t[i][j][0] = f.getData()[0][i][j]/256 t[i][j][1] = f.getData()[0][i][j]/256 t[i][j][2] = f.getData()[0][i][j]/256 t.shape self.wxImg = Image.fromstring("L", (f.getData().shape[1],f.getData().shape[2]), t)
시도해 본 코드는 위와 같습니다. 구글링으로는 도저히 알 수 없는 해설들만 나와서 도움 요청드립니다...
파이썬 마을에도 물어봤는데 아직 답이 없네요.
급하다면 급한 질문이지만... 주말 중에 해결 못하면 월요일날 욕밖에 더 먹겠나 싶네요 -_-;
Forums:
CCD 데이터가 다섯자리인데 RGB가 아닌 이유가
CCD 데이터가 다섯자리인데 RGB가 아닌 이유가 뭔가요?
5가지 컬러인가요? CCD의 자료구조가 궁금합니다.
수도컬러를 모르시는 분은
http://www.roborealm.com/help/Pseudo_Color.php
소스에 주석을 다시면 이해하는 분들도 생길 것 같습니다.
특히 getdata와 shape가 뭔지 궁금합니다.
혹시 BMP 파일로 출력하신다면 BMP헤더 설명은 윈도우즈 API 정복 책에 잘 나와있습니다.
저는 대답해드릴 실력이 없어서 안타깝습니다..
재벌 2세가 재벌이 될 확률과
금메달리스트 2세가 금메달을 딸 확률이 비슷해지도록
자유오픈소스 대안화폐를 씁시다.
아이디의 아이디어 무한도전
http://blog.aaidee.com
귀태닷컴
http://www.gwitae.com
저게 원래 1024 x 1024 크기의
저게 원래 1024 x 1024 크기의 bitmap입니다.
소스는 파이썬이고. getdata는 CCD데이터에서 정보를 얻어오는거, shape는 가로와 세로 픽셀 수를 알려줍니다. (행렬의 크기)
피할 수 있을때 즐겨라! http://melotopia.net/b
댓글 달기