{ NIH Image macros by Tim WesVersion 1.3 19.Feb.2001 Mac Compatible FRAMES TO single IMAGES } macro 'delete Slice [D]'; begin CheckForStack; DeleteSlice end; macro 'save slices as separate images [S]'; var tempname, directory:string; images, tmp, frame, i:real; begin CheckForStack; images := GetNumber('# of slices', 1, 0); frame := GetNumber('# of first frame', 1, 0); directory :=GetString('Directory to save to:','Macintosh HD:tim:'); SetSaveAs('TIFF'); for i:=1 to images do begin SelectSlice(i); tmp := (frame + i - 1); tempname := concat(directory, 'frame', tmp, '.tif:'); { newtextwindow(tempname, 200, 200); } saveas(tempname); end; end; { PROJECT } macro '(-'; begin; end; macro 'autoProject [A]'; var filename,tempname, tmpstr:string; i, images, tmp, angle:integer; begin; filename :=GetString('Filename. Without the number at the end','Heuser Lab 2:Desktop Folder:160201tim:expt1:movie'); images := GetNumber('# of last image', 1, 0); angle := GetNumber('projection angle', 15, 0); for i:=0 to images do begin if i <= 9 then begin; tmp := 3; end else begin; tmp := 2 end; tmpstr := concat(i); delete(tmpstr, 1, tmp); tempname := concat(filename,tmpstr,':'); { newtextwindow(tempname, 200, 200); } open(tempname); SetSaveAs('TIFF'); SetSliceSpacing(2); SetProjection('total rotation', 0); SetProjection('rotation increment', 0); SetProjection('surface opacity', 0); SetProjection('surface depth-cueing', 100); SetProjection('interior depth-cueing', 0); SetProjection('minimize size', true); SetProjection('Y-axis'); SetProjection('brightest'); SetDensitySlice(0, 254); SetProjection('initial angle', 0); project; SelectPic(2); tempname := concat(filename,tmpstr,'_cyan:'); saveas(tempname); close; if (angle > 0) then begin; SetProjection('initial angle', angle); project; SelectPic(2); tempname := concat(filename,tmpstr,'_red:'); saveas(tempname); end; DisposeAll; end; end; { MOVIE MAKING } macro '(-'; begin; end; macroeLUT[i]:=0; end; end; macro '1D Projection'; begin SetSliceSpacing(1); SetProjection('initial angle', 0); SetProjection('total rotation', 0); SetProjection('rotation increment', 0); SetProjection('surface opacity', 0); SetProjection('surface depth-cueing', 100); SetProjection('interior depth-cueing', 0); SetProjection('minimize size', true); SetProjection('Y-axis'); SetProjection('brightest'); SetDensitySlice(0, 254); project; { SelectPic(2); SelectSlice(1); filter('smooth'); SelectSlice(2); filter('smooth'); } end; macro '2D Projections'; begin SetSliceSpacing(2); SetProjection('initial angle', 0); SetProjection('total rotation', 21); SetProjection('rotation increment', 20); SetProjection('surface opacity', 0); SetProjection('surface depth-cueing', 100); SetProjection('interior depth-cueing', 0); SetProjection('minimize size', true); SetProjection('Y-axis'); SetProjection('brightest'); SetDensitySlice(0, 254); project; { SelectPic(2); SelectSlice(1); filter('smooth'); SelectSlice(2); filter('smooth'); } end; macro '3D Projections'; begin SetSliceSpacing(2); SetProjection('initial angle', 350); SetProjection('total rotation', 21); SetProjection('rotation increment', 20); SetProjection('surface opacity', 0); SetProjection('surface depth-cueing', 100); SetProjection('interior depth-cueing', 0); SetProjection('minimize size', true); SetProjection('Y-axis'); SetProjection('brightest'); SetDensitySlice(0, 254); project; { SelectPic(2); SelectSlice(1); filter('smooth'); blue(); } { SelectSlice(2); filter('smooth'); red(); } end; { COLOURING } macro '(-'; begin; end; macro 'Cyan [C]'; var level,i:integer delta,steps,StepSize,NextStep:real; begin steps:=256; StepSize:=256/steps; delta:=256/(steps-1); NextStep:=trunc(StepSize); level:=255; for i:=0 to 255 do begin if i>=NextStep then begin NextStep:=trunc(NextStep+StepSize); level:=level-delta; UpdateLUT; end; if level<0 then level:=0; RedLUT[i]:=0; GreenLUT[i]:=level; BlueLUT[i]:=level; end; end; macro 'Blue [B]'; var level,i:integer delta,steps,StepSize,NextStep:real; begin steps:=256; StepSize:=256/steps; delta:=256/(steps-1); NextStep:=trunc(StepSize); level:=255; for i:=0 to 255 do begin if i>=NextStep then begin NextStep:=trunc(NextStep+StepSize); level:=level-delta; UpdateLUT; end; if level<0 then level:=0; RedLUT[i]:=0; GreenLUT[i]:=0; BlueLUT[i]:=level; end; end; macro 'Red [R]'; var level,i:integer delta,steps,StepSize,NextStep:real; begin steps:=256; StepSize:=256/steps; delta:=256/(steps-1); NextStep:=trunc(StepSize); level:=255; for i:=0 to 255 do begin if i>=NextStep then begin NextStep:=trunc(NextStep+StepSize); level:=level-delta; UpdateLUT; end; if level<0 then level:=0; RedLUT[i]:=level; GreenLUT[i]:=0; BlueLUT[i]:=0; end; end;