在模式识别中,通常将遥感单波段数据称为特征。为了真正认识遥感数据集中两个波段(特征)如何协同变化以及是否相关,通常绘制两个波段的特征空间图。
二维特征空间图提取两个波段的所有像元亮度值,并且将其出现的频率描绘在255×255(假定为8bit的数据)特征空间中。数值对出现的频率越大,特征空间像元就越亮。用图形检验波段间统计关系更为直观。
下面以TM第1、2波段数据为例绘制特征空间图
import gdal
import numpy as np
import matplotlib.pyplot as plt
import PIL.Image
dataset1 = gdal.Open("b1.tif")
dataset2 = gdal.Open("b2.tif") #利用gdal读取第1、2波段
im_width = dataset1.RasterXSize # 栅格矩阵的列数
im_height = dataset1.RasterYSize # 栅格矩阵的行数
im_data1 = dataset1.ReadAsArray(0, 0, im_width, im_height) # 获取数据
im_data2 = dataset2.ReadAsArray(0, 0, im_width, im_height)
value = np.zeros((256, 256),dtype=float)
band1 = np.array(im_data1)
band2 = np.array(im_data2)
band11 = band1.flatten()
band21 = band2.flatten()
band11.astype(int)
band21.astype(int)
pixel_num = im_width1 * im_height1
for x in range(pixel_num):
value[band11[x]][band21[x]] = value[band11[x]][band21[x]]+1
value=value[::-1]
img = PIL.Image.fromarray(value)
img.show()
生成的特征空间图如下
可以发现这景TM影像的1,2波段具有高度的相关性