在 PIL 中打开的 GeoTIFF 问题
GeoTIFF issue with opening in PIL
每次我在 python(尝试过 PIL、matplotlib、scipy、openCV)中打开正射影像的 GeoTIFF 图像时,图像都会搞砸。一些角落被裁剪,但图像保持其原始形状。如果我在 Photoshop 中手动将 tif 转换为 png 并加载它,它确实可以正常工作。因此,PIL 似乎在处理包含未填满整个 canvas 的对象的 tif 文件时遇到了一些麻烦。有人能解决这个问题吗?
部分原图:
打开后:
如果你把你正在使用的图形的 link 放上去就好了(如果它是免费的)。我从 here, and I used gdal 下载了一个示例 GeoTIFF 图像并打开它。
geotiff.ReadAsArray()
的形状是 (3, 1024, 2048)
所以我把它转换成 (1024, 2048, 3)
(RGB) 然后用 imshow
打开它:
import gdal
gdal.UseExceptions()
import matplotlib.pyplot as plt
import numpy as np
geotiff = gdal.Open('/home/vafanda/Downloads/test.tif')
geotiff_arr= geotiff.ReadAsArray()
print np.shape(geotiff_arr)
geotiff_shifted = np.rollaxis(geotiff_arr,0,3)
print "Dimension converted to: "
print np.shape(geotiff_shifted)
plt.imshow(geotiff_shifted)
plt.show()
结果:
每次我在 python(尝试过 PIL、matplotlib、scipy、openCV)中打开正射影像的 GeoTIFF 图像时,图像都会搞砸。一些角落被裁剪,但图像保持其原始形状。如果我在 Photoshop 中手动将 tif 转换为 png 并加载它,它确实可以正常工作。因此,PIL 似乎在处理包含未填满整个 canvas 的对象的 tif 文件时遇到了一些麻烦。有人能解决这个问题吗?
部分原图:
打开后:
如果你把你正在使用的图形的 link 放上去就好了(如果它是免费的)。我从 here, and I used gdal 下载了一个示例 GeoTIFF 图像并打开它。
geotiff.ReadAsArray()
的形状是 (3, 1024, 2048)
所以我把它转换成 (1024, 2048, 3)
(RGB) 然后用 imshow
打开它:
import gdal
gdal.UseExceptions()
import matplotlib.pyplot as plt
import numpy as np
geotiff = gdal.Open('/home/vafanda/Downloads/test.tif')
geotiff_arr= geotiff.ReadAsArray()
print np.shape(geotiff_arr)
geotiff_shifted = np.rollaxis(geotiff_arr,0,3)
print "Dimension converted to: "
print np.shape(geotiff_shifted)
plt.imshow(geotiff_shifted)
plt.show()
结果: