Anaglyph for Red Cyan glasses
short URLFrom Fiji
Purpose
This is an example JRuby script, which is described in the page on JRuby Scripting.
Code
# The excessive comments are because this is supposed to be a helpful
# example :)
# This is the total angle between the two views that the 3D image is
# constructed from. You probably want to tweak this to get the angle
# right for your presentation (e.g. depending on how large the screen
# is, and how far away people will be...)
degree_separation = 4
# Find the current image:
i = getImage
# Some preliminary checks:
if i.getStackSize == 1
ij.IJ.error "This script only works on image stacks"
return
end
unless i.getBitDepth == 8
ij.IJ.error "This script only works on 8 bit image stacks"
return
end
# Use the "3D Project..." (ij.plugin.filter.Projector) plugin to
# generate an image stack with two slices, each containing a view of
# the stack from a slightly different angle:
projection_options = "projection=[Brightest Point] axis=Y-Axis "
projection_options += "initial=-#{degree_separation / 2} "
projection_options += "total=#{degree_separation} "
projection_options += "rotation=#{degree_separation} "
projection_options += "interpolate"
run "3D Project...", projection_options
# Operate on the generated window:
# (It's an inelegance typical of writing macros such as these that one
# has to discover the particular method the algorithm used to generate
# the name of the new ImagePlus.)
projections_title = "Projections of " + i.getShortTitle
select_window projections_title
# Split the stack into separate images, so we can merge them as
# different colours:
run "Stack to Images"
# The images generated by that have predicatable names (see the
# similar note above). Use "RGB Merge..." to merge them:
merge_options = "red=Projections-0001 "
merge_options += "green=Projections-0002 "
merge_options += "blue=Projections-0002 "
merge_options += "gray=*None*"
run "RGB Merge...", merge_options