# visualiser une image 3d
3dview lettre_a.pgm &





# Scanner angiographique de la carotide
# But: extraire des lignes "medianes" dans les differentes ramifications
# 1ere tentative pour extraire la carotide: seuil (a 94).
# remarquer les problemes dus aux calcifications.
3dview carotide.pgm &


# extraire les calcifications
# determiner le seuil avec 3dview
seuil carotide.pgm 105 _1
dilatball _1 2 _2
3dview carotide.pgm _2 &

sub carotide.pgm _2 _3

# extraire la carotide
# determiner le seuil et le marqueur avec 3dview
seuil _3 94 _4
selectcomp _4 26 58 46 0 _5
3dview carotide.pgm _5 &

mv _5 carotide_seg.pgm
rm _*



# operateur skeleton
xv axonepair.pgm &

genimage axonepair.pgm 0 _0
skeleton axonepair.pgm _0 8 _1
showsurimp axonepair.pgm _1 &

rm _*

# distances
distc axonepair.pgm 4 _0
randrgb _0 _1
xv _1&

distc axonepair.pgm 8 _2
randrgb _2 _3
xv _3&

distc axonepair.pgm 0 _4
randrgb _4 _5
xv _5&

rm _*

# squelette guide par une carte de distance
skeleton axonepair.pgm 4 8 _1
showsurimp axonepair.pgm _1&

skeleton axonepair.pgm 8 8 _2
showsurimp axonepair.pgm _2&

skeleton axonepair.pgm 0 8 _3
showsurimp axonepair.pgm _3&

rm _*

# squelette avec points d'ancrage
genimage axonepair.pgm 0 _0
point _0 85 93 0 255 _0
point _0 201 199 0 255 _0
skeleton axonepair.pgm 0 8 _0 _1
showsurimp axonepair.pgm _1 &

rm _*

# squelette curviligne
skelcurv axonepair.pgm 4 4 _1
showsurimp axonepair.pgm _1 &

skelcurv axonepair.pgm 8 8 _2
showsurimp axonepair.pgm _2 &

skelcurv axonepair.pgm 0 4 _3
showsurimp axonepair.pgm _3 &

skelcurv axonepair.pgm 0 8 _4
showsurimp axonepair.pgm _4 &

rm _*

# squelette curviligne 3D
skelcurv lettre_a.pgm 6 6 _1
mcube lettre_a.pgm 0 0 0 vtk lettre_a.vtk
inverse _1 _1
mcube _1 0 0 0 vtk _1.vtk
render2 lettre_a.vtk _1.vtk &

skelcurv lettre_a.pgm 26 26 _2
mcube _2 0 0 0 vtk _2.vtk
render2 lettre_a.vtk _2.vtk &

rm _*



# squelette curviligne de la carotide
skelcurv carotide_seg.pgm 0 26 _1
mcube _1 0 0 0 vtk _.vtk
render _.vtk &

# on voit qu'il y a une cavite et un cycle dans le squelette.
closeball carotide_seg.pgm 1 _2
skelcurv _2 0 26 _3
mcube _3 0 0 0 vtk _.vtk
render _.vtk &

# il faut retirer le cadre pour les pb. de bords
cadre _2 _
sub _2 _ _4
skelcurv _4 0 26 _5
mcube _5 0 0 0 vtk _.vtk
render _.vtk &

mcube carotide_seg.pgm 0 0 0 vtk carotide_seg.vtk
render2 carotide_seg.vtk _.vtk &

rm _*



# image IRM de cerveau - on veut segmenter la matiere blanche (homotope a une boule)
# et extraire les surfaces medianes des gyri
3dview cerveau.pgm &

# definir une region d'interet et visualiser l'histogramme ROI
# en deduire une valeur de seuil pour avoir toute la matiere blanche (95)
seuil cerveau.pgm 95 _1
# squelette ultime, juste pour tester la topologie
skeleton _1 0 6 _2
3dview cerveau.pgm _2&

# croissance homotopique a partir d'un point
genimage cerveau.pgm 0 _3
point _3 85 80 5 255 _3
inverse _3 _3
inverse cerveau.pgm _4
inverse _1 _5
skeleton _3 _4 26 _5 _6
inverse _6 _6
3dview cerveau.pgm _6 &

mcube _6 0 1 0 vtk 6 _.vtk
decimate _.vtk 0.9 _.vtk
render _.vtk &

# ouverture controlee par la topologie
openball _6 1 _7
skeleton _6 6 6 _7 _8
mcube _8 0 1 0 vtk 6 _8.vtk
decimate _8.vtk 0.9 _8.vtk
render _8.vtk &

# squelette surfacique
skelsurf _8 0 6 _9
mcube _9 0 1 0 vtk 6 _.vtk
decimate _.vtk 0.9 _.vtk
render _.vtk &

render2 _8.vtk _.vtk &

rm _*



# scanner angiographique du foie
# le but est d'extraire l'arborescence arterielle (parties claires)
# essayer d'abord un simple seuil
3dview foie.pgm &

seuil foie.pgm 150 _1
# squelettiser pour tester la topologie
skeleton _1 0 26 _2
mcube _2 0 0 0 vtk _.vtk
render _.vtk &

# croissance homotopique
genimage foie.pgm 0 _4
point _4 171 126 42 255 _4
inverse _4 _4
inverse foie.pgm _5
inverse _1 _6
skeleton _4 _5 6 _6 _7
inverse _7 _7
mcube _7 0 1 0 vtk _.vtk
render _.vtk &

# amincissement homotopique
cadre foie.pgm _4
inverse _4 _4
skeleton _4 foie.pgm 26 _1 _8
mcube _8 0 0 0 vtk _.vtk
render _.vtk &

skelcurv _8 0 26 _9
mcube _9 0 0 0 vtk _.vtk
render _.vtk &

# comparer en detail les deux approches
3dview foie.pgm _7&

3dview foie.pgm _8&

rm _*