idamnjanovic@8: function reconstructed=Pierre_reconstruct(y, Problem) idamnjanovic@24: %%% Pierre Villars Example - reconstruction function idamnjanovic@24: % idamnjanovic@24: % Centre for Digital Music, Queen Mary, University of London. idamnjanovic@24: % This file copyright 2009 Ivan Damnjanovic. idamnjanovic@24: % idamnjanovic@24: % This program is free software; you can redistribute it and/or idamnjanovic@24: % modify it under the terms of the GNU General Public License as idamnjanovic@24: % published by the Free Software Foundation; either version 2 of the idamnjanovic@24: % License, or (at your option) any later version. See the file idamnjanovic@24: % COPYING included with this distribution for more information. idamnjanovic@24: % idamnjanovic@8: % This example is based on the experiment suggested by Professor Pierre idamnjanovic@8: % Vandergheynst on the SMALL meeting in Villars. idamnjanovic@8: idamnjanovic@8: % using sparse representation y in dictionary Problem.A reconstruct the idamnjanovic@8: % patches from the target image idamnjanovic@8: idamnjanovic@8: imout=Problem.A*y; idamnjanovic@8: idamnjanovic@8: % combine the patches into reconstructed image idamnjanovic@8: idamnjanovic@8: im=col2im(imout,Problem.blocksize,size(Problem.imageTrg),'disctint'); idamnjanovic@8: idamnjanovic@8: % bound the pixel values to [0,255] range idamnjanovic@8: im(im<0)=0; idamnjanovic@8: im(im>255)=255; idamnjanovic@8: idamnjanovic@8: %% output structure image+psnr %% idamnjanovic@8: reconstructed.image=im; idamnjanovic@8: reconstructed.psnr = 20*log10(Problem.maxval * sqrt(numel(Problem.imageTrg(:))) / norm(Problem.imageTrg(:)-im(:))); idamnjanovic@8: end