imaris

Imaris connection and data-exchange utilities.

io.imaris.connectToImaris(connImaris, mibGUI)

CONNECTTOIMARIS - Connect to Imaris from MATLAB.

Syntax:

function connImaris = connectToImaris(connImaris, mibGUI)

Input Arguments:
  • connImaris - (optional) a handle to an existing Imaris connection, or [] to create a fresh connection

  • mibGUI - (optional) handle to the main MIB window, used for progress and error dialogs

Output Arguments:
  • connImaris - a handle to the Imaris connection, or [] on failure

io.imaris.getImarisDataset(connImaris)

GETIMARISDATASET - Get a dataset opened in Imaris and corresponding meta-data.

Syntax:

function [img, img_info, viewPort, lutColors, connImaris] = getImarisDataset(connImaris)

Input Arguments:
  • connImaris - (optional) a handle to imaris connection

Output Arguments:
  • img - 4D dataset

  • img_info - containers.Map with meta data

  • viewPort - a structure with the viewPort parameters:

    • .min - a vector with minimal intensities for contrast adjustment

    • .max - a vector with maximal intensities for contrast adjustment

    • .gamma - a vector with gamma factor for contrast adjustment

  • lutColors - a matrix with LUT colors [1:colorChannel, R G B], (0-1)

  • connImaris - a handle to Imaris connection

Usage:

Example 1

[img, img_info] = io.imaris.getImarisDataset();

See also

io.imaris.getImarisDataset_StandardConnection

io.imaris.getImarisDataset_StandardConnection(vImarisApp)

GETIMARISDATASET_STANDARDCONNECTION - Get a dataset opened in Imaris and corresponding meta-data.

Syntax:

function [img, img_info, viewPort] = getImarisDataset_StandardConnection(vImarisApp)

Input Arguments:
  • vImarisApp - (optional) a handle to Imaris

Output Arguments:
  • img - 4D dataset

  • img_info - containers.Map with meta data

  • viewPort - a structure with the viewPort parameters:

    • .min - a vector with minimal intensities for contrast adjustment

    • .max - a vector with maximal intensities for contrast adjustment

    • .gamma - a vector with gamma factor for contrast adjustment

Usage:

Example 1

[img, img_info] = io.imaris.getImarisDataset_StandardConnection();
io.imaris.imaris_send_data_test

Works fine

io.imaris.mibSetImarisSpots(spots, connImaris, options)

MIBSETIMARISSPOTS - Send a spots from MIB to Imaris.

Syntax:
connImaris = io.imaris.mibSetImarisSpots(spots, connImaris)
connImaris = io.imaris.mibSetImarisSpots(spots, connImaris, options)
Input Arguments:
  • spots - [n×4] matrix of spot coordinates [x, y, z, t]

  • connImaris - (optional) handle to an existing Imaris connection

  • options - (optional) struct with additional settings:

    • .radii - (optional) [n×1] vector of spot radii; default: width/150

    • .color - (optional) [1×4] RGBA colour vector (0-1); default red [1, 0, 0, 1]

    • .name - (char) name of the spot object (default: 'mibSpots')

    • .dt - (optional) time step (default: 1)

Output Arguments:
  • connImaris - handle to the Imaris connection

Note

Uses IceImarisConnector bindings. Requires:

  1. Set system environment variable IMARISPATH to the Imaris installation directory, e.g. 'c:\tools\science\imaris'

  2. Restart MATLAB

Example - send spot coordinates to Imaris:

spots = [1, 1, 1, 1];   % single spot at [x=1, y=1, z=1, t=1]
obj.connImaris = io.imaris.mibSetImarisSpots(spots, obj.connImaris);
io.imaris.mibSetImarisSurface(surface, connImaris, options)

MIBSETIMARISSURFACE - Send a surface from MIB to Imaris.

Syntax:

function connImaris = mibSetImarisSurface(surface, connImaris, options)

Input Arguments:
  • surface - a structure with fields:

    • .vertices - coordinates of vertices [Nx3]

    • .faces - indices of vertices for each face/triangle

    • .normals - matrix with normals [Nx3]

  • connImaris - (optional) a handle to Imaris connection

  • options - (optional) structure with additional settings:

    • .color - (optional) [R G B A] vector (1x4, range 0..1)

    • .name - (char) name of the object

Output Arguments:
  • connImaris - a handle to Imaris connection

Usage:

Example 1

surface.vertices = [28 40 0; 29 40 0; 27 40 1; 28 40 1];
surface.faces = [1 3 4; 1 4 2];
options.color = [1 0 0];
connImaris = io.imaris.mibSetImarisSurface(surface, connImaris, options);
io.imaris.renderModelImaris(mibDataset, connImaris, options)

RENDERMODELIMARIS - Render model materials as surfaces in Imaris.

Syntax:
connImaris = io.imaris.renderModelImaris(mibDataset, connImaris)
connImaris = io.imaris.renderModelImaris(mibDataset, connImaris, options)
Input Arguments:
  • mibDataset - instance of core.MibDataset with the model to render

  • connImaris - (optional) handle to an existing Imaris connection

  • options - (optional) struct with additional settings:

    • .materialIndex - [integer] index of material to render; 0 = all materials (default: 0)

    • .mibGUI - (optional) handle to the main MIB UIFigure for modal dialogs

Output Arguments:
  • connImaris - handle to the Imaris connection

Note

Uses IceImarisConnector bindings. Requires:

  1. Set system environment variable IMARISPATH to the Imaris installation directory

  2. Restart MATLAB

Example - render all model materials as Imaris surfaces:

opts.mibGUI = obj.mibController.view.gui;
obj.connImaris = io.imaris.renderModelImaris(obj.mibModel.I{obj.mibModel.id}, obj.connImaris, opts);
io.imaris.setImarisDataset(mibDataset, connImaris, options)

SETIMARISDATASET - Send a dataset layer from MIB to Imaris.

Syntax:
connImaris = io.imaris.setImarisDataset(mibDataset, connImaris)
connImaris = io.imaris.setImarisDataset(mibDataset, connImaris, options)
Input Arguments:
  • mibDataset - instance of core.MibDataset with the dataset to export

  • connImaris - (optional) handle to an existing Imaris connection

  • options - (optional) struct with additional settings:

    • .type - (optional) type of dataset layer to send: 'image' (default), 'labels' (model), 'mask', 'selection'

    • .modelIndex - (optional) for 'labels': material index to send; NaN = all materials, integer = single material; ignored for 'mask' and 'selection'

    • .mode - (optional) '3D' or '4D' export mode; prompted if omitted and time > 1

    • .insertInto - (optional) cell with time-point index; -1 = replace the whole dataset

    • .lutColors - (optional) [nChannels×3] RGB colour matrix (0-1) for image channels

    • .maskColor - (optional) [1×3] RGB colour (0-1) for mask display in Imaris (default: [1 0 0])

    • .showWaitbar - [logical] show or hide the progress bar

    • .mibGUI - (optional) handle to the main MIB UIFigure for dialogs

Output Arguments:
  • connImaris - handle to the Imaris connection

Note

Uses IceImarisConnector bindings. Requires:

  1. Set system environment variable IMARISPATH to the Imaris installation directory

  2. Restart MATLAB

Example - send image data to Imaris:

imarisOpts.type = 'image';
imarisOpts.lutColors = obj.mibModel.I{id}.image.lutColors;
imarisOpts.mibGUI = obj.mibGUI;
obj.mibModel.connImaris = io.imaris.setImarisDataset(obj.mibModel.I{id}, obj.mibModel.connImaris, imarisOpts);
io.imaris.surfacesFromSegmentationImage(aImarisApplicationID)

SURFACESFROMSEGMENTATIONIMAGE - an old surface segmentation function written by Igor Beati from Bitplane.

Syntax:

function surfacesFromSegmentationImage(aImarisApplicationID)