0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 function imagen = do_overlap(Im,M,N,ov)
0012
0013 a=(M-N)/2;
0014 v = [zeros(1,a-ov/2) linspace(0,1,ov) ones(1,M-2*(a-ov/2+ov)) linspace(1,0,ov) zeros(1,a-ov/2)];
0015 p = v'*v;
0016
0017
0018
0019 [nv nh]=size(Im);
0020
0021 nhor = nh/M;
0022 nver = nv/M;
0023
0024 imagen = zeros(nhor*N,nver*N);
0025
0026
0027
0028 for i=2:nver-1
0029 for j=2:nhor-1
0030 cf = 1;
0031 Algo = zeros(2*N+M);
0032 SumaPesos = zeros(2*N+M);
0033 for k=i-1:i+1
0034 cc = 1;
0035 for r=j-1:j+1
0036 B = Im( (k-1)*M+1:k*M, (r-1)*M+1:r*M);
0037 B = B.*p;
0038
0039
0040
0041 Algo(cf:cf+M-1,cc:cc+M-1) = Algo(cf:cf+M-1,cc:cc+M-1)+B;
0042 SumaPesos(cf:cf+M-1,cc:cc+M-1) = SumaPesos(cf:cf+M-1,cc:cc+M-1) +p;
0043 cc = cc+N;
0044 end
0045 cf = cf + N;
0046 end
0047
0048
0049 Algo(SumaPesos~=0) = Algo(SumaPesos~=0)./SumaPesos(SumaPesos~=0);
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064 Bloque = Algo(M/2+N/2+1:M/2+N/2+N,M/2+N/2+1:M/2+N/2+N);
0065
0066 imagen ((i-1)*N+1:i*N,(j-1)*N+1:j*N) = Bloque;
0067
0068
0069 end
0070 end
0071
0072
0073
0074
0075 i=1;
0076
0077 for j=2:nhor-1
0078 cf = 1;
0079 Algo = zeros(M+N,2*N+M);
0080 SumaPesos = zeros(M+N,2*N+M);
0081 for k=i:i+1
0082 cc = 1;
0083 for r=j-1:j+1
0084 B = Im( (k-1)*M+1:k*M, (r-1)*M+1:r*M);
0085 B = B.*p;
0086
0087 Algo(cf:cf+M-1,cc:cc+M-1) = Algo(cf:cf+M-1,cc:cc+M-1)+B;
0088 SumaPesos(cf:cf+M-1,cc:cc+M-1) = SumaPesos(cf:cf+M-1,cc:cc+M-1) +p;
0089 cc = cc+N;
0090 end
0091 cf = cf + N;
0092 end
0093
0094 Algo(SumaPesos~=0) = Algo(SumaPesos~=0)./SumaPesos(SumaPesos~=0);
0095
0096 Bloque = Algo(M/2-N/2+1:M/2-N/2+N,M/2+N/2+1:M/2+N/2+N);
0097
0098 imagen ((i-1)*N+1:i*N,(j-1)*N+1:j*N) = Bloque;
0099
0100 end
0101
0102
0103
0104
0105 i=nver;
0106
0107 for j=2:nhor-1
0108 cf = 1;
0109 Algo = zeros(M+N,2*N+M);
0110 SumaPesos = zeros(M+N,2*N+M);
0111 for k=i-1:i
0112 cc = 1;
0113 for r=j-1:j+1
0114 B = Im( (k-1)*M+1:k*M, (r-1)*M+1:r*M);
0115 B = B.*p;
0116
0117 Algo(cf:cf+M-1,cc:cc+M-1) = Algo(cf:cf+M-1,cc:cc+M-1)+B;
0118 SumaPesos(cf:cf+M-1,cc:cc+M-1) = SumaPesos(cf:cf+M-1,cc:cc+M-1) +p;
0119 cc = cc+N;
0120 end
0121 cf = cf + N;
0122 end
0123
0124 Algo(SumaPesos~=0) = Algo(SumaPesos~=0)./SumaPesos(SumaPesos~=0);
0125
0126 Bloque = Algo(M/2+N/2+1:M/2+N/2+N,M/2+N/2+1:M/2+N/2+N);
0127
0128 imagen ((i-1)*N+1:i*N,(j-1)*N+1:j*N) = Bloque;
0129
0130 end
0131
0132
0133
0134
0135
0136 j=1;
0137
0138 for i=2:nver-1
0139 cf = 1;
0140 Algo = zeros(2*N+M,M+N);
0141 SumaPesos = zeros(2*N+M,M+N);
0142 for k=i-1:i+1
0143 cc = 1;
0144 for r=j:j+1
0145 B = Im( (k-1)*M+1:k*M, (r-1)*M+1:r*M);
0146 B = B.*p;
0147
0148 Algo(cf:cf+M-1,cc:cc+M-1) = Algo(cf:cf+M-1,cc:cc+M-1)+B;
0149 SumaPesos(cf:cf+M-1,cc:cc+M-1) = SumaPesos(cf:cf+M-1,cc:cc+M-1) +p;
0150 cc = cc+N;
0151 end
0152 cf = cf + N;
0153 end
0154
0155 Algo(SumaPesos~=0) = Algo(SumaPesos~=0)./SumaPesos(SumaPesos~=0);
0156
0157 Bloque = Algo(M/2+N/2+1:M/2+N/2+N,M/2-N/2+1:M/2-N/2+N);
0158
0159 imagen ((i-1)*N+1:i*N,(j-1)*N+1:j*N) = Bloque;
0160
0161 end
0162
0163
0164
0165
0166 j=nhor;
0167
0168 for i=2:nver-1
0169 cf = 1;
0170 Algo = zeros(2*N+M,M+N);
0171 SumaPesos = zeros(2*N+M,M+N);
0172 for k=i-1:i+1
0173 cc = 1;
0174 for r=j-1:j
0175 B = Im( (k-1)*M+1:k*M, (r-1)*M+1:r*M);
0176 B = B.*p;
0177
0178 Algo(cf:cf+M-1,cc:cc+M-1) = Algo(cf:cf+M-1,cc:cc+M-1)+B;
0179 SumaPesos(cf:cf+M-1,cc:cc+M-1) = SumaPesos(cf:cf+M-1,cc:cc+M-1) +p;
0180 cc = cc+N;
0181 end
0182 cf = cf + N;
0183 end
0184
0185 Algo(SumaPesos~=0) = Algo(SumaPesos~=0)./SumaPesos(SumaPesos~=0);
0186
0187 Bloque = Algo(M/2+N/2+1:M/2+N/2+N,M/2+N/2+1:M/2+N/2+N);
0188
0189 imagen ((i-1)*N+1:i*N,(j-1)*N+1:j*N) = Bloque;
0190
0191 end
0192
0193
0194
0195
0196
0197 cf = 1;
0198 Algo = zeros(M+N,M+N);
0199 SumaPesos = zeros(M+N,M+N);
0200
0201 i=1;
0202 j=1;
0203
0204 for k=i:i+1
0205 cc = 1;
0206 for r=j:j+1
0207 B = Im( (k-1)*M+1:k*M, (r-1)*M+1:r*M);
0208 B = B.*p;
0209
0210 Algo(cf:cf+M-1,cc:cc+M-1) = Algo(cf:cf+M-1,cc:cc+M-1)+B;
0211 SumaPesos(cf:cf+M-1,cc:cc+M-1) = SumaPesos(cf:cf+M-1,cc:cc+M-1) +p;
0212 cc = cc+N;
0213 end
0214 cf = cf + N;
0215 end
0216
0217 Algo(SumaPesos~=0) = Algo(SumaPesos~=0)./SumaPesos(SumaPesos~=0);
0218
0219 Bloque = Algo(M/2-N/2+1:M/2-N/2+N,M/2-N/2+1:M/2-N/2+N);
0220
0221 imagen ((i-1)*N+1:i*N,(j-1)*N+1:j*N) = Bloque;
0222
0223
0224
0225
0226
0227 cf = 1;
0228 Algo = zeros(M+N,M+N);
0229 SumaPesos = zeros(M+N,M+N);
0230
0231 i=1;
0232 j=nhor;
0233
0234 for k=i:i+1
0235 cc = 1;
0236 for r=j-1:j
0237 B = Im( (k-1)*M+1:k*M, (r-1)*M+1:r*M);
0238 B = B.*p;
0239
0240 Algo(cf:cf+M-1,cc:cc+M-1) = Algo(cf:cf+M-1,cc:cc+M-1)+B;
0241 SumaPesos(cf:cf+M-1,cc:cc+M-1) = SumaPesos(cf:cf+M-1,cc:cc+M-1) +p;
0242 cc = cc+N;
0243 end
0244 cf = cf + N;
0245 end
0246
0247 Algo(SumaPesos~=0) = Algo(SumaPesos~=0)./SumaPesos(SumaPesos~=0);
0248
0249 Bloque = Algo(M/2-N/2+1:M/2-N/2+N,M/2+N/2+1:M/2+N/2+N);
0250
0251 imagen ((i-1)*N+1:i*N,(j-1)*N+1:j*N) = Bloque;
0252
0253
0254
0255
0256
0257 cf = 1;
0258 Algo = zeros(M+N,M+N);
0259 SumaPesos = zeros(M+N,M+N);
0260
0261 i=nver;
0262 j=1;
0263
0264 for k=i-1:i
0265 cc = 1;
0266 for r=j:j+1
0267 B = Im( (k-1)*M+1:k*M, (r-1)*M+1:r*M);
0268 B = B.*p;
0269
0270 Algo(cf:cf+M-1,cc:cc+M-1) = Algo(cf:cf+M-1,cc:cc+M-1)+B;
0271 SumaPesos(cf:cf+M-1,cc:cc+M-1) = SumaPesos(cf:cf+M-1,cc:cc+M-1) +p;
0272 cc = cc+N;
0273 end
0274 cf = cf + N;
0275 end
0276
0277 Algo(SumaPesos~=0) = Algo(SumaPesos~=0)./SumaPesos(SumaPesos~=0);
0278
0279 Bloque = Algo(M/2+N/2+1:M/2+N/2+N,M/2-N/2+1:M/2-N/2+N);
0280
0281 imagen ((i-1)*N+1:i*N,(j-1)*N+1:j*N) = Bloque;
0282
0283
0284
0285
0286
0287 cf = 1;
0288 Algo = zeros(M+N,M+N);
0289 SumaPesos = zeros(M+N,M+N);
0290
0291 i=nver;
0292 j=nhor;
0293
0294 for k=i-1:i
0295 cc = 1;
0296 for r=j-1:j
0297 B = Im( (k-1)*M+1:k*M, (r-1)*M+1:r*M);
0298 B = B.*p;
0299
0300 Algo(cf:cf+M-1,cc:cc+M-1) = Algo(cf:cf+M-1,cc:cc+M-1)+B;
0301 SumaPesos(cf:cf+M-1,cc:cc+M-1) = SumaPesos(cf:cf+M-1,cc:cc+M-1) +p;
0302 cc = cc+N;
0303 end
0304 cf = cf + N;
0305 end
0306
0307 Algo(SumaPesos~=0) = Algo(SumaPesos~=0)./SumaPesos(SumaPesos~=0);
0308
0309 Bloque = Algo(M/2+N/2+1:M/2+N/2+N,M/2+N/2+1:M/2+N/2+N);
0310
0311 imagen ((i-1)*N+1:i*N,(j-1)*N+1:j*N) = Bloque;
0312
0313
0314
0315
0316
0317
0318
0319
0320
0321
0322
0323
0324
0325
0326
0327
0328
0329
0330
0331
0332
0333
0334
0335