IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit

Registration of the slices in a 3D stack using grey signed features and taking into account a cumulative angular bias. More...

IPSDKIPLREGISTRATION_API ipsdk::imaproc::registration::StackRegistrationResult ipsdk::imaproc::registration::stackRegistrationImg (const image::ImageConstPtr &pInImg3d)
 wrapper function for Registration of the slices in a 3D stack using grey signed features and taking into account a cumulative angular bias More...
 
IPSDKIPLREGISTRATION_API ipsdk::imaproc::attr::WarpMotionTransform2dCollPtr ipsdk::imaproc::registration::stackRegistrationImg (const image::ImageConstPtr &pInImg3d, const ipsdk::image::ImagePtr &pOutImg)
 wrapper function for Registration of the slices in a 3D stack using grey signed features and taking into account a cumulative angular bias More...
 
IPSDKIPLREGISTRATION_API ipsdk::imaproc::registration::StackRegistrationResult ipsdk::imaproc::registration::stackRegistrationImg (const image::ImageConstPtr &pInImg3d, const ipsdk::ipReal32 theta, const ipsdk::ipReal64 maxTranslation)
 wrapper function for Registration of the slices in a 3D stack using grey signed features and taking into account a cumulative angular bias More...
 
IPSDKIPLREGISTRATION_API ipsdk::imaproc::attr::WarpMotionTransform2dCollPtr ipsdk::imaproc::registration::stackRegistrationImg (const image::ImageConstPtr &pInImg3d, const ipsdk::ipReal32 theta, const ipsdk::ipReal64 maxTranslation, const ipsdk::image::ImagePtr &pOutImg)
 wrapper function for Registration of the slices in a 3D stack using grey signed features and taking into account a cumulative angular bias More...
 
IPSDKIPLREGISTRATION_API ipsdk::image::ImagePtr ipsdk::imaproc::registration::stackRegistrationImg (const image::ImageConstPtr &pInImg3d, const ipsdk::imaproc::attr::WarpMotionTransform2dCollConstPtr &pTransformColl)
 wrapper function for Registration of the slices in a 3D stack using grey signed features and taking into account a cumulative angular bias More...
 
IPSDKIPLREGISTRATION_API void ipsdk::imaproc::registration::stackRegistrationImg (const image::ImageConstPtr &pInImg3d, const ipsdk::imaproc::attr::WarpMotionTransform2dCollConstPtr &pTransformColl, const ipsdk::image::ImagePtr &pOutImg)
 wrapper function for Registration of the slices in a 3D stack using grey signed features and taking into account a cumulative angular bias More...
 
IPSDKIPLREGISTRATION_API ipsdk::imaproc::registration::PlanIndexedStackRegistrationResult ipsdk::imaproc::registration::multiSlice_stackRegistrationImg (const image::ImageConstPtr &pInImg3d)
 wrapper function for Registration of the slices in a 3D stack using grey signed features and taking into account a cumulative angular bias More...
 
IPSDKIPLREGISTRATION_API ipsdk::imaproc::attr::PlanIndexedWarpMotionTransform2dCollPtr ipsdk::imaproc::registration::multiSlice_stackRegistrationImg (const image::ImageConstPtr &pInImg3d, const ipsdk::image::ImagePtr &pOutImg)
 wrapper function for Registration of the slices in a 3D stack using grey signed features and taking into account a cumulative angular bias More...
 
IPSDKIPLREGISTRATION_API ipsdk::imaproc::registration::PlanIndexedStackRegistrationResult ipsdk::imaproc::registration::multiSlice_stackRegistrationImg (const image::ImageConstPtr &pInImg3d, const ipsdk::ipReal32 theta, const ipsdk::ipReal64 maxTranslation)
 wrapper function for Registration of the slices in a 3D stack using grey signed features and taking into account a cumulative angular bias More...
 
IPSDKIPLREGISTRATION_API ipsdk::imaproc::attr::PlanIndexedWarpMotionTransform2dCollPtr ipsdk::imaproc::registration::multiSlice_stackRegistrationImg (const image::ImageConstPtr &pInImg3d, const ipsdk::ipReal32 theta, const ipsdk::ipReal64 maxTranslation, const ipsdk::image::ImagePtr &pOutImg)
 wrapper function for Registration of the slices in a 3D stack using grey signed features and taking into account a cumulative angular bias More...
 
IPSDKIPLREGISTRATION_API ipsdk::image::ImagePtr ipsdk::imaproc::registration::multiSlice_stackRegistrationImg (const image::ImageConstPtr &pInImg3d, const ipsdk::imaproc::attr::PlanIndexedWarpMotionTransform2dCollConstPtr &pPITransformColl)
 wrapper function for Registration of the slices in a 3D stack using grey signed features and taking into account a cumulative angular bias More...
 
IPSDKIPLREGISTRATION_API void ipsdk::imaproc::registration::multiSlice_stackRegistrationImg (const image::ImageConstPtr &pInImg3d, const ipsdk::imaproc::attr::PlanIndexedWarpMotionTransform2dCollConstPtr &pPITransformColl, const ipsdk::image::ImagePtr &pOutImg)
 wrapper function for Registration of the slices in a 3D stack using grey signed features and taking into account a cumulative angular bias More...
 

Detailed Description

Registration of the slices in a 3D stack using grey signed features and taking into account a cumulative angular bias.

In some applications, the aquisition of a 3D stack is subject to the device vibrations, which yields to unaligned information along the 3D dataset. This algorithm registers all slices of a 3D stack to correct such a spatial variation considered as a simple translation. It performs the registration by using Extract grey signed features 2d and Registration of grey signed features 2d. The outputs are the registered 3D stack and the estimated transforms applied to each slices. Please, note that the resulting transforms have a decimal precision but the actually applied transform parameters are truncated.

If a transform collection has already been estimated, it is possible to provide it to directly perform the registration without estimating the transform parameters.

The principle is illustrated in the figure below:

stackRegistrationImg.png

A cumulative offset may appear along the stack, as showed in the figure below. The input parameter theta can be used to compensate this shift.

Attributes description

Attribute description for algorithm :

Name ToolTip Default Initializer
ipsdk::imaproc::attr::InImg3d [Input] 3d image for operation X
ipsdk::imaproc::attr::InOptTheta [Input Optional] 2d orientation for processing operation X
ipsdk::imaproc::attr::InOptMaxTranslation [Input Optional] Maximum translation allowed in a geometric transform (in absolute value) X
ipsdk::imaproc::attr::InOptInterpolationPolicy [Input Optional] interpolation policy used to extract local data from image X
ipsdk::imaproc::attr::InOptCorrelationThreshold2d [Input Optional] threshold on 2d correlation scores used during pairs matching X
ipsdk::imaproc::attr::InOptRegistrationEstimationConfig [Input Optional] configuration for robust estimation part of features registration X
ipsdk::imaproc::attr::InOptPIWarpMotionTransform2dColl [Input Optional] plan indexed collection of 2d geometric transform X
ipsdk::imaproc::attr::OutPIWarpMotionTransform2dColl [Output] plan indexed collection of 2d geometric transform ipsdk::imaproc::fromImageButVolume (_pOutPIWarpMotionTransform2dColl, _pInImg3d)
ipsdk::imaproc::attr::OutWk1RealImg [Output] Temporary working image for algorithm duplicateInOut (_pOutWk1RealImg, _pInImg3d, ipsdk::image::eImageBufferType::eIBT_Real32)
ipsdk::imaproc::attr::OutWk2RealImg [Output] Temporary working image for algorithm duplicateInOut (_pOutWk2RealImg, _pInImg3d, ipsdk::image::eImageBufferType::eIBT_Real32)
ipsdk::imaproc::attr::OutWk3RealImg [Output] Temporary working image for algorithm duplicateInOut (_pOutWk3RealImg, _pInImg3d, ipsdk::image::eImageBufferType::eIBT_Real32)
ipsdk::imaproc::attr::OutWk4RealImg [Output] Temporary working image for algorithm duplicateInOut (_pOutWk4RealImg, _pInImg3d, ipsdk::image::eImageBufferType::eIBT_Real32)
ipsdk::imaproc::attr::OutImg [Output] image for processing operation ipsdk::imaproc::duplicateInOut (_pOutImg, _pInImg3d)

Global Rule description

Global rule description for algorithm :
ipsdk::imaproc::matchSize (_pInImg3d,_pOutImg)

Example of Python code :

Example imports

import PyIPSDK
import PyIPSDK.IPSDKIPLRegistration as registration

Code Example

# opening of input image
inImg = PyIPSDK.loadTiffImageFile(inputImgPath)
# statistics measurement
outImg, transforms = registration.stackRegistrationImg(inImg, theta, maxTranslation)

Example of C++ code :

Example informations

Associated library

IPSDKIPLRegistration

Header file

Code Example

// Simple call with transform parameter estimation
StackRegistrationResult result = stackRegistrationImg(pInImg, theta, maxTranslation);
// Simple call with provided transform parameters
FileReadResult fRes = readFromXmlFile(dataPath);
WarpMotionTransform2dCollPtr pTransforms = boost::static_pointer_cast<WarpMotionTransform2dColl>(fRes._pObject);
ImagePtr pOutImg = stackRegistrationImg(pInImg, pTransforms);
// Multi-slice call
PlanIndexedStackRegistrationResult resultPI = multiSlice_stackRegistrationImg(pInImg_multiSlice, theta, maxTranslation);
See also
StackRegistrationImgLvl1
StackRegistrationImgLvl2

Function Documentation

◆ stackRegistrationImg() [1/6]

IPSDKIPLREGISTRATION_API ipsdk::imaproc::registration::StackRegistrationResult ipsdk::imaproc::registration::stackRegistrationImg ( const image::ImageConstPtr pInImg3d)

wrapper function for Registration of the slices in a 3D stack using grey signed features and taking into account a cumulative angular bias

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ multiSlice_stackRegistrationImg() [1/6]

IPSDKIPLREGISTRATION_API ipsdk::imaproc::registration::PlanIndexedStackRegistrationResult ipsdk::imaproc::registration::multiSlice_stackRegistrationImg ( const image::ImageConstPtr pInImg3d)

wrapper function for Registration of the slices in a 3D stack using grey signed features and taking into account a cumulative angular bias

Note
This wrapper can be used with multi slice input images to retrieve by slice results
Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ stackRegistrationImg() [2/6]

IPSDKIPLREGISTRATION_API ipsdk::imaproc::attr::WarpMotionTransform2dCollPtr ipsdk::imaproc::registration::stackRegistrationImg ( const image::ImageConstPtr pInImg3d,
const ipsdk::image::ImagePtr pOutImg 
)

wrapper function for Registration of the slices in a 3D stack using grey signed features and taking into account a cumulative angular bias

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ stackRegistrationImg() [3/6]

IPSDKIPLREGISTRATION_API ipsdk::imaproc::registration::StackRegistrationResult ipsdk::imaproc::registration::stackRegistrationImg ( const image::ImageConstPtr pInImg3d,
const ipsdk::ipReal32  theta,
const ipsdk::ipReal64  maxTranslation 
)

wrapper function for Registration of the slices in a 3D stack using grey signed features and taking into account a cumulative angular bias

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ stackRegistrationImg() [4/6]

IPSDKIPLREGISTRATION_API ipsdk::imaproc::attr::WarpMotionTransform2dCollPtr ipsdk::imaproc::registration::stackRegistrationImg ( const image::ImageConstPtr pInImg3d,
const ipsdk::ipReal32  theta,
const ipsdk::ipReal64  maxTranslation,
const ipsdk::image::ImagePtr pOutImg 
)

wrapper function for Registration of the slices in a 3D stack using grey signed features and taking into account a cumulative angular bias

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ stackRegistrationImg() [5/6]

IPSDKIPLREGISTRATION_API ipsdk::image::ImagePtr ipsdk::imaproc::registration::stackRegistrationImg ( const image::ImageConstPtr pInImg3d,
const ipsdk::imaproc::attr::WarpMotionTransform2dCollConstPtr pTransformColl 
)

wrapper function for Registration of the slices in a 3D stack using grey signed features and taking into account a cumulative angular bias

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ stackRegistrationImg() [6/6]

IPSDKIPLREGISTRATION_API void ipsdk::imaproc::registration::stackRegistrationImg ( const image::ImageConstPtr pInImg3d,
const ipsdk::imaproc::attr::WarpMotionTransform2dCollConstPtr pTransformColl,
const ipsdk::image::ImagePtr pOutImg 
)

wrapper function for Registration of the slices in a 3D stack using grey signed features and taking into account a cumulative angular bias

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ multiSlice_stackRegistrationImg() [2/6]

IPSDKIPLREGISTRATION_API ipsdk::imaproc::attr::PlanIndexedWarpMotionTransform2dCollPtr ipsdk::imaproc::registration::multiSlice_stackRegistrationImg ( const image::ImageConstPtr pInImg3d,
const ipsdk::image::ImagePtr pOutImg 
)

wrapper function for Registration of the slices in a 3D stack using grey signed features and taking into account a cumulative angular bias

Note
This wrapper can be used with multi slice input images to retrieve by slice results
Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ multiSlice_stackRegistrationImg() [3/6]

IPSDKIPLREGISTRATION_API ipsdk::imaproc::registration::PlanIndexedStackRegistrationResult ipsdk::imaproc::registration::multiSlice_stackRegistrationImg ( const image::ImageConstPtr pInImg3d,
const ipsdk::ipReal32  theta,
const ipsdk::ipReal64  maxTranslation 
)

wrapper function for Registration of the slices in a 3D stack using grey signed features and taking into account a cumulative angular bias

Note
This wrapper can be used with multi slice input images to retrieve by slice results
Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ multiSlice_stackRegistrationImg() [4/6]

IPSDKIPLREGISTRATION_API ipsdk::imaproc::attr::PlanIndexedWarpMotionTransform2dCollPtr ipsdk::imaproc::registration::multiSlice_stackRegistrationImg ( const image::ImageConstPtr pInImg3d,
const ipsdk::ipReal32  theta,
const ipsdk::ipReal64  maxTranslation,
const ipsdk::image::ImagePtr pOutImg 
)

wrapper function for Registration of the slices in a 3D stack using grey signed features and taking into account a cumulative angular bias

Note
This wrapper can be used with multi slice input images to retrieve by slice results
Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ multiSlice_stackRegistrationImg() [5/6]

IPSDKIPLREGISTRATION_API ipsdk::image::ImagePtr ipsdk::imaproc::registration::multiSlice_stackRegistrationImg ( const image::ImageConstPtr pInImg3d,
const ipsdk::imaproc::attr::PlanIndexedWarpMotionTransform2dCollConstPtr pPITransformColl 
)

wrapper function for Registration of the slices in a 3D stack using grey signed features and taking into account a cumulative angular bias

Note
This wrapper can be used with multi slice input images to retrieve by slice results
Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ multiSlice_stackRegistrationImg() [6/6]

IPSDKIPLREGISTRATION_API void ipsdk::imaproc::registration::multiSlice_stackRegistrationImg ( const image::ImageConstPtr pInImg3d,
const ipsdk::imaproc::attr::PlanIndexedWarpMotionTransform2dCollConstPtr pPITransformColl,
const ipsdk::image::ImagePtr pOutImg 
)

wrapper function for Registration of the slices in a 3D stack using grey signed features and taking into account a cumulative angular bias

Note
This wrapper can be used with multi slice input images to retrieve by slice results
Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure