1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
im = double(im);
B= double(im);
[m n]= size(im);
for t=1:10
im=B;
for i=1:m-2
for j=1:n-2
nablaNW=abs(im(i,j)-im(i+1,j+1));
nablaN=abs(im(i,j+1)-im(i+1,j+1));
nablaNE=abs(im(i,j+2)-im(i+1,j+1));
nablaW=abs(im(i+1,j)-im(i+1,j+1));
nablaE=abs(im(i+1,j+2)-im(i+1,j+1));
nablaSW=abs(im(i+2,j)-im(i+1,j+1));
nablaS=abs(im(i+2,j+1)-im(i+1,j+1));
nablaSE=abs(im(i+2,j+2)-im(i+1,j+1));
A=[nablaN nablaS nablaW nablaE nablaNE nablaSE nablaSW nablaNW];
M=max(A);
lapl=4*im(i+1,j+1)-im(i+1,j+2)-im(i+1,j)-im(i,j+1)-im(i+2,j+1);
if (M ~= 0)
cN = max(exp(lapl),1+nablaN);
cS = max(exp(lapl),1+nablaS);
cW = max(exp(lapl),1+nablaW);
cE = max(exp(lapl),1+nablaE);
cNE =max(exp(lapl),1+nablaNE);
cSE =max(exp(lapl),1+nablaSE);
cSW =max(exp(lapl),1+nablaSW);
cNW =max(exp(lapl),1+nablaNW);
B(i+1,j+1)= B(i+1,j+1) + ...
(...
cN.*nablaN + cS.*nablaS + ...
cW.*nablaW + cE.*nablaE + ...
cNE.*nablaNE + cSE.*nablaSE + ...
cSW.*nablaSW + cNW.*nablaNW );
end;
end;
end;
end; |
Partager