当前所在位置: 首页 > 计算机 > 正文

图像拼接算法及实现(第14页)

本文共计26845个字,预计阅读时长90分钟。【 字体:

论文指导服务

毕业论文网专业团队提供毕业设计、论文写作指导及相关咨询服务

论文指导 毕业设计 答辩咨询
微信号已复制到剪贴板

%    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;

 

% cells for selected images

E = cell(3,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;

 

  % define actual filters (inserting zeros between coefficients)

  h1 = [zeros(1,floor(2^(i1-2))), 0.5, zeros(1,floor(2^(i1-1)-1)), 0.5, zeros(1,max([floor(2^(i1-2)),1]))];

  g1 = [zeros(1,floor(2^(i1-2))), 0.5, zeros(1,floor(2^(i1-1)-1)), -0.5, zeros(1,max([floor(2^(i1-2)),1]))];

  fh = floor(length(h1)/2);

 

  % image A

  Z1 = conv2(es(M1, fh, 1), g1, 'valid');

  A1 = conv2(es(Z1, fh, 2), g1','valid');

  A2 = conv2(es(Z1, fh, 2), h1','valid');

  Z1 = conv2(es(M1, fh, 1), h1, 'valid');

  A3 = conv2(es(Z1, fh, 2), g1','valid');

  A4 = conv2(es(Z1, fh, 2), h1','valid');

  % image B

  Z1 = conv2(es(M2, fh, 1), g1, 'valid');

  B1 = conv2(es(Z1, fh, 2), g1','valid');

  B2 = conv2(es(Z1, fh, 2), h1','valid');

  Z1 = conv2(es(M2, fh, 1), h1, 'valid');

  B3 = conv2(es(Z1, fh, 2), g1','valid');

  B4 = conv2(es(Z1, fh, 2), h1','valid');

 

  % select coefficients and store them

  E(1,i1) = {selc(A1, B1, ap)};

      E(2,i1) = {selc(A2, B2, ap)};

      E(3,i1) = {selc(A3, B3, ap)};

 

      % copy input image for next decomposition stage

  M1 = A4; 

  M2 = B4;  

end;

 

% select base coefficients of last decompostion stage

A4 = selb(A4,B4,mp);

 

% loop over decomposition depth -> synthesis

for i1 = zt:-1:1

       % define actual filters (inserting zeros between coefficients)

  h2 = fliplr([zeros(1,floor(2^(i1-2))), 0.5, zeros(1,floor(2^(i1-1)-1)), 0.5, zeros(1,max([floor(2^(i1-2)),1]))]);

  g2 = fliplr([zeros(1,floor(2^(i1-2))), 0.5, zeros(1,floor(2^(i1-1)-1)), -0.5, zeros(1,max([floor(2^(i1-2)),1]))]);

  fh = floor(length(h2)/2);

 

  % filter (rows)

  A4 = conv2(es(A4, fh, 2), h2', 'valid');  

  A3 = conv2(es(E{3,i1}, fh, 2), g2', 'valid');

  A2 = conv2(es(E{2,i1}, fh, 2), h2', 'valid');

  A1 = conv2(es(E{1,i1}, fh, 2), g2', 'valid');

 

  % filter (columns) 

  A4 = conv2(es(A4+A3, fh, 1), h2, 'valid'); 

  A2 = conv2(es(A2+A1, fh, 1), g2, 'valid'); 

 

  % add images

  A4 = A4 + A2;

end;

阅读全文