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

简介: 【图像融合】基于小波变换和主成分分析实现高分辨率的多光谱图像和低分辨率的全色图像融合附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代码问题可私信交流。

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


相关文章
|
23天前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
|
23天前
|
canal 算法 vr&ar
【图像处理】基于电磁学优化算法的多阈值分割算法研究(Matlab代码实现)
【图像处理】基于电磁学优化算法的多阈值分割算法研究(Matlab代码实现)
|
23天前
|
机器学习/深度学习 存储 算法
【微电网调度】考虑需求响应的基于改进多目标灰狼算法的微电网优化调度研究(Matlab代码实现)
【微电网调度】考虑需求响应的基于改进多目标灰狼算法的微电网优化调度研究(Matlab代码实现)
|
28天前
|
存储 编解码 算法
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
|
28天前
|
机器学习/深度学习 传感器 算法
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
147 14
|
23天前
|
机器学习/深度学习 算法 安全
【图像处理】使用四树分割和直方图移动的可逆图像数据隐藏(Matlab代码实现)
【图像处理】使用四树分割和直方图移动的可逆图像数据隐藏(Matlab代码实现)
102 2
|
28天前
|
机器学习/深度学习 算法
【概率Copula分类器】实现d维阿基米德Copula相关的函数、HACs相关的函数研究(Matlab代码实现)
【概率Copula分类器】实现d维阿基米德Copula相关的函数、HACs相关的函数研究(Matlab代码实现)
|
28天前
|
机器学习/深度学习 传感器 算法
【裂纹检测】检测和标记图片中的裂缝(Matlab代码实现)
【裂纹检测】检测和标记图片中的裂缝(Matlab代码实现)
136 5
|
28天前
|
存储 算法 安全
【多目标工程应用】基于MOGWO的地铁隧道上方基坑工程优化设计研究(Matlab代码实现)
【多目标工程应用】基于MOGWO的地铁隧道上方基坑工程优化设计研究(Matlab代码实现)
|
28天前
|
传感器 机器学习/深度学习 编解码
【电缆】中压电缆局部放电的传输模型研究(Matlab代码实现)
【电缆】中压电缆局部放电的传输模型研究(Matlab代码实现)

热门文章

最新文章