天天看點

圖像做拉普拉斯變換Matlab,MATLAB 圖像拉普拉斯變換

A=imread('1.jpg');

B=imread('2.jpg');

C=imread('3.jpg');

D=imread('4.jpg');

F1=imread('5.jpg');

A_a = double(A)/255;

B_b = double(B)/255;

C_c= double(A)/255;

D_d = double(B)/255;

ori_A=A;

ori_B=B;

ori_C=C;

ori_D=D;

[p1,q1] = size(A);

[p2,q2] = size(B);

if(p1~=p2||q1~=q2)

error('The size of image A and image B must be the same......');

end

F1= fuse_lap(A_a,B_b,4,1,3);

M1=A_a;

M2=B_b;

zt=4;

ap=1;

mp=3;

%Y = fuse_lap(M1, M2, zt, ap, mp) image fusion with laplacian pyramid

%

% M1 - input image A

% M2 - input image B

% zt - maximum decomposition level

% ap - coefficient selection highpass (see selc.m)

% mp - coefficient selection base image (see selb.m)

%

% Y - fused image

% (Oliver Rockinger 16.08.99)

% check inputs

[z1 s1] = size(M1);

[z2 s2] = size(M2);

if (z1 ~= z2) | (s1 ~= s2)

error('Input images are not of same size');

end;

% define filter

w = [1 4 6 4 1] / 16;

% cells for selected images

E = cell(1,zt);

% loop over decomposition depth -> analysis

for i1 = 1:zt

% calculate and store actual image size

[z s] = size(M1);

zl(i1) = z; sl(i1) = s;

% check if image expansion necessary

if (floor(z/2) ~= z/2), ew(1) = 1; else, ew(1) = 0; end;

if (floor(s/2) ~= s/2), ew(2) = 1; else, ew(2) = 0; end;

% perform expansion if necessary

if (any(ew))

M1 = adb(M1,ew);

M2 = adb(M2,ew);

end;

% perform filtering

G1 = conv2(conv2(es2(M1,2), w, 'valid'),w', 'valid');

G2 = conv2(conv2(es2(M2,2), w, 'valid'),w', 'valid');

% decimate, undecimate and interpolate

M1T = conv2(conv2(es2(undec2(dec2(G1)), 2), 2*w, 'valid'),2*w', 'valid');

M2T = conv2(conv2(es2(undec2(dec2(G2)), 2), 2*w, 'valid'),2*w', 'valid');

% select coefficients and store them

E(i1) = {selc(M1-M1T, M2-M2T, ap)};

% decimate

M1 = dec2(G1);

M2 = dec2(G2);

end;

% select base coefficients of last decompostion stage

M1 = selb(M1,M2,mp);

% loop over decomposition depth -> synthesis

for i1 = zt:-1:1

% undecimate and interpolate

M1T = conv2(conv2(es2(undec2(M1), 2), 2*w, 'valid'), 2*w', 'valid');

% add coefficients

M1 = M1T + E{i1};

% select valid image region

M1 = M1(1:zl(i1),1:sl(i1));

end;

% copy image

Y = M1;