Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function [Im] = assembly(Gauss, Details, coefs)
- l = length(Details);
- four = Gauss{l};
- for i = l:-1:1
- Im = four;
- s1 = size(Im);
- s2 = size(Details{i});
- if s1(1) < s2(1)
- Im(s1(1) + 1, :) = mean(Im(:))*ones(1, s1(2));
- s1 = size(Im);
- end
- if s1(2) < s2(2)
- Im(:, s1(2) + 1) = mean(Im(:))*ones(s1(1), 1);
- end
- Im = Im + Details{i}*coefs(i);
- s = size(Im);
- four = zeros(s*2);
- for i = 1:s(1)
- for j = 1:s(2)
- four((2*i - 1):(2*i), (2*j - 1):(2*j)) = Im(i, j)*ones(2);
- end
- end
- end
- end
- function [Gauss, Details] = gauss(Im, steps)
- small = Im;
- m = mean(Im(:));
- for step = 1:steps
- P = small;
- s = size(P);
- G = m*ones(s);
- D = m*ones(s);
- small = zeros(s/2);
- for i = 2:2:s(1)
- for j = 2:2:s(2)
- frame = P((i-1):i, (j-1):j);
- av = mean(frame(:));
- G((i-1):i, (j-1):j) = av*ones(2);
- D((i-1):i, (j-1):j) = frame - av*ones(2);
- small(i/2, j/2) = av;
- end
- end
- if rem(s(1), 2) == 1
- G(s(1), :) = min(G(:))*ones(1, s(2));
- D(s(1), :) = zeros(1, s(2));
- end
- if rem(s(2), 2) == 1
- G(:, s(2)) = min(G(:))*ones(s(1), 1);
- D(:, s(2)) = zeros(s(1), 1);
- end
- Gauss{step} = G - max(G(:));
- Details{step} = D - max(D(:));
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement