Home > PR > regu_modelo_ar4.m

regu_modelo_ar4

PURPOSE ^

function [rest]=regu_modelo_ar4(Imobservada,b,lambdas,N,M,criterio_lambda,pinta);

SYNOPSIS ^

function [restaurada]=regu_modelo_ar4(Imobservada,b,lambdas,N,M,criterio_lambda,pinta);

DESCRIPTION ^

 function [rest]=regu_modelo_ar4(Imobservada,b,lambdas,N,M,criterio_lambda,pinta);

   Dada una imagen observada que ha pasado por un proceso de degradación  representado
   por PSF y a la que se ha añadido ruido, se intenta regularizar 
   utilizando Wiener, a partir de una estimación del espectro 
   modelizando la señal mediante un modelo autorregresivo 
   
      
      EJEMPLO                                                                        
                                                                                     
      [Irest_AR4]=regu_modelo_ar4(BlurredNoisy,PSF,lambdas,N,M,criterio_lambda,pinta);

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 % function [rest]=regu_modelo_ar4(Imobservada,b,lambdas,N,M,criterio_lambda,pinta);
0002 %
0003 %   Dada una imagen observada que ha pasado por un proceso de degradación  representado
0004 %   por PSF y a la que se ha añadido ruido, se intenta regularizar
0005 %   utilizando Wiener, a partir de una estimación del espectro
0006 %   modelizando la señal mediante un modelo autorregresivo
0007 %
0008 %
0009 %      EJEMPLO
0010 %
0011 %      [Irest_AR4]=regu_modelo_ar4(BlurredNoisy,PSF,lambdas,N,M,criterio_lambda,pinta);
0012 %
0013 
0014 
0015 function [restaurada]=regu_modelo_ar4(Imobservada,b,lambdas,N,M,criterio_lambda,pinta);
0016 
0017 [dummy,noiseest]=wiener2(Imobservada,[3 3]);
0018 
0019 
0020 [fil,col]=size(Imobservada);
0021 
0022 
0023 nver = fil/N;
0024 nhor = col/N;
0025 
0026 objetoparaoverlapping = rand(nver*M,nhor*M);
0027 
0028 
0029 restaurada=rand([fil,col]); 
0030 
0031 a=(M-N)/2;
0032 
0033 Im2 = ampliaconborde(Imobservada,a);
0034 
0035 
0036 nlamb=length(lambdas);
0037 
0038 %lambdasoptimas=restaurada;
0039 
0040 
0041 
0042 % El operador de blurring en el dominio de Fourier
0043 
0044 B=freqz2(b,M,M);
0045 
0046 B=ifftshift(B);
0047 
0048 
0049 
0050 contadorfilas=0; 
0051 
0052 
0053 for i=N/2:N:fil
0054    %fprintf('\nFila %d : ',i)
0055    contadorfilas = contadorfilas+1;
0056    contadorcolumnas = 0;
0057 
0058    for j=N/2:N:col
0059       %fprintf('%d, ',j)
0060       contadorcolumnas = contadorcolumnas + 1;
0061  
0062    
0063       observado=Im2(i+a-M/2+1:i+a+M/2,j+a-M/2+1:j+a+M/2);
0064       
0065       % bloqueor=Im3(i+a-M/2+1:i+a+M/2,j+a-M/2+1:j+a+M/2);
0066            
0067       [PSD,operador,coef_ar] = ajusta_bloque_ar4(observado);
0068 
0069       % Una vez tenemos el operador restauramos el bloque
0070 
0071       [sol]=restaura_bloque(observado,B,operador,M,N,lambdas,criterio_lambda);
0072 
0073 
0074       restaurada(i-N/2+1:i+N/2,j-N/2+1:j+N/2)=sol(a+1:a+N,a+1:a+N);
0075       
0076       if (pinta==1)
0077          imshow(restaurada,[0 256],'notruesize'),pause(0.2);
0078       end
0079            
0080       %lambdasoptimas(i-N/2+1:i+N/2,j-N/2+1:j+N/2)=lcurva.corner;
0081 
0082       objetoparaoverlapping((contadorfilas-1)*M+1:contadorfilas*M,(contadorcolumnas-1)*M+1:contadorcolumnas*M) = sol;
0083       
0084 
0085    end
0086 end
0087 
0088 
0089 restaurada = do_overlap(objetoparaoverlapping,M,N,8);
0090 
0091

Generated on Wed 29-Nov-2006 16:19:19 by m2html © 2003