2014-07-09 3 views
2

32 비트 .tif를 16 비트 .tif로 변환하는 간단한 방법이 있습니까? IDL에서 write_tiff는/float 대신/short를 허용합니다. 파이썬이 그렇게합니까? 대신, 나는 이것을 시도 :파이썬 32 비트에서 16 비트 티파니로 변환

i32 = Image.open('image.tif') 
<Image.Image image mode=F size=2016x2016 at 0x102A3E998> 
i32.convert('L').save('newimage.tif') 

ImageJ에 (시청자)은 TIF를 열고이 이미지는 8 비트가 아닌 16 비트이라고 말했다.

+0

출력이 tiff가 필요합니까? 원하는 출력을 보거나 수치 계산에 사용합니까? 당신이보기를 원한다면'a = numpy.asarray (i32); matplotlib.pyplot.imshow (a)'. – heltonbiker

답변

1

파이썬 이미징 라이브러리는 16 비트 픽셀 깊이를 지원하지 않습니다. 안내서의 concepts section에서 "모드"를 참조하십시오.

same goes 유도체 라이브러리 베개 용.

예 : ImageMagick (파이썬 bindings)에 -depth 옵션이 있습니다.

2

PIL documentation : 'L' 모드는 8 비트 그레이 스케일 이미지 용이며 원래 이미지는 정수가 아닌 32 비트 플로트 (모드 'F')입니다. 16 비트 정수 이미지를 얻으려면 모드에 'I;16'을 사용할 수 있습니다. 이것은 적어도 내 베개 2.0.0 (우분투 14.04)에서 지원됩니다 :

f32 = Image.open('image.tif') 
f32.convert('I;16').save('newimage.tif') 
+0

이것을 시도했지만, 'I; 16'으로 변환하면 .histogram이 ~ 가우스 중심에서 32 비트 이미지의 경우 델타 함수에 대해 95/255를 중심으로 변경되고, 16 비트 이미지의 경우 255로 변경됩니다 (즉,). 어쨌든 그것을 바로 잡을 수 있을까요? – user3822346

+0

현재 파일이 없기 때문에 디버깅하기가 어렵습니다. 또한 f32 또는 i16 tiff를 지원하는 소프트웨어가 없습니다. D –

관련 문제