我用matlab实现小波图像融合,但融合woman那张彩色图片的时候出错,请问要怎么改?

[复制链接]
查看11 | 回复1 | 2011-6-4 20:18:24 | 显示全部楼层 |阅读模式
clear
[imA,map1] = imread('medA.jpg');
M1 = double(imA) / 256;
[imB,map2] = imread('medB.jpg');
M2 = double(imB) / 256;
zt= 4;
wtype = 'db1'
%
M1 - input image A
%
M2 - input image B
%
wtype使用的小波类型
%
Y- fused image
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%%小波变换图像融合
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 小波变换的绝对值大的小波系数,对应着显著的亮度变化,也就是图像中的显著特征。所以,选择绝对值大
%% 的小波系数作为我们需要的小波系数。【注意,前面取的是绝对值大小,而不是实际数值大小】
%%
%% 低频部分系数采用二者求平均的方法
%%
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[c0,s0] = wavedec2(M1, zt, wtype);%多尺度二维小波分解
[c1,s1] = wavedec2(M2, zt, wtype);%多尺度二维小波分解
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%后面就可以进行取大进行处理。然后进行重构,得到一个图像
%%的小波系数,然后重构出总的图像效果。
%%取绝对值大的小波系数,作为融合后的小波系数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
KK = size(c1);
Coef_Fusion = zeros(1,KK(2));
Temp = zeros(1,2);
Coef_Fusion(1:s1(1,1)) = (c0(1:s1(1,1))+c1(1:s1(1,1)))/2;%低频系数的处理

%这儿,连高频系数一起处理了,但是后面处理高频系数的时候,会将结果覆盖,所以没有关系
%处理高频系数

MM1 = c0(s1(1,1)+1:KK(2));

MM2 = c1(s1(1,1)+1:KK(2));

mm = (abs(MM1)) > (abs(MM2));
        Y= (mm.*MM1) + ((~mm).*MM2);

Coef_Fusion(s1(1,1)+1:KK(2)) = Y;

%处理高频系数end

%重构
Y = waverec2(Coef_Fusion,s0,wtype);
Y=im2uint8(Y)
%显示图像
subplot(2,2,1);imshow(M1);
colormap(gray);
title('input2');
axis square

subplot(2,2,2);imshow(M2);
colormap(gray);
title('input2');
axis square
subplot(223);imshow(Y,[]);
colormap(gray);
title('融合图像');
axis square;
以上程序融合其他灰度图像没问题,但融合woman时出错,要怎么改,谢谢了

回复

使用道具 举报

千问 | 2011-6-4 20:18:24 | 显示全部楼层
我给你一个程序:load wbarbX1=X;map1=map;subplot(2,2,1);image(X1);colormap(map1);title('original image wbarb'); load woman;X2=X;map2=map;subplot(2,2,2);image(X2);colormap(map2);title('original image woman'); [c1,l1]=wavedec2(X1,2,'db3');[c2,l2]=wavedec2(X2,2,'db3');c=c1+c2;
%fusing the two decompositi...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行