0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
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
0039
0040
0041
0042
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
0055 contadorfilas = contadorfilas+1;
0056 contadorcolumnas = 0;
0057
0058 for j=N/2:N:col
0059
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
0066
0067 [PSD,operador,coef_ar] = ajusta_bloque_ar4(observado);
0068
0069
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
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