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 = image initiale
[m n]= taille(im)
kappa=1
delta_t =1/7
dx = 1
dy = 1
dd = sqrt(2)
pour i=1 à m-2
pour 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))
M=max(nablaN,nablaS,nablaW,nablaE,nablaNE,nablaSE,nablaSW,nablaNW)
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)
si (M <> 0) alors début
cN = kappa*exp(-nablaN/M)/max(exp(lapl),1+nablaN);
cS = kappa*exp(-nablaS/M)/max(exp(lapl),1+nablaS);
cW = kappa*exp(-nablaW/M)/max(exp(lapl),1+nablaW);
cE = kappa*exp(-nablaE/M)/max(exp(lapl),1+nablaE);
cNE = kappa*exp(-nablaNE/M)/max(exp(lapl),1+nablaNE);
cSE = kappa*exp(-nablaSE/M)/max(exp(lapl),1+nablaSE);
cSW = kappa*exp(-nablaSW/M)/max(exp(lapl),1+nablaSW);
cNW = kappa*exp(-nablaNW/M)/max(exp(lapl),1+nablaNW);
im(i+1,j+1) = im(i+1,j+1) + ...
delta_t*(...
(1/(dy^2))*cN.*nablaN + (1/(dy^2))*cS.*nablaS + ...
(1/(dx^2))*cW.*nablaW + (1/(dx^2))*cE.*nablaE + ...
(1/(dd^2))*cNE.*nablaNE + (1/(dd^2))*cSE.*nablaSE + ...
(1/(dd^2))*cSW.*nablaSW + (1/(dd^2))*cNW.*nablaNW )
Fsi
Fpour
Fpour |
Partager