【图像融合】基于小波变换和主成分分析实现高分辨率的多光谱图像和低分辨率的全色图像融合附matlab代码

1 简介

图像融合是一种重要的增强图像信息的技术方法,如何对同一目标的多源遥感图像数据进行有效的融合,最大限度地利用多源遥感数据中的有用信息,提高系统的正确识别、判断和决策能力,这是遥感数据融合研究的重要内容之一。图像融合技术的发展经历了3 个阶段:(1)简单的图像融合方法,如RGB假彩色合成、HIS彩色变换、PCA主分量变换法等; (2)随着塔式算子的提出,在融合领域也出现了一些较为复杂的模型;(3)用小波变换的多尺度分析替代塔式算法。传统的图像数据融合方法对中、高分辨率的遥感图像的数据融合一般都能取得比较理想的效果,但对于低分辨率的遥感图像数据融合效果并不明显。具有“数学显微镜”之称的小波变换同时在时域和频域具有分辨率,对高频分量采用逐渐精细的时域或空域步长,可以聚焦到分析对象的任意细节,对于剧烈变化的边缘,比常规的傅里叶变换具有更好的适应性。由于小波变换具有的特点,使它很快在图像处理中得到广泛的应用。与传统的数据融合方法相比,小波融合方法不仅能够针对输入图像的不同特征来合理选择小波基以及小波变换的次数,而且在融合操作时又可以根据实际需要来引入双方的细节信息。从而表现出更强的针对性和实用性,融合效果更好。另外,从实施过程的灵活性方面评价,HIS彩色变换只能而且必须同时对三个波段进行融合操作,PCA主分量变换法的输入图像必须有三个或三个以上,而小波方法则能够完成对单一波段或多个波段的融合运算,对于单个黑白图像的融合,小波方法更是唯一的选择。本文提出了一种基于小波变换的融合方法,使得融合图像在最大限度保留多波段光谱信息的同时,提高了清晰度和空间分辨率。并在MATLAB环境下对该方法进行了实例分析,从图像清晰度、信息墒、信噪比等几个方面对结果做了深入的分析与对比,发现融合后的图像均值和方差基本保持不变,图像信噪比为20db左右,说明融合后的图像基本保持了原始图像的光谱特性,而信息熵和清晰度有明显的提高。因此基于小波变换的Mallat多分辨率分析可有效地用于低分辨率多光谱遥感图像的数据融合,融合后的图像在信息含量、细节、目标解析水平等方面明显优于原图像。​

2 部分代码

function [R, G, B] = Lab2RGB(L, a, b)%LAB2RGB Convert an image from CIELAB to RGB%% function [R, G, B] = Lab2RGB(L, a, b)% function [R, G, B] = Lab2RGB(I)% function I = Lab2RGB(...)%% Lab2RGB takes L, a, and b double matrices, or an M x N x 3 double% image, and returns an image in the RGB color space.  Values for L are in% the range [0,100] while a* and b* are roughly in the range [-110,110].% If 3 outputs are specified, the values will be returned as doubles in the% range [0,1], otherwise the values will be uint8s in the range [0,255].%% This transform is based on ITU-R Recommendation BT.709 using the D65% white point reference. The error in transforming RGB -> Lab -> RGB is% approximately 10^-5.  %% See also RGB2LAB. % By Mark Ruzon from C code by Yossi Rubner, 23 September 1997.% Updated for MATLAB 5 28 January 1998.% Fixed a bug in conversion back to uint8 9 September 1999.% Updated for MATLAB 7 30 March 2009.if nargin == 1  b = L(:,:,3);  a = L(:,:,2);  L = L(:,:,1);end% ThresholdsT1 = 0.008856;T2 = 0.206893;[M, N] = size(L);s = M * N;L = reshape(L, 1, s);a = reshape(a, 1, s);b = reshape(b, 1, s);% Compute YfY = ((L + 16) / 116) .^ 3;YT = fY > T1;fY = (~YT) .* (L / 903.3) + YT .* fY;Y = fY;% Alter fY slightly for further calculationsfY = YT .* (fY .^ (1/3)) + (~YT) .* (7.787 .* fY + 16/116);% Compute XfX = a / 500 + fY;XT = fX > T2;X = (XT .* (fX .^ 3) + (~XT) .* ((fX - 16/116) / 7.787));% Compute ZfZ = fY - b / 200;ZT = fZ > T2;Z = (ZT .* (fZ .^ 3) + (~ZT) .* ((fZ - 16/116) / 7.787));% Normalize for D65 white pointX = X * 0.950456;Z = Z * 1.088754;% XYZ to RGBMAT = [ 3.240479 -1.537150 -0.498535;       -0.969256  1.875992  0.041556;        0.055648 -0.204043  1.057311];RGB = max(min(MAT * [X; Y; Z], 1), 0);R = reshape(RGB(1,:), M, N);G = reshape(RGB(2,:), M, N);B = reshape(RGB(3,:), M, N); if nargout < 2  R = uint8(round(cat(3,R,G,B) * 255));end

3 仿真结果

4 参考文献

[1]周国庆. 基于视觉显著性的图像目标检测设计与实现[D]. 西安电子科技大学.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值