基于小波变换算法的可见光与红外图像融合matlab代码
时间: 2023-09-07 19:14:53 浏览: 167
小波变换-图像融合matlab代码
以下是基于小波变换算法的可见光与红外图像融合的MATLAB代码:
```matlab
% 读入可见光图像和红外图像
vis = imread('visible.jpg');
ir = imread('infrared.jpg');
% 将可见光图像和红外图像转换为双精度类型
vis = im2double(vis);
ir = im2double(ir);
% 将可见光图像和红外图像分别进行小波变换
[cA1, cH1, cV1, cD1] = dwt2(vis, 'haar');
[cA2, cH2, cV2, cD2] = dwt2(ir, 'haar');
% 对可见光图像和红外图像的低频系数进行加权平均
cA3 = (cA1 + cA2) / 2;
% 对可见光图像和红外图像的高频系数进行最大值融合
cH3 = max(cH1, cH2);
cV3 = max(cV1, cV2);
cD3 = max(cD1, cD2);
% 将融合后的小波系数进行反变换得到融合后的图像
fused = idwt2(cA3, cH3, cV3, cD3, 'haar');
% 显示融合后的图像
imshow(fused);
```
需要注意的是,此代码中使用的是Haar小波变换。如果需要使用其他小波变换,需要修改代码中的对应部分。同时,可见光图像和红外图像的大小需要相同。
阅读全文