PANDORE Version 6 GREYC-IMAGE

pgradneumann



Calcul du gradient d'une image par différences finies décentrées à droite avec conditions aux bords de Neumann.



Synopsis

pgradneumann [-m mask] [im_in|-] [im_out1|-] [im_out2|-]

Description

L'opérateur pgradneumann calcule la dérivée première de l'image d'entrée im_in. Le résultat est deux images de gris, où im_out1 est la dérivée le long de l'axe x et im_out2 est la dérivée le long de l'axe y:

 im_out1(i,j) = im_in(i+1,j)-im_in(i,j),
 im_out2(i,j) = im_in(i,j+1)-im_in(i,j), avec im_out1(n-1) = 0 et im_out2(n-1) = 0.

Entrées

Sorties

Résultat

Retourne SUCCESS ou FAILURE.

Exemples

Implémente le calcul du gradient et de la divergence avec les condition aux bords de Neumann, telle que façon que l'une est l'adjoint de l'autre, i.e. <grad x,u> = <-div u,x>. Le script vérifie l'identité de deux images.

protation 0 180 tangram.pan tangram1.pan
pgradneumann tangram.pan gim1_y.pan gim1_x.pan
pgradneumann tangram1.pan gim2_y.pan gim2_x.pan

# Compute < grad im1, grad im2>. 
pmult gim1_y.pan gim2_y.pan | psumvalue - s1.pan
sumvaly=`pstatus`
pmult gim1_x.pan gim2_x.pan | psumvalue - s2.pan
sumvalx=`pstatus`

innerproduct1=`echo "$sumvaly+$sumvalx" | bc -l`

# Compute <-div grad im1,im2>.
pdivneumann gim1_y.pan gim1_x.pan | pmultcst -1 - divim1.pan
pim2sf tangram1.pan t.pan
pmult divim1.pan t.pan | psumvalue - /dev/null
innerproduct2=`pstatus`

echo $innerproduct1
echo $innerproduct2

Voir aussi

Edge detection, pdivneumann

Prototype C++

Errc Errc PGradNeumann( const Img2d<U> &im_in, Img2d<U> &im_out1, Img2d<U> &im_out2 );

Auteur: Jalal Fadili