IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit

algorithm allowing to invert 3d image intensity More...

IPSDKIPLINTENSITYTRANSFORM_API image::ImagePtr ipsdk::imaproc::itrans::invert3dImg (const image::ImageConstPtr &pInImg3d)
 wrapper function for algorithm allowing to invert 3d image intensity More...
 
IPSDKIPLINTENSITYTRANSFORM_API void ipsdk::imaproc::itrans::invert3dImg (const image::ImageConstPtr &pInImg3d, const image::ImagePtr &pOutImg)
 wrapper function for algorithm allowing to invert 3d image intensity More...
 

Detailed Description

algorithm allowing to invert 3d image intensity

Given an input image $InImg$, output image $OutImg$ as follow :

\[ OutImg[i] = K - InImg[i] \]

where $K = \min\{InImg\} + \max\{InImg\}$ is defined from input image extrema.

This transformation allows to preserve image range since :

During this transformation, image histogram is mirrored around mean input range $\frac{\min\{InImg\} + \max\{InImg\}}{2}$.

See Greyscale inversion of 2d image for an illustration of a greyscale inversion of 2d a image.

In this case algorithm is applied 3d bloc by 3d bloc (ie image extrema are computed and applied 3d bloc by 3d bloc), for a 2d version of this algorithm see Greyscale inversion of 2d image.

Attributes description

Attribute description for algorithm :

Name ToolTip Default Initializer
ipsdk::imaproc::attr::InImg3d [Input] 3d image for operation X
ipsdk::imaproc::attr::OutImg [Output] image for processing operation duplicateInOut (_pOutImg, _pInImg3d)

Global Rule description

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

Example of Python code :

Example imports

import PyIPSDK
import PyIPSDK.IPSDKIPLIntensityTransform as itrans

Code Example

# opening of input images
inImg = PyIPSDK.loadTiffImageFile(inputImgPath)
# greyscale inversion of input image
outImg = itrans.invert3dImg(inImg)

Example of C++ code :

Example informations

Associated library

IPSDKIPLIntensityTransform

Header file

Code Example

// opening of input image
ImagePtr pInImg3d = loadTiffImageFile(inputGreyImgPath, eTiffDirectoryMode::eTDM_Volume);
// greyscale inversion of input image
ImagePtr pOutImg = invert3dImg(pInImg3d);
See also
Invert3dImgLvl1
Invert3dImgLvl2

Function Documentation

◆ invert3dImg() [1/2]

IPSDKIPLINTENSITYTRANSFORM_API image::ImagePtr ipsdk::imaproc::itrans::invert3dImg ( const image::ImageConstPtr pInImg3d)

wrapper function for algorithm allowing to invert 3d image intensity

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ invert3dImg() [2/2]

IPSDKIPLINTENSITYTRANSFORM_API void ipsdk::imaproc::itrans::invert3dImg ( const image::ImageConstPtr pInImg3d,
const image::ImagePtr pOutImg 
)

wrapper function for algorithm allowing to invert 3d image intensity

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure