comparison Problems/generateImageDenoiseProblem.m @ 44:2c59257d734c

(none)
author idamnjanovic
date Mon, 14 Mar 2011 15:42:42 +0000
parents 0211faef9add
children 55faa9b5d1ac
comparison
equal deleted inserted replaced
43:984c3c175be2 44:2c59257d734c
65 cd([pathstr1,FS,'data',FS,'images']); 65 cd([pathstr1,FS,'data',FS,'images']);
66 [filename,pathname] = uigetfile({'*.png;'},'Select an image'); 66 [filename,pathname] = uigetfile({'*.png;'},'Select an image');
67 [pathstr, name, ext, versn] = fileparts(filename); 67 [pathstr, name, ext, versn] = fileparts(filename);
68 data.name=name; 68 data.name=name;
69 im = imread(filename); 69 im = imread(filename);
70 im = double(im); 70 %im = double(im);
71 end; 71 end;
72 im = double(im);
72 cd(TMPpath); 73 cd(TMPpath);
73 74
74 %% check input parameters %% 75 %% check input parameters %%
75 76
76 if ~ exist( 'blocksize', 'var' ) || isempty(blocksize),blocksize = 8;end 77 if ~ exist( 'blocksize', 'var' ) || isempty(blocksize),blocksize = 8;end
91 92
92 %% set parameters %% 93 %% set parameters %%
93 94
94 x = imnoise; 95 x = imnoise;
95 p = ndims(x); 96 p = ndims(x);
96 97 psnr=20*log10(maxval * sqrt(numel(im)) / norm(im(:)-imnoise(:)));
97 if (p==2 && any(size(x)==1) && length(blocksize)==1) 98 if (p==2 && any(size(x)==1) && length(blocksize)==1)
98 p = 1; 99 p = 1;
99 end 100 end
100 101
101 % blocksize % 102 % blocksize %
132 for i = 1:bsize:size(X,2) 133 for i = 1:bsize:size(X,2)
133 blockids = i : min(i+bsize-1,size(X,2)); 134 blockids = i : min(i+bsize-1,size(X,2));
134 X(:,blockids) = remove_dc(X(:,blockids),'columns'); 135 X(:,blockids) = remove_dc(X(:,blockids),'columns');
135 end 136 end
136 137
138 % Noisy image blocks
139 xcol=im2col(x,blocksize,'sliding');
140 [b1, dc] = remove_dc(xcol,'columns');
141
137 %% output structure %% 142 %% output structure %%
138 143
139 data.Original = im; 144 data.Original = im;
140 data.Noisy = imnoise; 145 data.Noisy = imnoise;
146 data.noisy_psnr=psnr;
141 data.b = X; 147 data.b = X;
148 data.b1=b1;
149 data.b1dc=dc;
142 data.m = size(X,1); 150 data.m = size(X,1);
143 data.n = size(X,2); 151 data.n = size(X,2);
144 data.p = dictsize; 152 data.p = dictsize;
145 data.blocksize=blocksize; 153 data.blocksize=blocksize;
146 data.sigma = sigma; 154 data.sigma = sigma;