2016-11-22 44 views
1

我想用python讀取32位浮點圖像文件來做一些圖像分析。如何讀取python中的32位TIFF圖像?

我已經試過

import matplotlib.pyplot as plt 

im = plt.imread('path_to_file.tif') 

但是,這只是讀取數據爲8位整數。有沒有辦法用正確的數據類型提供imread()?

- 好吧,它以前用16位TIFF文件開箱即用,但沒有32位浮點數。

回答

0

我發現通過PIL的方式,那就是:

from matplotlib import pyplot as plt 
from matplotlib import cm 

from PIL import Image 
from numpy import array 

im = Image.open('path_to_file.tif') 

ncols, nrows = im.size 
ima = array(im.getdata()).reshape((nrows, ncols)) 
plt.imshow(ima, cmap=cm.Greys_r) 

可就是幫助別人。

小號

1

我經歷了類似的問題試圖讀取單通道32位整數的圖像。我想出瞭解決的辦法是:

from skimage import io 
im = io.imread('path_to_file.tif') 

如果您已經安裝在計算機上的OpenCV你也可以嘗試:

import cv2 
im = cv2.imread('path_to_file.tif', -1) 

希望這有助於