2011-04-24 4 views
4

enter image description here 안녕하세요,Python : PIL 및/또는 파이 게임에서 16 비트 .tiff 이미지 조작 : 어떻게 든 8 비트로 변환 하시겠습니까?

나는 사진에서 효모의 평균 식민지 크기를 결정하는 프로그램을 작업 중이며 테스트 한 .bmp 이미지와 잘 작동합니다. 프로그램은 파이 게임을 사용하며 나중에 PIL을 사용할 수 있습니다.

그러나 우리 실험실에서 사용하는 카메라/소프트웨어 콤보는 16 비트 회색조 tiff 만 저장하고 파이 게임은 16 비트 tiff를 인식하지 못하는 것 같습니다. 단지 8 비트입니다. 필자는이 간단한 방법으로 지난 몇 시간 동안 계속 읽었지만 파이썬 이미징 라이브러리조차도 16 비트 .tiff로는 작동하지 않는 것처럼 보였습니다. 시도해 보았습니다. "IOError : 이미지를 식별 할 수 없습니다. 파일".

import Image 

img = Image.open("01 WT mm.tif") 

내 궁극적 인 목표는이 프로그램은 사용자 친화적이고 설치가 용이 할 것입니다, 그래서 추가 모듈을 추가하거나 ImageMagick를 또는 무언가를 설치하는 사람을 필요로하는 피하기 위해 노력하고있어.

누구든지 프리웨어 또는 순수 Python을 사용하여이 문제에 대한 간단한 해결 방법을 알고 있습니까? 이미지에 대해 너무 많이 알지 못합니다. 비트 깊이 조작은 제 범위를 벗어났습니다. 그러나 저는 16 비트 모두를 필요로하지 않는다고 확신합니다. 어쨌든 8 비트 정도만 실제 데이터를 가지고있을 것입니다. 사실 ImageMagick을 사용하여 이미지를 변환하려고 시도한 적이 있는데,이 이미지는 완전 백색 이미지로 나타났습니다. 저는 "-auto-levels"명령을 사용해야한다고 읽었습니다. 그 이유는이 데이터가 실제로 16 비트 이미지를 포함하지 않기 때문입니다. 비트 범위.

나는 귀하의 도움에 진심으로 감사 드리며, 지식 부족에 대해 사과드립니다.

피씨 : 누군가 프로그래머가 아닌 사람이 쉽게 내 파이썬 프로그램을 만들 수있는 방법에 대한 조언이 있습니까? 예를 들어 파이썬과 파이 게임과 함께 번들로 묶어서 단 하나의 설치 만 할 수있는 방법이 있습니까? Windows와 Mac 모두에서이 작업을 수행 할 수 있습니까? 고맙습니다.

편집 : 나는 김프에서 열 시도하고, 3 오류 있어요 :) (20)를 기대 (27

1) 필드 "날짜 시간"에 대한 잘못된 수를; 태그 트림 2) 죄송합니다, 3) 지원되지 않는 레이아웃, 아니 RGBA 로더이 평균을 수행하고 내가 그것을 어떻게 맞지 않는 무엇

12 비트 샘플 이미지를 처리 ​​할 수 ​​있습니까?

+2

어떤 PIL 버전을 사용하고 있습니까? PIL은 1.1 비트부터 16 비트 그레이 스케일 이미지를 지원해야합니다. – Gabe

+0

필자는 개인적으로 scipy.misc.imread()와 라벨 배열 함수를 사용하여 SciPy를 살펴볼 것입니다.이 함수는 사용자가 수행하는 작업에 완벽하게 보입니다. – Benjamin

+0

필자는 PIL 1.1.7 버전을 사용하여 비트 심도가 아닌가? 나는 곤두박질 친다! .tiff에 카메라 소프트웨어가 할 수있는 다른 이상한 형식이 있습니까? –

답변

2

py2exe는 Windows 시스템을 사용하는 경우 응용 프로그램을 패키징하는 방법입니다.16 비트 TIFF 문제에 관한

:

이 예 http://ubuntuforums.org/showthread.php?t=1483265는 PIL을 사용하여 표시 변환하는 방법을 보여줍니다.

이제 논스톱 부분 질문에 대해 : 이미지 분석을 할 때 가능한 한 오랫동안 이미지 조작에서 최대한의 다이나믹 레인지를 유지하기를 원합니다. PIL은 이미지의 콘트라스트를 향상시키고 빛의 레벨을 없애고 가장자리를 감지 할 수있는 많은 필터/변환 기능을 제공합니다. 앞으로 고려해야 할 방향은 에지 감지를 위해 처리 된 스케일 된 이미지 옆에 원본 이미지 (8 비트로 스케일링 됨)를 표시하는 것입니다.

더 많은 예제와 샘플 코드는 http://code.google.com/p/pyimp/wiki/screenshots을 확인하십시오.

+0

심지어 Image.open() 이러한 tiff의 수, "IOError : 이미지 파일을 식별 할 수 없습니다", 그래서 첫 번째 링크의 예제는 작동하지 않습니다. 나는 파일들이 Photoshop에서 열리기 때문에 괜찮다고 알고있다. 그것은 비트 깊이가 아닌 다른 것일 수 있습니까? –

+0

포토샵에서 열고 tiff로 다시 저장하면 작동합니까? 파일 헤더 문제 일 수도 있고 원시 데이터 대 압축 된 파일 일 수도 있습니다. – WombatPM

+0

코드와 샘플 이미지 파일을 게시 할 수 있습니까? – WombatPM

2

순수 파이썬 티파니 리더가있는 pylibtiff을 보겠습니다.

번들링의 가장 좋은 방법은 아마도 py2exe와 py2app 일 것입니다. - 나는 보통 GDAL + NumPy와를 사용하여 파이썬 엉망으로

1) 16 비트 이미지 데이터 :

1

이 실제로이 부분 질문입니다. 이는 요구 사항에 비해 너무 많을 수 있습니다. 대신 PIL + Numpy를 사용할 수 있습니다.

2) 릴리스 엔지니어링 Python 앱이 복잡해질 수 있습니다. 앱의 복잡성에 따라 py2deb, py2apppy2exe으로 벗어날 수 있습니다. 학습 distutils도 도움이 될 것입니다.

관련 문제