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

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

时间:2022-06-20 来源: 浏览:

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

天天Matlab 天天Matlab
天天Matlab

TT_Matlab

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。

收录于合集 #图像处理matlab源码 680个

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 % Thresholds T1 = 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 Y fY = ((L + 16) / 116) .^ 3; YT = fY > T1; fY = (~YT) .* (L / 903.3) + YT .* fY; Y = fY; % Alter fY slightly for further calculations fY = YT .* (fY .^ (1/3)) + (~YT) .* (7.787 .* fY + 16/116); % Compute X fX = a / 500 + fY; XT = fX > T2; X = (XT .* (fX .^ 3) + (~XT) .* ((fX - 16/116) / 7.787)); % Compute Z fZ = fY - b / 200; ZT = fZ > T2; Z = (ZT .* (fZ .^ 3) + (~ZT) .* ((fZ - 16/116) / 7.787)); % Normalize for D65 white point X = X * 0.950456; Z = Z * 1.088754; % XYZ to RGB MAT = [ 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代码问题可私信交流。

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

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐