基于PCA进行多光谱和全色图像融合
2018-03-05 10:28
3175 查看
参考:
http://blog.csdn.net/what_lei/article/details/48999673
http://blog.sina.com.cn/s/blog_d845c4360101oxx5.html
https://wenku.baidu.com/view/4c30afc43c1ec5da50e270c8.html
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/29/8328465ca8535e226df077603ebd0f2c)
http://blog.csdn.net/what_lei/article/details/48999673
http://blog.sina.com.cn/s/blog_d845c4360101oxx5.html
https://wenku.baidu.com/view/4c30afc43c1ec5da50e270c8.html
PCA图像融合
思想
以多光谱和全色图像的融合来讲解PCA图像融合,主要思想就是利用PCA的方法找到多光谱图像波段间的协方差矩阵的特征分量,接着将全色图像直方图匹配第一主成分,然后用全色图像(也就是pan图)替换协方差矩阵的第一主成分。最后利用PCA逆变换将融合的结果变换回去,得到最终的融合图像。也就是下图所表示的流程。优缺点分析
PCA 融合算法的优点在于它适用于多光谱图像的所有波段; 不足之处是在PCA 融合算法中只用高分辨率图像简单地替换低分辨率图像的第一主成分, 故会损失低分辨率图像第一主成分中的一些反映光谱特性的信息, 使得融合图像的光谱畸变严重。只按统计的思想, 不考虑图像各波段的特点是PCA融合算法的致命缺点。matlab代码
close all; clear; clc; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% mul = imread('PCA/low.jpg'); % mul=imresize(mul,[512,512]); pan = imread('PCA/high.jpg'); %显示原多光谱图 figure,imshow(mul);title('多光谱图像'); %预处理数据在0-1间 mul=double(mul)/255; pan=double(pan)/255; %求相关矩阵 [r ,c ,bands]=size(mul); pixels = r*c; % reshape每个纤维成一行 mul = reshape(mul, [pixels bands]); correlation = (mul'*mul)/pixels; %%%%%%%%%%%求特征向量与特征值%%%%%%%%%%%%%%%%%% [vector ,value]=eig(correlation); %求主分量 PC = mul*vector; % Y=AX(X中列为样本,若X行为样本,则Y =XA) PC = reshape(PC,[r,c,bands]); %根据第一主分量【直方图配准】pan后代替第一主分量 % PC(:,:,bands)/max(max(PC(:,:,bands)))就是使第一主成分的元素值在0-1之间 % 因为eig所求的特征值从小到大排,故PC第3通道的为第一主成分 [counts,X] = imhist(PC(:,:,bands)/max(max(PC(:,:,bands)))); % 直方图匹配 pan = histeq(pan,counts);%使pan图的直方图分布同第一主成分的直方图一致 PC(:,:,bands) = double(pan*max(max(PC(:,:,bands)))); %PCA逆变换重构融合图象 PC = reshape(PC,[pixels bands]); fusion = PC*vector'; fusion = reshape(fusion,[r,c,bands]); %显示融合图象 figure,imshow(fusion(:,:,1:3));title('PCA\_RGB');
相关文章推荐
- 基于PCA和SVM的高光谱遥感图像分类研究
- 基于深度卷积神经网络的高光谱遥感图像分类---PCA+2D-CNN(伪空谱特征)
- 基于tensorflow + Vgg16进行图像分类识别的实验
- 基于深度学习的图像匹配技术专题- [patch based matching6]-将匹配进行到底
- 对倾斜的图像进行修正——基于opencv 透视变换
- 基于统计特征优化的图像融合
- 基于小波变换的多聚焦图像融合算法——Python实现
- 基于小波变换到图像融合
- PCA理论与传统PCA图像融合
- 灰度图像的区域分割插值算法和针对彩色图像的基于Canny边缘检测的色彩融合算法
- 基于Opencv3.0对图像进行透视变换
- 遥感影像多光谱与全色IHS融合
- 利用小波融合对由聚焦失败导致的图像模糊进行修复
- Matlab使用PCA描绘多光谱图像
- 基于ENVI的图像融合
- 基于金字塔的图像融合
- 【图像融合】基于小波变换的图像融合
- 基于权因子的图像融合
- 基于tensorflow + Vgg16进行图像分类识别
- 基于像素清晰度的图像融合算法(Python实现)