matlab使用小波变换进行图像融合

clc;
clear all;
X1=imread('cs1.jpg');
X1=double(X1)/256;     %这里转化成double类型,否则使用小波变换输出的会有大量大于1的存在,会导致图像显示有问题
% X1=rgb2gray(X1);  %原本以为小波变换只能使用一维的,看来可以使用3维
figure;
imshow(X1),title('左焦距');
axis square;
 X2=imread('cs2.jpg');
X2=double(X2)/256;
%  X2=rgb2gray(X2);
 figure;
 imshow(X2),title('右焦距');
 axis square;

[c1,s1]=wavedec2(X1,2,'sym4');  %将x1进行2维,使用‘sym4’进行变换

sizec1=size(c1);
for I=1:sizec1(2);
    c1(I)=1.2*c1(I); 将分解后的值都扩大1.2倍
end
[c2,s2]=wavedec2(X2,2,'sym4');
c=c1+c2;     %计算平均值
c=0.5*c;
s=s1+s2;
s=0.5*s;
xx=waverec2(c,s,'sym4');  %进行重构
figure;
imshow(xx),title('融合后的');   

axis square;


结论:这里没有对图像进行特别的处理所以效果不是太好,只是演示小波融合图像的方法。

【c,s】wavedec2(x, n,'name')函数的使用

C是分解的各个系数,这里分两层,C中存的是【ABBCCC】的数据是按行存的,s中是存的的是:【A的行数,A的列数;B的行数,B的列数;C的行数,C的列数;原图的行数,原图的列数】。L层就有3L+1个小图。


评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值