Python遥感图像处理应用篇037 GDAL+Scikit-image遥感图像主成分分析PCA

news/2024/7/21 4:58:04 标签: 图像处理, 计算机视觉, 人工智能

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

http://www.niftyadmin.cn/n/4977069.html

相关文章

电脑只有一个c盘怎么办?详细的解决方法看这里!

“奇怪,为什么我的电脑只有一个c盘呢?其他的磁盘都没有哎,为什么会这样呢?有什么解决方法吗?” 在使用电脑时,遇到只有一个C盘的情况可能会引发存储和管理问题。这可能是出于制造商的预设设置,或…

精心准备了22个Python人工智能库,建议收藏!

为了大家能够对人工智能常用的 Python 库有一个初步的了解,以选择能够满足自己需求的库进行学习,对目前较为常见的人工智能库进行简要全面的介绍。 1、Numpy NumPy(Numerical Python)是 Python的一个扩展程序库,支持大量的维度数组与矩阵运算…

Redis持久化之AOF解读

目录 什么是AOF? 如何使用 AOF重写机制 如何工作 AOF优缺点 redis是一个内存数据库,当redis服务器重启,获取电脑重启,数据会丢失,我们可以将redis内存中的数据持久化保存到硬盘的文件中 持久化的方式有: RDB:定时将数据保存在硬盘中(dump.rdb)(默认…

老网工的爱情故事二:从VPN到SD-WAN,爱情与技术的升华

— 前言 — 为什么爱情不能像设置VLAN一样 把不同的“IP”的人绑在一起? 为什么周围的事物 不能像创建ACL那样随心所欲的控制? 为什么相爱的人远在天涯 不能像做VPN一样拉到近在咫尺? 为什么你我之间没有一个边界路由呢? 我已经给…

【问题总结+备忘录】上传一个shp文件能够读取其中的空间矢量字段,代码+采坑总结

需求描述 要求上传一个shp文件能够读取其中的空间矢量字段。 简单分析 SHP上传格式应该有两种(zip格式和.shp的格式文件内部可能存在多个空间矢量,结果以列表形式返回文件不大,使用MultipartFile上传上传即可结合geo-tools读取空间字段&am…

C++学习记录——이십팔 C++11(4)

文章目录 包装器1、functional2、绑定 这一篇比较简短,只是因为后要写异常和智能指针,所以就把它单独放在了一篇博客,后面新开几篇博客来写异常和智能指针 包装器 1、functional 包装器是一个类模板,对可调用对象类型进行再封装…

代码大全阅读随笔 (二)

软件设计 设计就是把需求分析和编码调试连在一起的活动。 设计不是在谁的头脑中直接跳出来了,他是不断的设计评估,非正式讨论,写实验代码以及修改实验代码中演化和完善。 作为软件开发人员,我们不应该试着在同一时间把整个程序都塞…

【Java基础增强】Stream流

1.Stream流 1.1体验Stream流【理解】 案例需求 按照下面的要求完成集合的创建和遍历 创建一个集合,存储多个字符串元素 把集合中所有以"张"开头的元素存储到一个新的集合 把"张"开头的集合中的长度为3的元素存储到一个新的集合 遍历上一步得…