1.计算效果图
使用多波段遥感图像进行主成分分析,这里使用了6个波段的数据计算和显示效果图如下:左边是原图像IR+R+G显示图,右边是计算得到的3个主成分组合显示的RGB图像。
2.计算方法详解
使用GDAL库读取和保存遥感图像,使用numpy对图像数据进行相应的变换和计算,使用Scikit-image库中的PCA方法计算主成分。
使用GDAL对图像数据的读取和保存这里不做赘述。
图像特征值和特征向量计算代码:
def calculate_eigenvalues(data_matrix):# 计算协方差矩阵covariance_matrix = np.cov(data_matrix, rowvar=False)# 计算特征值和特征向量eigenvalues, eigenvectors = np.linalg.eig(covariance_matrix)# 对特征值进行排序sorted_indices = np.argsort(eigenvalues)[::-1]sorted_eigenvalues = eigenvalues[sorted_indices]sorted_eigenvectors = eigenvectors[:, sorted_indices]# 输出前几个主成分的解释方差比例total_variance = np.sum(sorted_eigenvalues)explained_variance_ratios = sorted_eigenvalues / total_va