我使用OpenCV的imread()来读取TIFF . 但是 Value 观与我所知道的并不相同 . 这个TIFF是 signed 16-bit ,它有负值 . 使用imread()的值范围是0~65535,它是 unsigned 16-bit .
import cv2 as cv
img = cv.imread("MYD_20140102.tif",2)
print img
print img.dtype
print img.shape
print img.min()
print img.max()
cv.namedWindow("Image")
cv.imshow("Image",img)
cv.waitKey(0)
cv.destroyAllWindows()
output:
img=[[55537 55537 55537 ... 55537 55537 55537]
[55537 55537 55537 ... 55537 55537 55537]
[55537 55537 55537 ... 55537 55537 55537]
...
[55537 55537 55537 ... 55537 55537 55537]
[55537 55537 55537 ... 55537 55537 55537]
[55537 55537 55537 ... 55537 55537 55537]]
type=uint16
shape=(2318, 2296)
imgMin=0
imgMAX=65535
1 回答
库tifffile(https://pypi.python.org/pypi/tifffile)完全符合您的要求 . 下面是一个创建int16 numpy数组的示例,将其保存在磁盘上,然后再次加载:
输出: