0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 function [restaurada]=regu_modelo_ar12(Imobservada,b,lambdas,N,M,criterio_lambda,pinta);
0016
0017 [dummy,noiseest]=wiener2(Imobservada,[2 2]);
0018
0019
0020 [fil,col]=size(Imobservada);
0021
0022 restaurada = zeros(fil,col);
0023
0024 nver = fil/N;
0025 nhor = col/N;
0026
0027 objetoparaoverlapping = rand(nver*M,nhor*N);
0028
0029
0030 a=(M-N)/2;
0031
0032 Im2=ampliaconborde(Imobservada,a);
0033
0034 nlamb=length(lambdas);
0035
0036
0037
0038
0039
0040 B=freqz2(b,M,M);
0041
0042 B=ifftshift(B);
0043
0044
0045
0046
0047 contadorfilas=0;
0048
0049 valorlambda = 0;
0050
0051
0052 for i=N/2:N:fil
0053
0054 contadorfilas = contadorfilas+1;
0055 contadorcolumnas = 0;
0056
0057 for j=N/2:N:col
0058
0059 contadorcolumnas = contadorcolumnas + 1;
0060
0061
0062 observado=Im2(i+a-M/2+1:i+a+M/2,j+a-M/2+1:j+a+M/2);
0063
0064
0065 [PSD,operador,coef_ar] = ajusta_bloque_ar12(observado);
0066
0067
0068
0069 [sol]=restaura_bloque(observado,B,operador,M,N,lambdas,criterio_lambda);
0070
0071
0072 restaurada(i-N/2+1:i+N/2,j-N/2+1:j+N/2)=sol(a+1:a+N,a+1:a+N);
0073
0074 if (pinta==1)
0075 imshow(restaurada,[0 256],'notruesize'),pause(0.2);
0076 end
0077
0078
0079 objetoparaoverlapping((contadorfilas-1)*M+1:contadorfilas*M,(contadorcolumnas-1)*M+1:contadorcolumnas*M) = sol;
0080
0081
0082 end
0083 end
0084
0085 restaurada = do_overlap(objetoparaoverlapping,M,N,8);
0086
0087