Deletions are marked like this. | Additions are marked like this. |
Line 15: | Line 15: |
== tcl script == | |
Line 16: | Line 17: |
# tkmedit_surfposn_makeimages.tcl | |
Line 17: | Line 19: |
Sample source? |
set subject [GetSubjectName 0] #set subjectdir [GetSubjectDir 0] # FS bug -- this returns path to main volume, not SubjectDir |
Line 19: | Line 22: |
global env set subjectsdir $env(SUBJECTS_DIR) set subjectdir "${subjectsdir}/${subject}" set imagedir "$subjectdir/screencaps_surfpos" puts "Subject : $subject" puts "Subject Dir: $subjectdir" #---------------------------------- # Prep #---------------------------------- # 0 Main vertices # 1 Inflated vertices # 2 White vertices # 3 Pial vertices # 4 Orig vertices #------------------------------------- # Load T1.mgz to main volume -- already done by original command #------------------------------------- # Load surfaces: # #LoadMainSurface [0=main; 1=Aux] [filename] puts "Load main surfaces" LoadMainSurface 0 lh.white LoadPialSurface 0 lh.pial LoadOriginalSurface 0 lh.orig puts "Load aux surfaces" LoadMainSurface 1 rh.white LoadPialSurface 1 rh.pial LoadOriginalSurface 1 rh.orig puts "SetDisplayFlags" # SetDisplayFlag 2 1 SetDisplayFlag 4 1 SetDisplayFlag 5 1 SetDisplayFlag 6 1 SetDisplayFlag 22 1 #--------------------------- proc do_one_view {orient slicenum} { #--------------------------- global imagedir global subject switch -exact -- $orient { 0 { set viewname cor } 1 { set viewname axl } 2 { set viewname sag } } set slicestr [format "%03d" $slicenum] SetOrientation $orient SetSlice $slicenum puts "RedrawScreen" RedrawScreen RedrawAll RedrawScreen RedrawAll RedrawScreen RedrawAll RedrawScreen RedrawAll # Use braces to avoid tcl's utterly brain-dead catenation inadequacies... set imagepath "${imagedir}/${subject}_${viewname}_${slicestr}.tif" puts "SaveTIFF ${imagepath}" SaveTIFF $imagepath } #----------------------------- # coronal #----------------------------- foreach slicenum { 95 120 150 160 170 200 } { do_one_view 0 $slicenum } #----------------------------- # axial #----------------------------- foreach slicenum { 120 150 160 170 180 190 } { do_one_view 1 $slicenum } puts "QuitMedit" QuitMedit # exit(0) #============================================= |
|
Line 22: | Line 122: |
== bash shell script == | |
Line 23: | Line 124: |
{{{ #!/bin/bash # tkmedit_surfposn_mass_images_20070917.bash # mass images subjectsdir=/brain-RAID2C/freesurfer_gw/MMIL_Download/20070917/Subjects scriptdir=/brain-RAID2C/freesurfer_gw/MMIL_Download/20070917/scripts function onesubject() { sbjid=$1 echo "========================================" echo " "$sbjid echo "========================================" subjectdir=$subjectsdir"/FS_"$sbjid screencapdir=$subjectdir"/screencaps_surfpos" mkdir $screencapdir tkmedit "FS_"$sbjid T1.mgz -tcl $scriptdir"/tkmedit_surfposn_makeimages.tcl" } onesubject 10419 onesubject 12009 onesubject 12378 [... etc ...] }}} |
Introduction
Sample scripts demonstrating how to produce screen-cap images from tkmedit and tksurfer.
The basic ideas:
1. A tcl script run from within tkmedit (or tksurfer) instructing it to load particular files, set up a particular view, and save images.
2. A shell script to launch tkmedit (or tksurfer) and tell it to run the tcl script.
3. Optional: some mechanism to view the saved image files en masse, convert them to gif or jpg and possibly generate html pages to allow users to access them in an organized and annotated manner.
tkmedit example
tcl script
# tkmedit_surfposn_makeimages.tcl set subject [GetSubjectName 0] #set subjectdir [GetSubjectDir 0] # FS bug -- this returns path to main volume, not SubjectDir global env set subjectsdir $env(SUBJECTS_DIR) set subjectdir "${subjectsdir}/${subject}" set imagedir "$subjectdir/screencaps_surfpos" puts "Subject : $subject" puts "Subject Dir: $subjectdir" #---------------------------------- # Prep #---------------------------------- # 0 Main vertices # 1 Inflated vertices # 2 White vertices # 3 Pial vertices # 4 Orig vertices #------------------------------------- # Load T1.mgz to main volume -- already done by original command #------------------------------------- # Load surfaces: # #LoadMainSurface [0=main; 1=Aux] [filename] puts "Load main surfaces" LoadMainSurface 0 lh.white LoadPialSurface 0 lh.pial LoadOriginalSurface 0 lh.orig puts "Load aux surfaces" LoadMainSurface 1 rh.white LoadPialSurface 1 rh.pial LoadOriginalSurface 1 rh.orig puts "SetDisplayFlags" # SetDisplayFlag 2 1 SetDisplayFlag 4 1 SetDisplayFlag 5 1 SetDisplayFlag 6 1 SetDisplayFlag 22 1 #--------------------------- proc do_one_view {orient slicenum} { #--------------------------- global imagedir global subject switch -exact -- $orient { 0 { set viewname cor } 1 { set viewname axl } 2 { set viewname sag } } set slicestr [format "%03d" $slicenum] SetOrientation $orient SetSlice $slicenum puts "RedrawScreen" RedrawScreen RedrawAll RedrawScreen RedrawAll RedrawScreen RedrawAll RedrawScreen RedrawAll # Use braces to avoid tcl's utterly brain-dead catenation inadequacies... set imagepath "${imagedir}/${subject}_${viewname}_${slicestr}.tif" puts "SaveTIFF ${imagepath}" SaveTIFF $imagepath } #----------------------------- # coronal #----------------------------- foreach slicenum { 95 120 150 160 170 200 } { do_one_view 0 $slicenum } #----------------------------- # axial #----------------------------- foreach slicenum { 120 150 160 170 180 190 } { do_one_view 1 $slicenum } puts "QuitMedit" QuitMedit # exit(0) #=============================================
bash shell script
# tkmedit_surfposn_mass_images_20070917.bash # mass images subjectsdir=/brain-RAID2C/freesurfer_gw/MMIL_Download/20070917/Subjects scriptdir=/brain-RAID2C/freesurfer_gw/MMIL_Download/20070917/scripts function onesubject() { sbjid=$1 echo "========================================" echo " "$sbjid echo "========================================" subjectdir=$subjectsdir"/FS_"$sbjid screencapdir=$subjectdir"/screencaps_surfpos" mkdir $screencapdir tkmedit "FS_"$sbjid T1.mgz -tcl $scriptdir"/tkmedit_surfposn_makeimages.tcl" } onesubject 10419 onesubject 12009 onesubject 12378 [... etc ...]