def render_fmri(volume):
    data = np.zeros(mask.shape)
    data[mask] = volume
    data  *= blurred_data

    fmri_src = viz3d.affine_img_src(data, fmri_affine,
                                        name='fMRI')
    vol = mlab.pipeline.volume(fmri_src)

    # Change the opacity function
    from enthought.tvtk.util.ctf import PiecewiseFunction

    width = .1
    otf = PiecewiseFunction()
    otf.add_point(-FMRI_MAX, .2)
    otf.add_point(-width*FMRI_MAX, 0.)
    otf.add_point(width*FMRI_MAX, 0.)
    otf.add_point(FMRI_MAX, .2)
    vol._volume_property.set_scalar_opacity(otf)
    vol.update_ctf = True
    return fmri_src
mlab.options.offscreen = True

f = mlab.figure(512, bgcolor=(0, 0, 0), size=(1025/REDUCE, 769/REDUCE))
mlab.clf()
f.scene.disable_render = True

################################################################################
# Constants

mem = Memory(cachedir='cache', mmap_mode='r', debug=True)

################################################################################
# Volume rendering of the anat
anat_data, anat_affine, anat_vmax = anat_cache._AnatCache.get_anat()
anat_src = viz3d.affine_img_src(anat_data, anat_affine, name='Anat')

anat_blurred = ndimage.gaussian_filter(
                (ndimage.morphology.binary_fill_holes(
                    ndimage.gaussian_filter(
                            (anat_data > 4800).astype(np.float), 6)
                        > 0.5
                    )).astype(np.float),
                2)

# The cortex shell
vol = mlab.pipeline.volume(anat_src, color=(1, 1, 1))

# Change the opacity function
from enthought.tvtk.util.ctf import PiecewiseFunction