IImageProcessing Interface Reference

import "Imaris.idl";

Public Member Functions

HRESULT AnisotropicDiffusionFilterChannel ([in] IDataSet *aDataSet,[in] ULONG aChannelIndex,[in] FLOAT aSigma)
HRESULT AnisotropicDiffusionFilterDataSet ([in] IDataSet *aDataSetIn,[in] FLOAT aSigma,[out, retval] IDataSet **aDataSetOut)
HRESULT BaselineSubtractChannel ([in] IDataSet *aDataSet,[in] ULONG aChannelIndex,[in] FLOAT aBaseline)
HRESULT BaselineSubtractDataSet ([in] IDataSet *aDataSetIn,[in] FLOAT aBaseline,[out, retval] IDataSet **aDataSetOut)
HRESULT CalculateTracks ([in] VARIANT aPositionsXYZ,[in] VARIANT aIndicesT,[in] VARIANT aRadii,[in] ULONG aAlgorithm,[in] FLOAT aMaximalDistance,[out] VARIANT *aEdges,[out] VARIANT *aRanges)
HRESULT ContrastStretchChannel ([in] IDataSet *aDataSet,[in] ULONG aChannelIndex,[in] FLOAT aSourceA,[in] FLOAT aSourceB,[in] FLOAT aDestA,[in] FLOAT aDestB)
HRESULT ContrastStretchDataSet ([in] IDataSet *aDataSetIn,[in] FLOAT aSourceA,[in] FLOAT aSourceB,[in] FLOAT aDestA,[in] FLOAT aDestB,[out, retval] IDataSet **aDataSetOut)
HRESULT DetectFilament ([in] IDataSet *aDataSet,[in] ULONG aChannelIndex,[in] FLOAT aFilamentDiameter,[in] BOOL aPreprocess,[in] BOOL aPreserveEdges,[in] FLOAT aThresholdLow,[in] FLOAT aThresholdHigh,[in] BOOL aConnectiveBaseline,[in] BOOL aFillCavities,[in] FLOAT aMinimalBranchLengthRatio,[in] BOOL aDetectRootPoint,[out] VARIANT *aPositionsXYZ,[out] VARIANT *aRadii,[out] VARIANT *aEdges)
HRESULT DetectIsoSurface ([in] IDataSet *aDataSet,[in] ULONG aChannelIndex,[in] ULONG aTimeIndex,[in] FLOAT aThreshold,[in] FLOAT aUpperThreshold,[in] BOOL aApplyUpperThreshold,[in] ULONG aSizeX,[in] ULONG aSizeY,[in] ULONG aSizeZ,[in] FLOAT aGaussianFilterWidth,[in] BOOL aApplyGaussianFilter,[in] BOOL aCloseObjects,[out] VARIANT *aVertices,[out] VARIANT *aTriangles,[out] VARIANT *aNormals)
HRESULT DetectSpots ([in] IDataSet *aDataSet,[in] ULONG aChannelIndex,[in] FLOAT aSpotDiameter,[in] BOOL aBackgroundSubtraction,[in] BOOL aMultiScale,[in] FLOAT aMaximumDiameter,[in] FLOAT aThreshold,[out] VARIANT *aPositionsXYZ,[out] VARIANT *aIndicesT,[out] VARIANT *aRadii)
HRESULT DetectSpots2 ([in] IDataSet *aDataSet,[in] VARIANT aRegionsOfInterest,[in] ULONG aChannelIndex,[in] FLOAT aEstimateDiameter,[in] BOOL aSubtractBackground,[in] BSTR aSpotFiltersString,[out, retval] ISpots **aSpots)
HRESULT DetectSpotsRegionGrowing ([in] IDataSet *aDataSet,[in] VARIANT aRegionsOfInterest,[in] ULONG aChannelIndex,[in] FLOAT aEstimateDiameter,[in] BOOL aSubtractBackground,[in] BSTR aSpotFiltersString,[in] BOOL aRegionsFromLocalContrast,[in] BOOL aRegionsThresholdAutomatic,[in] FLOAT aRegionsThresholdManual,[in] BOOL aRegionsSpotsDiameterFromVolume,[in] BOOL aRegionsCreateChannel,[out, retval] ISpots **aSpots)
HRESULT DetectSpotsWithRegions ([in] IDataSet *aDataSet,[in] ULONG aChannelIndex,[in] FLOAT aSpotDiameter,[in] BOOL aBackgroundSubtraction,[in] FLOAT aSpotsThreshold,[in] BOOL aInterpolatePositions,[in] ULONG aRegionMethod,[in] FLOAT aRegionsThreshold,[in] BOOL aRemoveOverlappingSpots,[in] ULONG aRadiusFrom,[out] VARIANT *aPositionsXYZ,[out] VARIANT *aIndicesT,[out] VARIANT *aRadii)
HRESULT DetectSurfaces ([in] IDataSet *aDataSet,[in] VARIANT aRegionsOfInterest,[in] ULONG aChannelIndex,[in] FLOAT aSmoothFilterWidth,[in] FLOAT aLocalContrastFilterWidth,[in] BOOL aIntensityThresholdAutomatic,[in] FLOAT aIntensityThresholdManual,[in] BSTR aSurfaceFiltersString,[out, retval] ISurfaces **aSurfaces)
HRESULT DetectSurfacesRegionGrowing ([in] IDataSet *aDataSet,[in] VARIANT aRegionsOfInterest,[in] ULONG aChannelIndex,[in] FLOAT aSmoothFilterWidth,[in] FLOAT aLocalContrastFilterWidth,[in] BOOL aIntensityThresholdAutomatic,[in] FLOAT aIntensityThresholdManual,[in] FLOAT aSeedsEstimateDiameter,[in] BOOL aSeedsSubtractBackground,[in] BSTR aSeedsFiltersString,[in] BSTR aSurfaceFiltersString,[out, retval] ISurfaces **aSurfaces)
HRESULT DistanceTransformChannel ([in] IDataSet *aDataSet,[in] ULONG aChannelIndex,[in] FLOAT aBaseline,[in] BOOL aInside)
HRESULT DistanceTransformDataSet ([in] IDataSet *aDataSetIn,[in] FLOAT aBaseline,[in] BOOL aInside,[out, retval] IDataSet **aDataSetOut)
HRESULT EqualizeHistogramChannel ([in] IDataSet *aDataSet,[in] ULONG aChannelIndex,[in] FLOAT aOldValueLow,[in] FLOAT aOldValueHigh,[in] FLOAT aNewValueLow,[in] FLOAT aNewValueHigh)
HRESULT EqualizeHistogramDataSet ([in] IDataSet *aDataSetIn,[in] FLOAT aOldValueLow,[in] FLOAT aOldValueHigh,[in] FLOAT aNewValueLow,[in] FLOAT aNewValueHigh,[out, retval] IDataSet **aDataSetOut)
HRESULT FastMarchingArrivalTimeChannel ([in] IDataSet *aDataSet,[in] ULONG aChannelIndex,[in] VARIANT aStartPositions)
HRESULT FastMarchingArrivalTimeDataSet ([in] IDataSet *aDataSetIn,[in] VARIANT aStartPositions,[out, retval] IDataSet **aDataSetOut)
HRESULT Flip3DChannel ([in] IDataSet *aDataSet,[in] ULONG aChannelIndex,[in] ULONG aDimension)
HRESULT Flip3DDataSet ([in] IDataSet *aDataSetIn,[in] ULONG aDimension,[out, retval] IDataSet **aDataSetOut)
HRESULT GammaCorrectChannel ([in] IDataSet *aDataSet,[in] ULONG aChannelIndex,[in] FLOAT aGammaValue,[in] FLOAT aMaxValue)
HRESULT GammaCorrectDataSet ([in] IDataSet *aDataSetIn,[in] FLOAT aGammaValue,[in] FLOAT aMaxValue,[out, retval] IDataSet **aDataSetOut)
HRESULT GaussFilterChannel ([in] IDataSet *aDataSet,[in] ULONG aChannelIndex,[in] FLOAT aSigma)
HRESULT GaussFilterDataSet ([in] IDataSet *aDataSetIn,[in] FLOAT aSigma,[out, retval] IDataSet **aDataSetOut)
HRESULT GaussianDerivativeChannel ([in] IDataSet *aDataSet,[in] ULONG aChannelIndex,[in] FLOAT aSigma,[in] VARIANT aDerivativeOrder)
HRESULT GaussianDerivativeDataSet ([in] IDataSet *aDataSetIn,[in] FLOAT aSigma,[in] VARIANT aDerivativeOrder,[out, retval] IDataSet **aDataSetOut)
HRESULT InvertChannel ([in] IDataSet *aDataSet,[in] ULONG aChannelIndex)
HRESULT InvertDataSet ([in] IDataSet *aDataSetIn,[out, retval] IDataSet **aDataSetOut)
HRESULT MedianFilterChannel ([in] IDataSet *aDataSet,[in] ULONG aChannelIndex,[in] VARIANT aSize)
HRESULT MedianFilterDataSet ([in] IDataSet *aDataSetIn,[in] VARIANT aSize,[out, retval] IDataSet **aDataSetOut)
HRESULT NormalizeLayersChannel ([in] IDataSet *aDataSet,[in] ULONG aChannelIndex)
HRESULT NormalizeLayersDataSet ([in] IDataSet *aDataSetIn,[out, retval] IDataSet **aDataSetOut)
HRESULT Shift3DChannel ([in] IDataSet *aDataSet,[in] ULONG aChannelIndex,[in] LONG aShiftX,[in] LONG aShiftY,[in] LONG aShiftZ)
HRESULT Shift3DDataSet ([in] IDataSet *aDataSetIn,[in] LONG aShiftX,[in] LONG aShiftY,[in] LONG aShiftZ,[out, retval] IDataSet **aDataSetOut)
HRESULT ShortestPath ([in] IDataSet *aDataSet,[in] ULONG aTimeIndex,[in] ULONG aChannelIndex,[in] VARIANT aStartPositions,[out, retval] VARIANT *aPositionsXYZ)
HRESULT SubtractBackgroundChannel ([in] IDataSet *aDataSet,[in] ULONG aChannelIndex,[in] FLOAT aSigma)
HRESULT SubtractBackgroundDataSet ([in] IDataSet *aDataSetIn,[in] FLOAT aSigma,[out, retval] IDataSet **aDataSetOut)
HRESULT ThresholdBothChannel ([in] IDataSet *aDataSet,[in] ULONG aChannelIndex,[in] FLOAT aThreshold,[in] FLOAT aNewValueLow,[in] FLOAT aNewValueHigh)
HRESULT ThresholdBothDataSet ([in] IDataSet *aDataSetIn,[in] FLOAT aThreshold,[in] FLOAT aNewValueLow,[in] FLOAT aNewValueHigh,[out, retval] IDataSet **aDataSetOut)
HRESULT ThresholdChannel ([in] IDataSet *aDataSet,[in] ULONG aChannelIndex,[in] FLOAT aThreshold,[in] FLOAT aNewValue)
HRESULT ThresholdDataSet ([in] IDataSet *aDataSetIn,[in] FLOAT aThreshold,[in] FLOAT aNewValue,[out, retval] IDataSet **aDataSetOut)
HRESULT ThresholdUpperChannel ([in] IDataSet *aDataSet,[in] ULONG aChannelIndex,[in] FLOAT aThreshold,[in] FLOAT aNewValue)
HRESULT ThresholdUpperDataSet ([in] IDataSet *aDataSetIn,[in] FLOAT aThreshold,[in] FLOAT aNewValue,[out, retval] IDataSet **aDataSetOut)
HRESULT TrackSpotsAutoregressiveMotion ([in] ISpots *aSpots,[in] FLOAT aMaximalDistance,[in] INT aGapSize,[in] BSTR aTrackFiltersString,[out, retval] ISpots **aTrackedSpots)
HRESULT TrackSpotsAutoregressiveMotionExpert ([in] ISpots *aSpots,[in] FLOAT aMaximalDistance,[in] INT aGapSize,[in] FLOAT aIntensityWeight,[in] BSTR aTrackFiltersString,[out, retval] ISpots **aTrackedSpots)
HRESULT TrackSpotsBrownianMotion ([in] ISpots *aSpots,[in] FLOAT aMaximalDistance,[in] INT aGapSize,[in] BSTR aTrackFiltersString,[out, retval] ISpots **aTrackedSpots)
HRESULT TrackSpotsConnectedComponents ([in] ISpots *aSpots,[in] BSTR aTrackFiltersString,[out, retval] ISpots **aTrackedSpots)
HRESULT TrackSurfacesAutoregressiveMotion ([in] ISurfaces *aSurfaces,[in] FLOAT aMaximalDistance,[in] INT aGapSize,[in] BSTR aTrackFiltersString,[out, retval] ISurfaces **aTrackedSurfaces)
HRESULT TrackSurfacesAutoregressiveMotionExpert ([in] ISurfaces *aSurfaces,[in] FLOAT aMaximalDistance,[in] INT aGapSize,[in] FLOAT aIntensityWeight,[in] BSTR aTrackFiltersString,[out, retval] ISurfaces **aTrackedSurfaces)
HRESULT TrackSurfacesBrownianMotion ([in] ISurfaces *aSurfaces,[in] FLOAT aMaximalDistance,[in] INT aGapSize,[in] BSTR aTrackFiltersString,[out, retval] ISurfaces **aTrackedSurfaces)
HRESULT TrackSurfacesConnectedComponents ([in] ISurfaces *aSurfaces,[in] BSTR aTrackFiltersString,[out, retval] ISurfaces **aTrackedSurfaces)

Detailed Description

This class exports the Imaris image processing algorithms to be used through the ImarisXT interface.


Member Function Documentation

HRESULT IImageProcessing::AnisotropicDiffusionFilterChannel ( [in] IDataSet aDataSet,
[in] ULONG  aChannelIndex,
[in] FLOAT  aSigma 
)

Apply an anisotropic diffusion filter to the selected channel.

Parameters:
aDataSet [in], [out] The dataset
aChannelIndex [in] Index of channel to be processed
aSigma [in] The width of the filter (float)
 %% The following MATLAB code applies an anisotropic diffusion filter to the selected channel.
 %% Caution: this will directly replace the current dataset with the filtered one in vImarisApplication.mDataSet.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aChannelIndex=0;
 aSigma=2.5;
 vImarisApplication.mImageProcessing.AnisotropicDiffusionFilterChannel(aDataSetIn,aChannelIndex,aSigma);
 
HRESULT IImageProcessing::AnisotropicDiffusionFilterDataSet ( [in] IDataSet aDataSetIn,
[in] FLOAT  aSigma,
[out, retval] IDataSet **  aDataSetOut 
)

Apply an anisotropic diffusion filter to the whole dataset.

Parameters:
aDataSetIn [in] The source dataset
aSigma [in] The width of the filter (float)
aDataSetOut [out] The destination dataset
 %% The following MATLAB code applies an anisotropic diffusion filter to the whole dataset.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aSigma=2.5;
 aDataSetOut=vImarisApplication.mImageProcessing.AnisotropicDiffusionFilterDataSet(aDataSetIn,aSigma);
 %% To replace current dataset with the filtered one, use the following:
 vImarisApplication.mDataSet=aDataSetOut;
 
HRESULT IImageProcessing::BaselineSubtractChannel ( [in] IDataSet aDataSet,
[in] ULONG  aChannelIndex,
[in] FLOAT  aBaseline 
)

Baseline subtraction. A constant value is subtracted from the selected channel.

Parameters:
aDataSet [in], [out] The dataset
aChannelIndex [in] Index of channel to be processed.
aBaseline [in] The baseline value for each channel.
 %% The following MATLAB code applies in-place baseline subtraction to the selected channel.
 %% Caution: this will directly replace the current dataset with the baseline-subtracted one in vImarisApplication.mDataSet.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aChannelIndex=0;
 aBaseline=100;
 vImarisApplication.mImageProcessing.BaselineSubtractChannel(aDataSetIn,aChannelIndex,aBaseline);
 
HRESULT IImageProcessing::BaselineSubtractDataSet ( [in] IDataSet aDataSetIn,
[in] FLOAT  aBaseline,
[out, retval] IDataSet **  aDataSetOut 
)

Baseline subtraction. A constant value is subtracted from the dataset.

Parameters:
aDataSetIn The source dataset
aBaseline The baseline value for each channel.
aDataSetOut The destination dataset
 %% The following MATLAB code applies baseline subtraction to the whole dataset
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aBaseline=100;
 aDataSetOut=vImarisApplication.mImageProcessing.BaselineSubtractDataSet(aDataSetIn,aBaseline);
 %% To replace current dataset with the baseline-subtracted one, use the following:
 vImarisApplication.mDataSet=aDataSetOut;
 
HRESULT IImageProcessing::CalculateTracks ( [in] VARIANT  aPositionsXYZ,
[in] VARIANT  aIndicesT,
[in] VARIANT  aRadii,
[in] ULONG  aAlgorithm,
[in] FLOAT  aMaximalDistance,
[out] VARIANT *  aEdges,
[out] VARIANT *  aRanges 
)

Calculate Tracks. OBSOLETE: Use TrackSpots instead.

Parameters:
aPositionsXYZ [in] 2D array of positions [x y z]N
aIndicesT [in] 1D array of time points
aRadii [in] 1D array of radii
aAlgorithm [in] Algorithm index
aMaximalDistance [in] Algorithm parameter
aEdges [out] 2D array of positions (N x 2)
aRanges [out] 2D array of delimiters (N x 2) = N x (number of spots; number of edges)

 %% The following MATLAB code calculates tracks for the selected spots...
   --> see CreateTracks.m!!
 %% ... and adds the tracks to the imaris surpass scene.
   --> see CreateTracks.m!!
 
HRESULT IImageProcessing::ContrastStretchChannel ( [in] IDataSet aDataSet,
[in] ULONG  aChannelIndex,
[in] FLOAT  aSourceA,
[in] FLOAT  aSourceB,
[in] FLOAT  aDestA,
[in] FLOAT  aDestB 
)

Contrast stretch in the selected channel.

Parameters:
aDataSet [in], [out] The dataset (IN/OUT)
aChannelIndex [in] Index of channel to be processed.
aSourceA [in] Intensity, will be mapped to aDestA (float)
aSourceB [in] Intensity, will be mapped to aDestB (float)
aDestA [in] Intensity, mapped by aSourceA (float)
aDestB [in] Intensity, mapped by aSourceB (float)
 %% The following MATLAB code stretches the intensities in the selected channel.
 %% Caution: this will directly replace the current dataset with the filtered one in vImarisApplication.mDataSet.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aChannelIndex=0;
 aSourceA=100;
 aSourceB=175;
 aDestA=0;
 aDestB=255;
 vImarisApplication.mImageProcessing.ContrastStretchChannel(aDataSetIn,aChannelIndex,aSourceA,aSourceB,aDestA,aDestB);
 
HRESULT IImageProcessing::ContrastStretchDataSet ( [in] IDataSet aDataSetIn,
[in] FLOAT  aSourceA,
[in] FLOAT  aSourceB,
[in] FLOAT  aDestA,
[in] FLOAT  aDestB,
[out, retval] IDataSet **  aDataSetOut 
)

Contrast stretch in the whole dataset.

Parameters:
aDataSetIn [in] The source dataset
aSourceA [in] Intensity, will be mapped to aDestA (float)
aSourceB [in] Intensity, will be mapped to aDestB (float)
aDestA [in] Intensity, mapped by aSourceA (float)
aDestB [in] Intensity, mapped by aSourceB (float)
aDataSetOut [out] The destination dataset
 %% The following MATLAB code stretches the intensities in the whole dataset.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aSourceA=100;
 aSourceB=175;
 aDestA=0;
 aDestB=255;
 aDataSetOut=vImarisApplication.mImageProcessing.ContrastStretchDataSet(aDataSetIn,aSourceA,aSourceB,aDestA,aDestB);
 %% To replace current dataset with the stretched one, use the following:
 vImarisApplication.mDataSet=aDataSetOut;
 
HRESULT IImageProcessing::DetectFilament ( [in] IDataSet aDataSet,
[in] ULONG  aChannelIndex,
[in] FLOAT  aFilamentDiameter,
[in] BOOL  aPreprocess,
[in] BOOL  aPreserveEdges,
[in] FLOAT  aThresholdLow,
[in] FLOAT  aThresholdHigh,
[in] BOOL  aConnectiveBaseline,
[in] BOOL  aFillCavities,
[in] FLOAT  aMinimalBranchLengthRatio,
[in] BOOL  aDetectRootPoint,
[out] VARIANT *  aPositionsXYZ,
[out] VARIANT *  aRadii,
[out] VARIANT *  aEdges 
)

Detect filament: Not yet implemented!

Parameters:
aDataSet [in] Not yet implemented!
aChannelIndex [in] Not yet implemented!
aFilamentDiameter [in] Not yet implemented!
aPreprocess [in] Not yet implemented!
aPreserveEdges [in] Not yet implemented!
aThresholdLow [in] Not yet implemented!
aThresholdHigh [in] Not yet implemented!
aConnectiveBaseline [in] Not yet implemented!
aFillCavities [in] Not yet implemented!
aMinimalBranchLengthRatio [in] Not yet implemented!
aDetectRootPoint [in] Not yet implemented!
aPositionsXYZ [out] Not yet implemented!
aRadii [out] Not yet implemented!
aEdges [out] Not yet implemented!
HRESULT IImageProcessing::DetectIsoSurface ( [in] IDataSet aDataSet,
[in] ULONG  aChannelIndex,
[in] ULONG  aTimeIndex,
[in] FLOAT  aThreshold,
[in] FLOAT  aUpperThreshold,
[in] BOOL  aApplyUpperThreshold,
[in] ULONG  aSizeX,
[in] ULONG  aSizeY,
[in] ULONG  aSizeZ,
[in] FLOAT  aGaussianFilterWidth,
[in] BOOL  aApplyGaussianFilter,
[in] BOOL  aCloseObjects,
[out] VARIANT *  aVertices,
[out] VARIANT *  aTriangles,
[out] VARIANT *  aNormals 
)

Computes an Iso Surface. OBSOLETE: Use DetectSurfaces instead.

Parameters:
aDataSet [in] The source dataset
aChannelIndex [in] Index of channel to be processed
aTimeIndex [in] Time index to be processed
aThreshold [in] Intensity threshold (float)
aUpperThreshold [in] Upper intensity threshold (float)
aApplyUpperThreshold [in] Toggles upper thresholding (boolean)
aSizeX [in] Size (X)
aSizeY [in] Size (Y)
aSizeZ [in] Size (Z)
aGaussianFilterWidth [in] Width of the Gaussian filter (float)
aApplyGaussianFilter [in] Toggles Gaussian filtering (boolean)
aCloseObjects [in] Toggles objects closure boolean)
aVertices [out] 2D-array [x y z]N containing positions of vertices
aTriangles [out] 2D-array (N x 3) containing indices to the vertices array
aNormals [out] 2D-array [x y z]N containing orientations of normals
 %% The following MATLAB code computes an isosurface for the selected channel.
 aDataSet=vImarisApplication.mDataSet; %% Current dataset
 aChannelIndex=0;
 aTimeIndex=0;
 aThreshold=200;
 aUpperThreshold=240;
 aApplyUpperThreshold=1;
 aSizeX=255;
 aSizeY=255;
 aSizeZ=100;
 aGaussianFilterWidth=1.5;
 aApplyGaussianFilter=1;
 aCloseObjects=1;
 [aPositionsXYZ,aIndicesT,aRadii]=vImarisApplication.mImageProcessing.DetectIsoSurface(aDataSet,aChannelIndex,aTimeIndex,aThreshold,aUpperThreshold,aApplyUpperThreshold,aSizeX,aSizeY,aSizeZ,aGaussianFilterWidth,aApplyGaussianFilter,aCloseObjects);
 
HRESULT IImageProcessing::DetectSpots ( [in] IDataSet aDataSet,
[in] ULONG  aChannelIndex,
[in] FLOAT  aSpotDiameter,
[in] BOOL  aBackgroundSubtraction,
[in] BOOL  aMultiScale,
[in] FLOAT  aMaximumDiameter,
[in] FLOAT  aThreshold,
[out] VARIANT *  aPositionsXYZ,
[out] VARIANT *  aIndicesT,
[out] VARIANT *  aRadii 
)

Computes spots (local intensity maxima). OBSOLETE: Use DetectSpots2 instead.

Parameters:
aDataSet [in] The source dataset
aChannelIndex [in] Index of channel to be processed.
aSpotDiameter [in] Expected spot diameter (float)
aBackgroundSubtraction [in] Toggles background substraction (boolean)
aMultiScale [in] Toggles multiscale filtering (boolean)
aMaximumDiameter [in] Maximum allowed spot diameter (float)
aThreshold [in] Intensity threshold (float)
aPositionsXYZ [out] 2D array of positions [x y z]N
aIndicesT [out] 1D array of time points
aRadii [out] 1D array of spot radii
 %% The following MATLAB code detects spots for the selected channel.
 aDataSet=vImarisApplication.mDataSet; %% Current dataset
 aChannelIndex=0;
 aSpotDiameter=0.500;
 aBackgroundSubtraction=1;
 aMultiScale=1;
 aMaximumDiameter=1.500;
 aThreshold=100;
 [aPositionsXYZ,aIndicesT,aRadii]=vImarisApplication.mImageProcessing.DetectSpots(aDataSet,aChannelIndex,aSpotDiameter,aBackgroundSubtraction,aMultiScale,aMaximumDiameter,aThreshold);
 
HRESULT IImageProcessing::DetectSpots2 ( [in] IDataSet aDataSet,
[in] VARIANT  aRegionsOfInterest,
[in] ULONG  aChannelIndex,
[in] FLOAT  aEstimateDiameter,
[in] BOOL  aSubtractBackground,
[in] BSTR  aSpotFiltersString,
[out, retval] ISpots **  aSpots 
)

Replaces DetectSpots, implemented for bpPointsViewer.

aRegionsOfInterest is a Nx8 matrix with the Rois extends [vMinX, vMinY, vMinZ, vMinT, vMaxX, vMaxY, vMaxZ, vMaxT]. Process entire image if aRegionsOfInterest is empty. Example of aSpotFiltersString: '"Position X" above 30.000 um "Intensity Center Ch=1" above automatic threshold'

HRESULT IImageProcessing::DetectSpotsRegionGrowing ( [in] IDataSet aDataSet,
[in] VARIANT  aRegionsOfInterest,
[in] ULONG  aChannelIndex,
[in] FLOAT  aEstimateDiameter,
[in] BOOL  aSubtractBackground,
[in] BSTR  aSpotFiltersString,
[in] BOOL  aRegionsFromLocalContrast,
[in] BOOL  aRegionsThresholdAutomatic,
[in] FLOAT  aRegionsThresholdManual,
[in] BOOL  aRegionsSpotsDiameterFromVolume,
[in] BOOL  aRegionsCreateChannel,
[out, retval] ISpots **  aSpots 
)

Replaces DetectSpotsWithRegions, implemented for bpPointsViewer.

aRegionsOfInterest is a Nx8 matrix with the Rois extends. [vMinX, vMinY, vMinZ, vMinT, vMaxX, vMaxY, vMaxZ, vMaxT]. Process entire image if aRegionsOfInterest is empty. Example of aSpotFiltersString: '"Position X" above 30.000 um "Intensity Center Ch=1" above automatic threshold'

If aRegionsFromLocalContrast is false, regions are computed from channel intensity. If aRegionsThresholdAutomatic is true, aRegionsThresholdManual is ignored. If aRegionsSpotsDiameterFromVolume is false, spots diameter is equal to region border distance.

HRESULT IImageProcessing::DetectSpotsWithRegions ( [in] IDataSet aDataSet,
[in] ULONG  aChannelIndex,
[in] FLOAT  aSpotDiameter,
[in] BOOL  aBackgroundSubtraction,
[in] FLOAT  aSpotsThreshold,
[in] BOOL  aInterpolatePositions,
[in] ULONG  aRegionMethod,
[in] FLOAT  aRegionsThreshold,
[in] BOOL  aRemoveOverlappingSpots,
[in] ULONG  aRadiusFrom,
[out] VARIANT *  aPositionsXYZ,
[out] VARIANT *  aIndicesT,
[out] VARIANT *  aRadii 
)

Computes spots (local intensity maxima).

Parameters:
aDataSet [in] The source dataset
aChannelIndex [in] Index of channel to be processed
aSpotDiameter [in] Expected spot diameter (float)
aBackgroundSubtraction [in] Toggles background substraction (boolean)
aSpotsThreshold [in] Intensity spots threshold (float)
aInterpolatePositions [in] Interpolate spots positions (bool)
aRegionMethod [in] Region detection method index (int)
aRegionsThreshold [in] Intensity regions threshold (float)
aRemoveOverlappingSpots [in] Toggles Remove Overlapping Spots
aRadiusFrom [in] Spots radii computation method (int)
aPositionsXYZ [out] 2D array of positions [x y z]N
aIndicesT [out] 1D array of time points
aRadii [out] 1D array of spot radii
 %% The following MATLAB code detects spots for the selected channel...
 aDataSet = vImarisApplication.mDataSet; %% Current dataset
 aChannelIndex = 0;
 aSpotDiameter = 2;
 aBackgroundSubtraction = 1;
 aSpotsThreshold = 0.5;
 aInterpolatePositions = 1;
 aRegionMethod = 0;
 aRegionsThreshold = 30;
 aRemoveOverlappingSpots = 1;
 aSpotsModel = 1;
 [aPositionsXYZ,aIndicesT,aRadii] = vImarisApplication.mImageProcessing.DetectSpotsWithRegions( ...
     aDataSet,aChannelIndex,aSpotDiameter,aBackgroundSubtraction,aSpotsThreshold, ...
     aInterpolatePositions,aRegionMethod,aRegionsThreshold,aRemoveOverlappingSpots,aSpotsModel);
 %% ... and adds the detected spots to the imaris surpass scene.
 vSpots = vImarisApplication.mFactory.CreateSpots;
 vSpots.Set(aPositionsXYZ,aIndicesT,aRadii);
 vImarisApplication.mSurpassScene.AddChild(vSpots);
 
HRESULT IImageProcessing::DetectSurfaces ( [in] IDataSet aDataSet,
[in] VARIANT  aRegionsOfInterest,
[in] ULONG  aChannelIndex,
[in] FLOAT  aSmoothFilterWidth,
[in] FLOAT  aLocalContrastFilterWidth,
[in] BOOL  aIntensityThresholdAutomatic,
[in] FLOAT  aIntensityThresholdManual,
[in] BSTR  aSurfaceFiltersString,
[out, retval] ISurfaces **  aSurfaces 
)

Replaces DetectIsoSurface, implemented for bpSurfacesViewer.

aRegionsOfInterest is a Nx8 matrix with the Rois extends [vMinX, vMinY, vMinZ, vMinT, vMaxX, vMaxY, vMaxZ, vMaxT]. Process entire image if aRegionsOfInterest is empty. Example of aSurfaceFiltersString: '"Volume" above automatic threshold' If aSmoothFilterWidth is equal to zero, smoothing is disabled. If aLocalContrastFilterWidth is equal to zero, local contrast is disabled. If aIntensityThresholdAutomatic is true, aIntensityThresholdManual is ignored.

HRESULT IImageProcessing::DetectSurfacesRegionGrowing ( [in] IDataSet aDataSet,
[in] VARIANT  aRegionsOfInterest,
[in] ULONG  aChannelIndex,
[in] FLOAT  aSmoothFilterWidth,
[in] FLOAT  aLocalContrastFilterWidth,
[in] BOOL  aIntensityThresholdAutomatic,
[in] FLOAT  aIntensityThresholdManual,
[in] FLOAT  aSeedsEstimateDiameter,
[in] BOOL  aSeedsSubtractBackground,
[in] BSTR  aSeedsFiltersString,
[in] BSTR  aSurfaceFiltersString,
[out, retval] ISurfaces **  aSurfaces 
)

Implemented for bpSurfacesViewer.

aRegionsOfInterest is a Nx8 matrix with the Rois extends. [vMinX, vMinY, vMinZ, vMinT, vMaxX, vMaxY, vMaxZ, vMaxT]. Process entire image if aRegionsOfInterest is empty. Example of aSurfaceFiltersString: '"Volume" above automatic threshold' If aSmoothFilterWidth is equal to zero, smoothing is disabled. If aLocalContrastFilterWidth is equal to zero, local contrast is disabled. If aIntensityThresholdAutomatic is true, aIntensityThresholdManual is ignored.

Example of aSeedsFiltersString: '"Quality" above 7.000'

HRESULT IImageProcessing::DistanceTransformChannel ( [in] IDataSet aDataSet,
[in] ULONG  aChannelIndex,
[in] FLOAT  aBaseline,
[in] BOOL  aInside 
)

Distance transform.

Within the regions with intensity greater than threshold, the distance of each voxel to the border of the region is computed. The distance is computed using a Chamfer metric (termed "quasi-euclidean" in Matlab). All voxels where original intensity is less than threshold are set to zero.

Parameters:
aDataSet The data set (IN/OUT)
aChannelIndex The channels to which the baseline subtraction is applied.
aBaseline The baseline value for each channel.
aInside true for inside, false for outside.
 %% The following MATLAB code applies in-place baseline subtraction to the selected channel.
 %% Caution: this will directly replace the current dataset with the baseline-subtracted one in vImarisApplication.mDataSet.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aChannelIndex=0;
 aBaseline=100;
 vImarisApplication.mImageProcessing.DistanceTransformChannel(aDataSetIn,aChannelIndex,aBaseline);
 
HRESULT IImageProcessing::DistanceTransformDataSet ( [in] IDataSet aDataSetIn,
[in] FLOAT  aBaseline,
[in] BOOL  aInside,
[out, retval] IDataSet **  aDataSetOut 
)

Distance transform.

Within the regions with intensity greater than threshold, the distance of each voxel to the border of the region is computed. The distance is computed using a Chamfer metric (termed "quasi-euclidean" in Matlab). All voxels where original intensity is less than threshold are set to zero.

Parameters:
aDataSetIn The data set (IN)
aBaseline The baseline value for each channel.
aInside true for inside, false for outside.
aDataSetOut The data set (OUT)
 %% The following MATLAB code applies baseline subtraction to the whole dataset
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aBaseline=100;
 aDataSetOut=vImarisApplication.mImageProcessing.DistanceTransformDataSet(aDataSetIn,aBaseline);
 %% To replace current dataset with the baseline-subtracted one, use the following:
 vImarisApplication.mDataSet=aDataSetOut;
 
HRESULT IImageProcessing::EqualizeHistogramChannel ( [in] IDataSet aDataSet,
[in] ULONG  aChannelIndex,
[in] FLOAT  aOldValueLow,
[in] FLOAT  aOldValueHigh,
[in] FLOAT  aNewValueLow,
[in] FLOAT  aNewValueHigh 
)

Apply histogram equalization to the selected channel.

Parameters:
aDataSet [in], [out] The dataset
aChannelIndex [in] Index of channel to be processed.
aOldValueLow [in] Lower bound of intensity window. Intensites below this value will be set to aNewValueLow.
aOldValueHigh [in] Upper bound of itensity window. Intensites above this value will be set to aNewValueHigh.
aNewValueLow [in] Minimum intensity of output data set.
aNewValueHigh [in] Maximum intensity of output data set.
 %% The following MATLAB code applies a user-defined histogram equalization to the selected channel.
 %% Caution: this will directly replace the current dataset with the equalized one in vImarisApplication.mDataSet.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aOldValueLow=0;
 aOldValueHigh=194.921005
 aNewValueLow=0;
 aNewValueHigh=255;
 vImarisApplication.mImageProcessing.EqualizeHistogramChannel(aDataSetIn,aChannelIndex,aOldValueLow,aOldValueHigh,aNewValueLow,aNewValueHigh);
 
HRESULT IImageProcessing::EqualizeHistogramDataSet ( [in] IDataSet aDataSetIn,
[in] FLOAT  aOldValueLow,
[in] FLOAT  aOldValueHigh,
[in] FLOAT  aNewValueLow,
[in] FLOAT  aNewValueHigh,
[out, retval] IDataSet **  aDataSetOut 
)

Apply a histogram equalization to the whole dataset.

Parameters:
aDataSetIn [in] The source dataset
aOldValueLow [in] Lower bound of intensity window. Intensites below this value will be set to aNewValueLow.
aOldValueHigh [in] Upper bound of itensity window. Intensites above this value will be set to aNewValueHigh.
aNewValueLow [in] Minimum intensity of output data set.
aNewValueHigh [in] Maximum intensity of output data set.
aDataSetOut [out] The equalized dataset
 %% The following MATLAB code applies user-defined histogram equalization to the selected channel.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aOldValueLow=0;
 aOldValueHigh=194.921005;
 aNewValueLow=0;
 aNewValueHigh=255;
 aDataSetOut=vImarisApplication.mImageProcessing.EqualizeHistogramDataSet(aDataSetIn,aOldValueLow,aOldValueHigh,aNewValueLow,aNewValueHigh);
 %% To replace current dataset with the equalized one, use the following:
 vImarisApplication.mDataSet=aDataSetOut;
 
HRESULT IImageProcessing::FastMarchingArrivalTimeChannel ( [in] IDataSet aDataSet,
[in] ULONG  aChannelIndex,
[in] VARIANT  aStartPositions 
)

FastMarchingArrivalTime algorithm

Parameters:
aDataSet [in], [out] The dataset (IN/OUT)
aChannelIndex [in] Index of channel to be processed.
aStartPositions [in] Vector of 3D start positions for expansion of front
 %% The following MATLAB code runs the FastMarchingArrivalTime algorithm for the selected channel.
 %% Caution: this will directly replace the current dataset with the gamma-corrected one in vImarisApplication.mDataSet.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aChannelIndex=0;
 aStartPositions=[100 100 100];
 vImarisApplication.mImageProcessing.FastMarchingArrivalTimeChannel(aDataSetIn,aChannelIndex,aStartPositions);
 
HRESULT IImageProcessing::FastMarchingArrivalTimeDataSet ( [in] IDataSet aDataSetIn,
[in] VARIANT  aStartPositions,
[out, retval] IDataSet **  aDataSetOut 
)

FastMarchingArrivalTime algorithm

Parameters:
aDataSetIn [in] The source dataset
aStartPositions [in] Vector of 3D start positions for expansion of front
aDataSetOut [out] The destination dataset
 %% The following MATLAB code runs the FastMarchingArrivalTime algorithm for the whole dataset.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aStartPositions=[100 100 100];
 aDataSetOut=vImarisApplication.mImageProcessing.FastMarchingArrivalTimeDataSet(aDataSetIn,aStartPositions);
 %% To replace current dataset with the output one, use the following:
 vImarisApplication.mDataSet=aDataSetOut;
 
HRESULT IImageProcessing::Flip3DChannel ( [in] IDataSet aDataSet,
[in] ULONG  aChannelIndex,
[in] ULONG  aDimension 
)

Flip the selected channel set. The values are swapped along one dimension.

Parameters:
aDataSet [in], [out] The dataset (IN/OUT)
aChannelIndex [in] Index of channel to be processed.
aDimension [out] The dimension in which to flip the channel.
 %% The following MATLAB code flips the selected channel along one dimension.
 %% Caution: this will directly replace the current dataset with the flipped one in vImarisApplication.mDataSet.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aChannelIndex=0;
 aDimension=1;
 vImarisApplication.mImageProcessing.Flip3DChannel(aDataSetIn,aChannelIndex,aDimension);
 
HRESULT IImageProcessing::Flip3DDataSet ( [in] IDataSet aDataSetIn,
[in] ULONG  aDimension,
[out, retval] IDataSet **  aDataSetOut 
)

Flip the dataset. The values are swapped in one dimension.

Parameters:
aDataSetIn The source dataset
aDimension The dimension in which to flip the channels.
aDataSetOut The destination dataset
 %% The following MATLAB code flips the whole dataset along one dimension
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aDimension=1;
 aDataSetOut=vImarisApplication.mImageProcessing.Flip3DDataSet(aDataSetIn,aDimension);
 %% To replace current dataset with the flipped one, use the following:
 vImarisApplication.mDataSet=aDataSetOut;
 
HRESULT IImageProcessing::GammaCorrectChannel ( [in] IDataSet aDataSet,
[in] ULONG  aChannelIndex,
[in] FLOAT  aGammaValue,
[in] FLOAT  aMaxValue 
)

Gamma correction. I_new = (I_old ^ gamma) / (max ^ (gamma - 1)

Parameters:
aDataSet [in], [out] The dataset
aChannelIndex [in] Index of channel to be processed.
aGammaValue [in] The gamma value for each channel.
aMaxValue [in] The maximum value (for normalization) for each channel.
 %% The following MATLAB code applies gamma correction to the selected channel.
 %% Caution: this will directly replace the current dataset with the gamma-corrected one in vImarisApplication.mDataSet.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aChannelIndex=0;
 aGammaValue=0.75;
 aMaxValue=200;
 vImarisApplication.mImageProcessing.GammaCorrectChannel(aDataSetIn,aChannelIndex,aGammaValue,aMaxValue);
 
HRESULT IImageProcessing::GammaCorrectDataSet ( [in] IDataSet aDataSetIn,
[in] FLOAT  aGammaValue,
[in] FLOAT  aMaxValue,
[out, retval] IDataSet **  aDataSetOut 
)

Apply gamma correction for the whole dataset. I_new = (I_old ^ gamma) / (max ^ (gamma - 1)

Parameters:
aDataSetIn [in] The source dataset
aGammaValue [in] The gamma value for each channel (float)
aMaxValue [in] The maximum value (for normalization) for each channel (float)
aDataSetOut [out] The destination dataset
 %% The following MATLAB code applies gamma correction to the whole dataset.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aGammaValue=0.75;
 aMaxValue=200;
 aDataSetOut=vImarisApplication.mImageProcessing.GammaCorrectDataSet(aDataSetIn,aGammaValue,aMaxValue);
 %% To replace current dataset with the gamma-corrected one, use the following:
 vImarisApplication.mDataSet=aDataSetOut;
 
HRESULT IImageProcessing::GaussFilterChannel ( [in] IDataSet aDataSet,
[in] ULONG  aChannelIndex,
[in] FLOAT  aSigma 
)

Apply a Gaussian filter to the selected channel set. The filter is isotropic and given in dataset coordinates. The width of the filter is given in float. Note that in voxel coordinates the filter may be anisotropic, depending on the voxelsize.

Parameters:
aDataSet [in], [out] The dataset
aChannelIndex [in] Index of channel to be processed.
aSigma [in] The width of the filter.
 %% The following MATLAB code applies a Gaussian filter to the selected channel.
 %% Caution: this will directly replace the current dataset with the filtered one in vImarisApplication.mDataSet.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aChannelIndex=0;
 aSigma=2.5;
 vImarisApplication.mImageProcessing.GaussFilterChannel(aDataSetIn,aChannelIndex,aSigma);
 
HRESULT IImageProcessing::GaussFilterDataSet ( [in] IDataSet aDataSetIn,
[in] FLOAT  aSigma,
[out, retval] IDataSet **  aDataSetOut 
)

Apply a Gaussian filter to the dataset. The filter is isotropic and given in dataset coordinates. The width of the filter is given in float. Note that in voxel coordinates the filter may be anisotropic, depending on the voxelsize.

Parameters:
aDataSetIn [in] The source dataset
aSigma [in] The width of the filter (float))
aDataSetOut [out] The destination dataset
 %% The following MATLAB code applies a Gaussian filter to the whole dataset.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aSigma=2.5;
 aDataSetOut=vImarisApplication.mImageProcessing.GaussFilterDataSet(aDataSetIn,aSigma);
 %% To replace current dataset with the filtered one, use the following:
 vImarisApplication.mDataSet=aDataSetOut;
 
HRESULT IImageProcessing::GaussianDerivativeChannel ( [in] IDataSet aDataSet,
[in] ULONG  aChannelIndex,
[in] FLOAT  aSigma,
[in] VARIANT  aDerivativeOrder 
)

Apply a GaussianDerivative filter to the selected channnel. The width of the filter is given in float.

Parameters:
aDataSet [in], [out] The dataset
aChannelIndex [in] Index of channel to be processed.
aSigma [in] The width of the filter.
aDerivativeOrder [in] Vector containing order of derivative for each data dimension.
 %% The following MATLAB code applies a GaussianDerivative filter to the selected channel.
 %% Caution: this will directly replace the current dataset with the filtered one in vImarisApplication.mDataSet.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aChannelIndex=0;
 aSigma=2.5;
 aDerivativeOrder=[2 2 2];
 vImarisApplication.mImageProcessing.GaussianDerivativeChannel(aDataSetIn,aChannelIndex,aSigma,aDerivativeOrder);
 
HRESULT IImageProcessing::GaussianDerivativeDataSet ( [in] IDataSet aDataSetIn,
[in] FLOAT  aSigma,
[in] VARIANT  aDerivativeOrder,
[out, retval] IDataSet **  aDataSetOut 
)

Apply a GaussianDerivative filter to the whole dataset. The width of the filter is given in float.

Parameters:
aDataSetIn [in] The source dataset
aSigma [in] The width of the filter.
aDerivativeOrder [in] Vector containing order of derivative for each data dimension.
aDataSetOut [out] The destination dataset
 %% The following MATLAB code applies a GaussianDerivative filter to the whole dataset.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aSigma=2.5;
 aDerivativeOrder=[2 2 2];
 aDataSetOut=vImarisApplication.mImageProcessing.GaussianDerivativeDataSet(aDataSetIn,aSigma,aDerivativeOrder);
 %% To replace current dataset with the filtered one, use the following:
 vImarisApplication.mDataSet=aDataSetOut;
 
HRESULT IImageProcessing::InvertChannel ( [in] IDataSet aDataSet,
[in] ULONG  aChannelIndex 
)

Invert all values in the selected channel.

Parameters:
aDataSet [in], [out] The dataset
aChannelIndex [in] Index of channel to be processed
 %% The following MATLAB code inverts all values in the selected channel.
 %% Caution: this will directly replace the current dataset with the filtered one in vImarisApplication.mDataSet.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aChannelIndex=0;
 vImarisApplication.mImageProcessing.InvertChannel(aDataSetIn,aChannelIndex);
 
HRESULT IImageProcessing::InvertDataSet ( [in] IDataSet aDataSetIn,
[out, retval] IDataSet **  aDataSetOut 
)

Invert all values in the whole dataset.

Parameters:
aDataSetIn [in] The source dataset
aDataSetOut [out] The destination dataset
 %% The following MATLAB code inverts all values in the whole dataset.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aDataSetOut=vImarisApplication.mImageProcessing.InvertDataSet(aDataSetIn);
 %% To replace current dataset with the inverted one, use the following:
 vImarisApplication.mDataSet=aDataSetOut;
 
HRESULT IImageProcessing::MedianFilterChannel ( [in] IDataSet aDataSet,
[in] ULONG  aChannelIndex,
[in] VARIANT  aSize 
)

Apply a median filter to the selected channel.

Parameters:
aDataSet [in], [out] The dataset
aChannelIndex [in] Index of channel to be processed.
aSize [in] The size in x, y and z
 %% The following MATLAB code applies a median to the selected channel.
 %% Caution: this will directly replace the current dataset with the filtered one in vImarisApplication.mDataSet.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aChannelIndex=0;
 aSize=[5 5 5];
 vImarisApplication.mImageProcessing.MedianFilterChannel(aDataSetIn,aChannelIndex,aSize);
 
HRESULT IImageProcessing::MedianFilterDataSet ( [in] IDataSet aDataSetIn,
[in] VARIANT  aSize,
[out, retval] IDataSet **  aDataSetOut 
)

Apply a median filter to the whole dataset.

Parameters:
aDataSetIn [in] The source dataset
aSize [in] The size in x, y and z
aDataSetOut [out] The destination dataset
 %% The following MATLAB code applies a median filter to the whole dataset.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aSize=[5 5 5];
 aDataSetOut=vImarisApplication.mImageProcessing.MedianFilterDataSet(aDataSetIn,aSize);
 %% To replace current dataset with the filtered one, use the following:
 vImarisApplication.mDataSet=aDataSetOut;
 
HRESULT IImageProcessing::NormalizeLayersChannel ( [in] IDataSet aDataSet,
[in] ULONG  aChannelIndex 
)

Normalize layers for the selected channel.

Parameters:
aDataSet [in], [out] The dataset
aChannelIndex [in] Index of channel to be processed
 %% The following MATLAB code normalizes layers for the selected channel.
 %% Caution: this will directly replace the current dataset with the normalized one in vImarisApplication.mDataSet.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aChannelIndex=0;
 vImarisApplication.mImageProcessing.NormalizeLayersChannel(aDataSetIn,aChannelIndex);
 
HRESULT IImageProcessing::NormalizeLayersDataSet ( [in] IDataSet aDataSetIn,
[out, retval] IDataSet **  aDataSetOut 
)

Normalize layers for the whole dataset.

Parameters:
aDataSetIn [in] The source dataset
aDataSetOut [out] The destination dataset
 %% The following MATLAB code normalizes layers for the whole dataset.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aDataSetOut=vImarisApplication.mImageProcessing.NormalizeLayersDataSet(aDataSetIn);
 %% To replace current dataset with the normalized one, use the following:
 vImarisApplication.mDataSet=aDataSetOut;
 
HRESULT IImageProcessing::Shift3DChannel ( [in] IDataSet aDataSet,
[in] ULONG  aChannelIndex,
[in] LONG  aShiftX,
[in] LONG  aShiftY,
[in] LONG  aShiftZ 
)

Shift selected channel along a Shift Vector.

Parameters:
aDataSet [in], [out] The dataset (IN/OUT)
aChannelIndex [in] Index of channel to be processed.
aShiftX [in] Shift the shift in pixel in +/- X direction
aShiftY [in] Shift the shift in pixel in +/- Y direction
aShiftZ [in] Shift the shift in pixel in +/- Z direction
 %% The following MATLAB code shifts the selected channel along a Shift vector
 %% Caution: this will directly replace the current dataset with the shifted one in vImarisApplication.mDataSet.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aChannelIndex=1;
 aShiftX=1;
 aShiftY=2;
 aShiftZ=-1;
 vImarisApplication.mImageProcessing.Shift3DChannel(aDataSetIn,aChannelIndex,aShiftX,aShiftY,aShiftZ);
 
HRESULT IImageProcessing::Shift3DDataSet ( [in] IDataSet aDataSetIn,
[in] LONG  aShiftX,
[in] LONG  aShiftY,
[in] LONG  aShiftZ,
[out, retval] IDataSet **  aDataSetOut 
)

Shift the whole dataset along a Shift Vector.

Parameters:
aDataSetIn The source dataset
aShiftX [in] Shift the shift in pixel in +/- X direction
aShiftY [in] Shift the shift in pixel in +/- Y direction
aShiftZ [in] Shift the shift in pixel in +/- Z direction
aDataSetOut [out] The destination dataset
 %% The following MATLAB code shifts the whole dataset along a Shift vector
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aShiftX=1;
 aShiftY=2;
 aShiftZ=-1;
 aDataSetOut=vImarisApplication.mImageProcessing.Shift3DDataSet(aDataSetIn,aShiftX,aShiftY,aShiftZ);
 %% To replace current dataset with the shifted one, use the following:
 vImarisApplication.mDataSet=aDataSetOut;
 
HRESULT IImageProcessing::ShortestPath ( [in] IDataSet aDataSet,
[in] ULONG  aTimeIndex,
[in] ULONG  aChannelIndex,
[in] VARIANT  aStartPositions,
[out, retval] VARIANT *  aPositionsXYZ 
)

Compute a gradient descent path from the starting positions "aStartPositions" until a local minimum or an intensity value of zero is reached. The result "aPositionsXYZ" contains a path (list of vertices) for each starting position.

Parameters:
aDataSet [in] The source dataset
aTimeIndex [in] Time index to be processed.
aChannelIndex [in] Index of channel to be processed.
aStartPositions [in] Vector of 3D start positions
aPositionsXYZ [out]
 %% The following MATLAB code computes a gradient descent path for the selected channel and time point.
 aDataSet=vImarisApplication.mDataSet; %% Current dataset
 aTimeIndex=0;
 aChannelIndex=0;
 aStartPositions=[100 100 100];
 aPositionsXYZ=vImarisApplication.mImageProcessing.ShortestPath(aDataSet,aTimePosition,aChannelIndex,aStartPositions);
 
HRESULT IImageProcessing::SubtractBackgroundChannel ( [in] IDataSet aDataSet,
[in] ULONG  aChannelIndex,
[in] FLOAT  aSigma 
)

Filter the selected channel with a Gaussian of width sigma and subtract that from the original

Parameters:
aDataSet [in], [out] The dataset
aChannelIndex [in] Index of channel to be processed.
aSigma [in] The width of the filter.
 %% The following MATLAB code subtracts a filtered version of the selected channel from the selected channel itself.
 %% Caution: this will directly replace the current dataset with the filtered one in vImarisApplication.mDataSet.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aChannelIndex=0;
 aSigma=2.5;
 vImarisApplication.mImageProcessing.SubtractBackgroundChannel(aDataSetIn,aChannelIndex,aSigma);
 
HRESULT IImageProcessing::SubtractBackgroundDataSet ( [in] IDataSet aDataSetIn,
[in] FLOAT  aSigma,
[out, retval] IDataSet **  aDataSetOut 
)

Filter the whole dataset with a Gaussian of width sigma and subtract the filtered image from the original

Parameters:
aDataSetIn [in] The source dataset
aSigma [in] The width of the filter (float)
aDataSetOut [out] The destination dataset
 %% The following MATLAB code subtracts a filtered version of the dataset from the dataset itself
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aSigma=2.5;
 aDataSetOut=vImarisApplication.mImageProcessing.SubtractBackgroundDataSet(aDataSetIn,aSigma);
 %% To replace current dataset with the subtracted one, use the following:
 vImarisApplication.mDataSet=aDataSetOut;
 
HRESULT IImageProcessing::ThresholdBothChannel ( [in] IDataSet aDataSet,
[in] ULONG  aChannelIndex,
[in] FLOAT  aThreshold,
[in] FLOAT  aNewValueLow,
[in] FLOAT  aNewValueHigh 
)

Apply a threshold to the selected channel. Values below the threshold are set to newValueLow, values abover or equal to the threshold are set to newValueHigh.

Parameters:
aDataSet [in], [out] The dataset
aChannelIndex [in] Index of channel to be processed.
aThreshold [in] The threshold value for each channel.
aNewValueLow [in] All values below or equal the threshold are set to this value.
aNewValueHigh [in] All values above the threshold are set to this value.
 %% The following MATLAB code applies a user-defined lower and upper threshold to the selected channel.
 %% Caution: this will directly replace the current dataset with the thresholded one in vImarisApplication.mDataSet.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aChannelIndex=0;
 aNewValueLow=0;
 aNewValueHigh=1;
 vImarisApplication.mImageProcessing.ThresholdBothChannel(aDataSetIn,aChannelIndex,aThreshold,aNewValueLow,aNewValueHigh);
 
HRESULT IImageProcessing::ThresholdBothDataSet ( [in] IDataSet aDataSetIn,
[in] FLOAT  aThreshold,
[in] FLOAT  aNewValueLow,
[in] FLOAT  aNewValueHigh,
[out, retval] IDataSet **  aDataSetOut 
)

Apply a threshold to the whole dataset: values below the threshold are set to newValueLow, values above or equal to the threshold are set to newValueHigh.

Parameters:
aDataSetIn [in] The source dataset
aThreshold [in] The threshold value for each channel.
aNewValueLow [in] All values below or equal the threshold are set to this value.
aNewValueHigh [in] All values above the threshold are set to this value.
aDataSetOut [out] The thresholded dataset
 %% The following MATLAB code applies user-defined threshold to the selected channel.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aThreshold=128;
 aNewValueLow=0;
 aNewValueHigh=1;
 aDataSetOut=vImarisApplication.mImageProcessing.ThresholdBothDataSet(aDataSetIn,aThreshold,aNewValueLow,aNewValueHigh);
 %% To replace current dataset with the thresholded one, use the following:
 vImarisApplication.mDataSet=aDataSetOut;
 
HRESULT IImageProcessing::ThresholdChannel ( [in] IDataSet aDataSet,
[in] ULONG  aChannelIndex,
[in] FLOAT  aThreshold,
[in] FLOAT  aNewValue 
)

Apply a lower threshold to the selected channel. Values below the threshold are set to aNewValue.

Parameters:
aDataSet [In], [out] The dataset (is modified in place)
aChannelIndex [in] Index of channel to be processed.
aThreshold [in] The threshold value.
aNewValue [in] All values below the threshold are set to this value.
 %% The following MATLAB code applies a user-defined lower threshold to the selected channel.
 %% Caution: this will directly replace the current dataset with the thresholded one in vImarisApplication.mDataSet.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aChannelIndex=0;
 aThreshold=128;
 vImarisApplication.mImageProcessing.ThresholdChannel(aDataSetIn,aChannelIndex,aThreshold,aNewValue);
 
HRESULT IImageProcessing::ThresholdDataSet ( [in] IDataSet aDataSetIn,
[in] FLOAT  aThreshold,
[in] FLOAT  aNewValue,
[out, retval] IDataSet **  aDataSetOut 
)

Apply a lower threshold to the whole dataset. Values below the threshold are set to aNewValue.

Parameters:
aDataSetIn [In] The source dataset
aThreshold [In] The threshold value.
aNewValue [In] All values below the threshold are set to this value.
aDataSetOut [out] The thresholded dataset
 %% The following MATLAB code applies a user-defined lower threshold to the whole dataset.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aThreshold=128;
 aNewValue=0;
 aDataSetOut=vImarisApplication.mImageProcessing.ThresholdDataSet(aDataSetIn,aThreshold,aNewValue);
 %% To replace current dataset with the thresholded one, use the following:
 vImarisApplication.mDataSet=aDataSetOut;
 
HRESULT IImageProcessing::ThresholdUpperChannel ( [in] IDataSet aDataSet,
[in] ULONG  aChannelIndex,
[in] FLOAT  aThreshold,
[in] FLOAT  aNewValue 
)

Apply a upper threshold to the selected channel. Values above or equal the threshold are set to newValue.

Parameters:
aDataSet [in], [out] The dataset (IN/OUT)
aChannelIndex [in] Index of channel to be processed.
aThreshold [in] The threshold value.
aNewValue [in] All values above or equal the threshold are set to this value.
 %% The following MATLAB code applies a user-defined upper threshold to the selected channel.
 %% Caution: this will directly replace the current dataset with the thresholded one in vImarisApplication.mDataSet.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aChannelIndex=0;
 aThreshold=128;
 vImarisApplication.mImageProcessing.ThresholdUpperChannel(aDataSetIn,aChannelIndex,aThreshold,aNewValue);
 
HRESULT IImageProcessing::ThresholdUpperDataSet ( [in] IDataSet aDataSetIn,
[in] FLOAT  aThreshold,
[in] FLOAT  aNewValue,
[out, retval] IDataSet **  aDataSetOut 
)

Apply a upper threshold to the whole dataset. Values above or equal to the threshold are set to newValue.

Parameters:
aDataSetIn [in] The dource dataset
aThreshold [in] The threshold value.
aNewValue [in] All values above or equal the threshold are set to this value.
aDataSetOut [out] The thresholded dataset
 %% The following MATLAB code applies a user-defined upper threshold to the whole dataset.
 aDataSetIn=vImarisApplication.mDataSet; %% Current dataset
 aThreshold=128;
 aNewValue=0;
 aDataSetOut=vImarisApplication.mImageProcessing.ThresholdUpperDataSet(aDataSetIn,aThreshold,aNewValue);
 %% To replace current dataset with the thresholded one, use the following:
 vImarisApplication.mDataSet=aDataSetOut;
 
HRESULT IImageProcessing::TrackSpotsAutoregressiveMotion ( [in] ISpots aSpots,
[in] FLOAT  aMaximalDistance,
[in] INT  aGapSize,
[in] BSTR  aTrackFiltersString,
[out, retval] ISpots **  aTrackedSpots 
)

TrackSpotsBrownianMotion, TrackSpotsAutoregressiveMotion, TrackSpotsAutoregressiveMotionExpert, TrackSpotsConnectedComponents replaces CalculateTracks, implemented for bpPointsViewer.

Example of aTrackFiltersString: '"Track Duration" above 6.799 s'

HRESULT IImageProcessing::TrackSpotsAutoregressiveMotionExpert ( [in] ISpots aSpots,
[in] FLOAT  aMaximalDistance,
[in] INT  aGapSize,
[in] FLOAT  aIntensityWeight,
[in] BSTR  aTrackFiltersString,
[out, retval] ISpots **  aTrackedSpots 
)

TrackSpotsBrownianMotion, TrackSpotsAutoregressiveMotion, TrackSpotsAutoregressiveMotionExpert, TrackSpotsConnectedComponents replaces CalculateTracks, implemented for bpPointsViewer.

Example of aTrackFiltersString: '"Track Duration" above 6.799 s'

HRESULT IImageProcessing::TrackSpotsBrownianMotion ( [in] ISpots aSpots,
[in] FLOAT  aMaximalDistance,
[in] INT  aGapSize,
[in] BSTR  aTrackFiltersString,
[out, retval] ISpots **  aTrackedSpots 
)

TrackSpotsBrownianMotion, TrackSpotsAutoregressiveMotion, TrackSpotsAutoregressiveMotionExpert, TrackSpotsConnectedComponents replaces CalculateTracks, implemented for bpPointsViewer.

Example of aTrackFiltersString: '"Track Duration" above 6.799 s'

HRESULT IImageProcessing::TrackSpotsConnectedComponents ( [in] ISpots aSpots,
[in] BSTR  aTrackFiltersString,
[out, retval] ISpots **  aTrackedSpots 
)

TrackSpotsBrownianMotion, TrackSpotsAutoregressiveMotion, TrackSpotsAutoregressiveMotionExpert, TrackSpotsConnectedComponents replaces CalculateTracks, implemented for bpPointsViewer.

Example of aTrackFiltersString: '"Track Duration" above 6.799 s'

HRESULT IImageProcessing::TrackSurfacesAutoregressiveMotion ( [in] ISurfaces aSurfaces,
[in] FLOAT  aMaximalDistance,
[in] INT  aGapSize,
[in] BSTR  aTrackFiltersString,
[out, retval] ISurfaces **  aTrackedSurfaces 
)

TrackSurfacesBrownianMotion, TrackSurfacesAutoregressiveMotion, TrackSurfacesAutoregressiveMotionExpert, TrackSurfacesConnectedComponents replaces CalculateTracks, implemented for bpPointsViewer.

Example of aTrackFiltersString: '"Track Duration" above 6.799 s'

HRESULT IImageProcessing::TrackSurfacesAutoregressiveMotionExpert ( [in] ISurfaces aSurfaces,
[in] FLOAT  aMaximalDistance,
[in] INT  aGapSize,
[in] FLOAT  aIntensityWeight,
[in] BSTR  aTrackFiltersString,
[out, retval] ISurfaces **  aTrackedSurfaces 
)

TrackSurfacesBrownianMotion, TrackSurfacesAutoregressiveMotion, TrackSurfacesAutoregressiveMotionExpert, TrackSurfacesConnectedComponents replaces CalculateTracks, implemented for bpPointsViewer.

Example of aTrackFiltersString: '"Track Duration" above 6.799 s'

HRESULT IImageProcessing::TrackSurfacesBrownianMotion ( [in] ISurfaces aSurfaces,
[in] FLOAT  aMaximalDistance,
[in] INT  aGapSize,
[in] BSTR  aTrackFiltersString,
[out, retval] ISurfaces **  aTrackedSurfaces 
)

TrackSurfacesBrownianMotion, TrackSurfacesAutoregressiveMotion, TrackSurfacesAutoregressiveMotionExpert, TrackSurfacesConnectedComponents replaces CalculateTracks, implemented for bpSurfacesViewer.

Example of aTrackFiltersString: '"Track Duration" above 6.799 s'

HRESULT IImageProcessing::TrackSurfacesConnectedComponents ( [in] ISurfaces aSurfaces,
[in] BSTR  aTrackFiltersString,
[out, retval] ISurfaces **  aTrackedSurfaces 
)

TrackSurfacesBrownianMotion, TrackSurfacesAutoregressiveMotion, TrackSurfacesAutoregressiveMotionExpert, TrackSurfacesConnectedComponents replaces CalculateTracks, implemented for bpPointsViewer.

Example of aTrackFiltersString: '"Track Duration" above 6.799 s'


The documentation for this interface was generated from the following file:

Generated on Mon Jun 14 20:23:41 2010 for Imaris 7.1 COM Interface by  doxygen 1.6.1