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