使用Matplotlib和GDAL在Python中可视化Tiff文件

使用Matplotlib和GDAL在Python中可视化Tiff文件

TIFF文件格式用于存储光栅化的图像。一个名为GDAL(Geospatial Data Abstraction Library)的库专门用于读取这些光栅文件,以及其他文件格式,如矢量格式。gdal库是开源地理空间基金会的一部分。

要安装所需的模块,我们可以在终端中使用以下命令:

pip install gdal
!pip3 intall matplotlib

我们需要使用Python中的matplotlib和GDAL模块来显示TIFF图像。

方法:

  • 步骤1: 导入模块
  • 步骤2: 我们可以计算有多少个波段。
  • 步骤3: 在TIFF文件中找到每个光栅波段。
  • 步骤4: 将波段读取到NumPy数组中。
  • 步骤5: 使用Matplotlib的imshow()函数进行显示。

为了解释本教程,我们将使用以下TIFF格式的图像:

使用Matplotlib和GDAL在Python中可视化Tiff文件

逐步实现:

步骤1: 导入模块并打开文件。

from osgeo import gdal as GD
import matplotlib.pyplot as mplot
import numpy as npy
data_set = GD.Open(r'land_shallow_topo_2048.tif')

步骤2: 计算总乐队数量。

print(data_set.RasterCount)

输出:

3

步骤3: 获取波段

我们使用GDAL的GetRasterBand(int)方法来获取波段。需要注意的是,传入的值始终从1开始(波段的索引从1开始)。

# As, there are 3 bands, We will store in 3 different variables
band_1 = data_set.GetRasterBand(1) # red channel
band_2 = data_set.GetRasterBand(2) # green channel
band_3 = data_set.GetRasterBand(3) # blue channel

步骤4: 将波段读取为NumPy数组。

GDAL提供了ReadAsArray()方法,将这些波段转换为NumPy数组并返回数组。

b1 = band_1.ReadAsArray()
b2 = band_2.ReadAsArray()
b3 = band_3.ReadAsArray()

步骤5: 使用matplotlib的imshow()函数绘制数组。

为了绘制这三个数组,我们将按顺序堆叠它们。

img_1 = npy.dstack((b1, b2, b3))
f = mplot.figure()
plt.imshow(img_1)
mplot.savefig('Tiff.png')
mplot.show()

最终代码:

from osgeo import gdal as GD
import matplotlib.pyplot as mplot
import numpy as npy
data_set = GD.Open(r'land_shallow_topo_2048.tif')
print(data_set.RasterCount)
# As, there are 3 bands, we will store in 3 different variables
band_1 = data_set.GetRasterBand(1) # red channel
band_2 = data_set.GetRasterBand(2) # green channel
band_3 = data_set.GetRasterBand(3) # blue channel
b1 = band_1.ReadAsArray()
b2 = band_2.ReadAsArray()
b3 = band_3.ReadAsArray()
img_1 = npy.dstack((b1, b2, b3))
f = mplot.figure()
plt.imshow(img_1)
mplot.savefig('Tiff.png')
mplot.show()

最终输出:

使用Matplotlib和GDAL在Python中可视化Tiff文件

结论

在本教程中,我们讨论了如何使用Python中的matplotlib和glad模块来可视化tiff文件格式的图像。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程