PANDORE Version 6 GREYC-IMAGE

pdivneumann



Calcul de la divergence par différences finies décentrées à gauche.



Synopsis

pdivneumann [-m mask] [im_in1|-] [im_in2|-] [im_out|-]

Description

L'opérateur pdivneumann calcule la divergence par différence finie décentrée à gauche. Le résultat est une image de niveaux de gris im_out, où:

 im_out(i,j) = (im_in1(i,j)-im_in1(i-1,j)) + (im_in2(i,j)-im2(i,j-1)),

avec les conditions de Neumann aux bords:

im_in1(1,j) et -im_in1(n-1,j)
im_in2(i,1) et -im_in2(i,n-1)

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
pdivneumann tangram.pan gim1_y.pan gim1_x.pan
pdivneumann 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 PDivNeumann( const Img2d<U> &im_in1, Img2d<U> &im_in2, Img2d<U> &im_out );

Auteur: Jalal Fadili