我想用python讀取32位浮點圖像文件來做一些圖像分析。如何讀取python中的32位TIFF圖像?
我已經試過
import matplotlib.pyplot as plt
im = plt.imread('path_to_file.tif')
但是,這只是讀取數據爲8位整數。有沒有辦法用正確的數據類型提供imread()?
- 好吧,它以前用16位TIFF文件開箱即用,但沒有32位浮點數。
我想用python讀取32位浮點圖像文件來做一些圖像分析。如何讀取python中的32位TIFF圖像?
我已經試過
import matplotlib.pyplot as plt
im = plt.imread('path_to_file.tif')
但是,這只是讀取數據爲8位整數。有沒有辦法用正確的數據類型提供imread()?
- 好吧,它以前用16位TIFF文件開箱即用,但沒有32位浮點數。
我發現通過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)
可就是幫助別人。
小號
我經歷了類似的問題試圖讀取單通道32位整數的圖像。我想出瞭解決的辦法是:
from skimage import io
im = io.imread('path_to_file.tif')
如果您已經安裝在計算機上的OpenCV你也可以嘗試:
import cv2
im = cv2.imread('path_to_file.tif', -1)
希望這有助於