matlab中小波融合算法,基于小波变化的图像融合matlab融合

这篇博客展示了如何通过读取高分辨率和低分辨率图像,利用小波变换进行系数处理,然后通过加权平均和融合技术提升低分辨率图像质量。作者展示了'wavedec2'、'appcoef2'和'detcoef2'函数的运用,最终实现图像的增强并展示融合后的结果。
摘要由CSDN通过智能技术生成

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

b=imread('high.jpg');

%y3=imread('high.jpg');

figure(1)

imshow(b);

title('高分辨率图像1');

a=imread('low.jpg');

figure(2)

imshow(a);

title('低分辨率彩色图像2');

yiq1=rgb2ntsc(a);

a_y=yiq1(:,:,1);

ii=yiq1(:,:,2);

qq=yiq1(:,:,3);

[a_ch,a_sh]=wavedec2(a_y,1,'db1',1);

a_cal=appcoef2(a_ch,a_sh,'db1',1);

[a_h1,a_v1,a_d1]=detcoef2('all',a_ch,a_sh,1);

%b(:,:,1)=y3;

%b(:,:,2)=y3;

%b(:,:,3)=y3;

%y3_3=b;

%[y3_3,i,q]=rgb2ntsc(y3_3);

%[b_ch,b_sh]=wavedec2(y3_3,1,'db1',1);

[b_ch,b_sh]=wavedec2(b,1,'db1');

b_cal=appcoef2(b_ch,b_sh,'db1',1);

[b_h1,b_v1,b_d1]=detcoef2('all',b_ch,b_sh,1);

cal=a_cal.*0.5+b_cal.*0.5;

h1=a_h1.*0.5+b_h1.*0.5;

v1=a_v1.*0.5+b_v1.*0.5;

d1=a_d1.*0.5+b_d1.*0.5;

sh=a_sh;

for j=1:128

for i=1:128

ch(i+(j-1)*128)=cal(i,j);

end;

end;

for j=1:128

for i=1:128

ch(128*128+i+(j-1)*128)=h1(i,j);

end;

end;

for j=1:128

for i=1:128

ch(128*128*2+i+(j-1)*128)=v1(i,j);

end;

end;

for j=1:128

for i=1:128

ch(128*128*3+i+(j-1)*128)=d1(i,j);

end;

end;

c_ab=waverec2(ch,sh,'db1');

%subplot(1,3,3);

hvs_c=ntsc2rgb(c_ab,ii,qq);

figure(3)

imshow(hvs_c);

title('融合后的图像');

这是底下的错误 到底怎么回事,求高手帮忙!

> In uint8.conv2 at 11

In wconv2 at 25

In dwt2 at 83

In wavedec2 at 52

In xiaobo2 at 26

??? Error using ==> vertcat

CAT arguments dimensions are not consistent.

Error in ==> wavedec2 at 54

s = [size(x);s];                % store size

Error in ==> xiaobo2 at 26

[b_ch,b_sh]=wavedec2(b,1,'db1');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值