function lamb=estima_lambda(Imobservada,B,lambdas,M,F,Nbloques); Dada una imagen observada que ha pasado por un proceso de degradación representado por K y a la que se ha añadido ruido, se intenta regularizar usando el operador de penalización F y parámetros de regularización lambdas. N es el tamaño del bloque y M es el tamaño del bloque más un borde, esto se hace para que los efectos de borde no se vean en la solución. Se devuelve tambien la imagen con los bloques sin procesar para hacer el overlapping EJEMPLO N=16; M=44; Nlambdas=70; lambdas=logspace(-2,2,Nlambdas); operador=fft2(filt2dsegder,M,M); figure,lamb=estima_lambda(BlurredNoisy,PSF,lambdas,M,operador,Nbloques);
0001 % function lamb=estima_lambda(Imobservada,B,lambdas,M,F,Nbloques); 0002 % 0003 % Dada una imagen observada que ha pasado por un proceso de degradación representado 0004 % por K y a la que se ha añadido ruido, se intenta regularizar usando el operador 0005 % de penalización F y parámetros de regularización lambdas. N es el tamaño del bloque 0006 % y M es el tamaño del bloque más un borde, esto se hace para que los efectos de borde 0007 % no se vean en la solución. 0008 % Se devuelve tambien la imagen con los bloques sin procesar para hacer el overlapping 0009 % 0010 % 0011 % EJEMPLO 0012 % 0013 % N=16; 0014 % M=44; 0015 % 0016 % Nlambdas=70; 0017 % 0018 % lambdas=logspace(-2,2,Nlambdas); 0019 % 0020 % 0021 % operador=fft2(filt2dsegder,M,M); 0022 % 0023 % figure,lamb=estima_lambda(BlurredNoisy,PSF,lambdas,M,operador,Nbloques); 0024 % 0025 0026 0027 function lamb=estima_lambda(Imobservada,B,lambdas,M,N,F,Nbloques); 0028 0029 [fil,col]=size(Imobservada); 0030 0031 0032 a=(M-N)/2; 0033 0034 Im2=ampliaconborde(Imobservada,a); 0035 0036 0037 filas = round(N/2 + rand(Nbloques,1)*(fil-N)); 0038 columnas = round(N/2 + rand(Nbloques,1)*(col-N)); 0039 0040 filas,columnas 0041 0042 lamb = 0; 0043 0044 0045 for i=1:Nbloques 0046 0047 0048 observado=Im2(filas(i)+a-M/2+1:filas(i)+a+M/2,columnas(i)+a-M/2+1:columnas(i)+a+M/2); 0049 0050 % bloqueor=Im3(i+a-M/2+1:i+a+M/2,j+a-M/2+1:j+a+M/2); 0051 0052 0053 0054 [sol,lambda]=restaura_bloque(observado,B,F,M,N,lambdas,2); 0055 0056 lamb = lamb + lambda; 0057 0058 end 0059 0060 lamb = lamb / Nbloques; 0061 0062 0063 0064