Skip to content

Commit 9183609

Browse files
committed
added reports and laplacian
1 parent fbd8f5a commit 9183609

File tree

8 files changed

+125
-12
lines changed

8 files changed

+125
-12
lines changed

Documents/Documentation.pdf

238 KB
Binary file not shown.

Documents/Report 1.pdf

3.36 MB
Binary file not shown.

Documents/Report 2.pdf

1.07 MB
Binary file not shown.

Documents/TD3-entropy.txt

Lines changed: 0 additions & 12 deletions
This file was deleted.

Transformation/gaussianPyramid.m

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
2+
function [ decomposition_layers ] = gaussianPyramid( input_img, N )
3+
%gaussianPyramid Build the gaussianPyramid
4+
decomposition_layers=cell(1,N);
5+
decomposition_layers{1}=input_img; % first layer is the original image
6+
7+
for k = 1:N-1
8+
gauss_img = imgaussfilt3(decomposition_layers{k}, 3);
9+
aux = downsample(gauss_img,2);
10+
decomposition_layers{k+1}= downsample(aux',2)';
11+
end
12+
13+
end
14+
15+
16+
function [ output_img ] = gaussianFilter( input_img, sigma )
17+
%gaussianFilter Build a 2D Gaussian Filter
18+
if nargin==1, sigma=0.5; end
19+
x = -5:5; % sigma = 1, support = ?2:2 (N=5)
20+
h = exp(-(x.^2)/(2*sigma.^2)); % Gauss expression 1D
21+
h = h/sum(h); % Normalize; sum=1
22+
G = h' * h; % 2D mask
23+
24+
output_img = imfilter(input_img,G,'same'); % convolve image
25+
26+
end
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
function [ original_img ] = laplacianReconstruction( laplacian_layers, layers )
2+
%laplacianReconstruction
3+
layers
4+
img_upsampled =laplacian_layers{layers}
5+
for k = layers-1:-1:1
6+
k
7+
original_img = uint8(laplacian_layers{k}) + uint8(img_upsampled);
8+
img_upsampled = upsampling(original_img);
9+
img_upsampled = upsampling(img_upsampled')';
10+
end
11+
%original_img = original_img
12+
end
13+
14+
function [ output_img ] = upsampling( input_img )
15+
%gaussianPyramid Build the gaussianPyramid
16+
17+
output_img = zeros(size(input_img,1)*2,size(input_img,2));
18+
19+
j=1;
20+
for k = 1:1:size(input_img,1)
21+
output_img(j,:) = input_img(k,:);
22+
output_img(j+1,:) = input_img(k,:);
23+
j=j+2;
24+
end
25+
26+
end

Transformation/laplacian_script.m

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
img1 = imread('cameraman.tif');
2+
img2 = imread('lena_gray_512.tif');
3+
img3 = imread('mandril_gray.tif');
4+
5+
6+
figure(1);
7+
layers=5;
8+
gaussian_layers= gaussianPyramid(img2,layers);
9+
10+
for k = 1:layers
11+
subplot(1,layers,k),imshow(gaussian_layers{k});
12+
end
13+
14+
15+
layers=5;
16+
laplacian_layers= pyramidLaplacian(img2,layers);
17+
18+
figure(2);
19+
for k = 1:layers
20+
subplot(1,layers,k),imshow(laplacian_layers{k});
21+
end
22+
23+
figure(3);
24+
%synthesis
25+
original_img = laplacianReconstruction(laplacian_layers, layers);
26+
27+
imshow(original_img);

Transformation/pyramidLaplacian.m

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
function [ laplacian_layers ] = pyramidLaplacian( input_img, N )
2+
%pyramideLaplacian laplacian pyramid
3+
% N decomposition layers
4+
5+
laplacian_layers=cell(1,N);
6+
% Convolve the filtered image with the gaussian filter
7+
decomposition_layers = gaussianPyramid( input_img, N );
8+
9+
for k = 1:N-1
10+
11+
img_upsampled = upsampling(decomposition_layers{k+1});
12+
img_upsampled = upsampling(img_upsampled')';
13+
14+
% Construct N Laplacian descomposition layer
15+
laplacian_layers{k}= uint8(decomposition_layers{k}) - uint8(img_upsampled);
16+
end
17+
laplacian_layers{N} = imgaussfilt3(decomposition_layers{N-1}, 3);
18+
19+
end
20+
21+
function [ output_img ] = upsampling( input_img )
22+
%gaussianPyramid Build the gaussianPyramid
23+
24+
output_img = zeros(size(input_img,1)*2,size(input_img,2));
25+
26+
j=1;
27+
for k = 1:1:size(input_img,1)
28+
output_img(j,:) = input_img(k,:);
29+
output_img(j+1,:) = input_img(k,:);
30+
j=j+2;
31+
end
32+
33+
end
34+
35+
function [ output_img ] = gaussianFilter( input_img, sigma )
36+
%gaussianFilter Build a 2D Gaussian Filter
37+
if nargin==1, sigma=0.5; end
38+
x = -5:5; % sigma = 1, support = ?2:2 (N=5)
39+
h = exp(-(x.^2)/(2*sigma.^2)); % Gauss expression 1D
40+
h = h/sum(h); % Normalize; sum=1
41+
G = h' * h; % 2D mask
42+
43+
output_img = imfilter(input_img,G,'same'); % convolve image
44+
45+
end
46+

0 commit comments

Comments
 (0)