作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试打开每像素 16 位和多波段的 tif 图像,将其转换为原始文件。我在接下来的命令 i = Image.open('image.tif')
和使用 rawData = i.tostring()
之后使用 PIL。它不适用于多波段 tif 图像。
错误是:
File "C:\Python27\lib\site-packages\PIL\Image.py", line 1980, in open
raise IOError("cannot identify image file")
IOError: cannot identify image file
该目录包含该文件。
我必须怎么做?
最佳答案
GDAL 非常擅长打开多波段栅格,并且支持 11 different band types ,包括 int16。
from osgeo import gdal
import numpy as np
ds = gdal.Open('image.tif')
# loop through each band
for bi in range(ds.RasterCount):
band = ds.GetRasterBand(bi + 1)
# Read this band into a 2D NumPy array
ar = band.ReadAsArray()
print('Band %d has type %s'%(bi + 1, ar.dtype))
raw = ar.tostring()
关于python - 如何从多波段 tif 文件生成原始文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12278653/
我是一名优秀的程序员,十分优秀!