IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit

local 3d image kurtosis computation More...

IPSDKIPLSTATS_API image::ImagePtr ipsdk::imaproc::stats::kurtosis3dImg (const image::ImageConstPtr &pInImg3d, const ipUInt32 inHalfKnlSizeX, const ipUInt32 inHalfKnlSizeY, const ipUInt32 inHalfKnlSizeZ)
 wrapper function for Local 3d image kurtosis computation More...
 
IPSDKIPLSTATS_API void ipsdk::imaproc::stats::kurtosis3dImg (const image::ImageConstPtr &pInImg3d, const ipUInt32 inHalfKnlSizeX, const ipUInt32 inHalfKnlSizeY, const ipUInt32 inHalfKnlSizeZ, const image::ImagePtr &pOutImg)
 wrapper function for Local 3d image kurtosis computation More...
 

Detailed Description

local 3d image kurtosis computation

This algorithm computes for each pixel of output image associated local kurtosis on a parallelepipedic neighbourhood of input image.

Given an input image $InImg$ and parallelepipedic kernel half sizes $N_x = InHalfKnlSizeX$, $N_y = InHalfKnlSizeY$ and $N_z = InHalfKnlSizeZ$, output image values are given by :

\[ OutImg[x, y, z] = \dfrac {\sum_{o_{z}=-N_z}^{N_z}{\sum_{o_{y}=-N_y}^{N_y}{\sum_{o_{x}=N_x}^{N_x}{(InImg[x, y, z]-\bar{M}[x, y, z])^4}}}-3(\sum_{o_{z}=-N_z}^{N_z}{\sum_{o_{y}=-N_y}^{N_y}{\sum_{o_{x}=N_x}^{N_x}{(InImg[x, y, z]-\bar{M}[x, y, z])^2}}})^2} {[\sum_{o_{z}=-N_z}^{N_z}{\sum_{o_{y}=-N_y}^{N_y}{\sum_{o_{x}=N_x}^{N_x}{(InImg[x, y, z]-\bar{M}[x, y, z])^2}}}]^2} \]

where

\[ \bar{M}[x, y, z] = \sum_{o_{z}=-N_z}^{N_z}{\sum_{o_{y}=-N_y}^{N_y}{\sum_{o_{x}=N_x}^{N_x}{InImg[x, y, z]}}} \]

See also
http://en.wikipedia.org/wiki/Kurtosis

Here is an example of a Kurtosis computation applied on a 8 bits grey level image with $InHalfKnlSizeX = InHalfKnlSizeY = InHalfKnlSizeZ = 7$:

kurtosis3dImg.png

Attributes description

Attribute description for algorithm :

Name ToolTip Default Initializer
ipsdk::imaproc::attr::InImg3d [Input] 3d image for operation X
ipsdk::imaproc::attr::InHalfKnlSizeX [Input] half kernel size along X axis for operation X
ipsdk::imaproc::attr::InHalfKnlSizeY [Input] half kernel size along Y axis for operation X
ipsdk::imaproc::attr::InHalfKnlSizeZ [Input] half kernel size along Z axis for operation X
ipsdk::imaproc::attr::OutRealImg [Output] image for processing operation (data contained in image buffer are reals) ipsdk::imaproc::duplicateInOut (_pOutRealImg, _pInImg3d, image::eImageBufferType::eIBT_Real32)

Global Rule description

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

Example of Python code :

Example imports

import PyIPSDK
import PyIPSDK.IPSDKIPLStats as stats

Code Example

# opening of input image
inImg = PyIPSDK.loadTiffImageFile(inputImgPath)
# kurtosis 3d image computation
outImg = stats.kurtosis3dImg(inImg, 3, 3, 3)

Example of C++ code :

Example informations

Associated library

IPSDKIPLStats

Header file

Code Example

// compute kurtosis on input image
ImagePtr pOutImg = kurtosis3dImg(pInImg, inHalfKnlSizeX, inHalfKnlSizeY, inHalfKnlSizeZ);
See also
Kurtosis3dImgLvl1
Kurtosis3dImgLvl2
Kurtosis3dImgLvl3

Function Documentation

◆ kurtosis3dImg() [1/2]

IPSDKIPLSTATS_API image::ImagePtr ipsdk::imaproc::stats::kurtosis3dImg ( const image::ImageConstPtr pInImg3d,
const ipUInt32  inHalfKnlSizeX,
const ipUInt32  inHalfKnlSizeY,
const ipUInt32  inHalfKnlSizeZ 
)

wrapper function for Local 3d image kurtosis computation

Exceptions
ipsdk::imaproc::util::IPSDKIPLUtilityExceptionon failure

◆ kurtosis3dImg() [2/2]

IPSDKIPLSTATS_API void ipsdk::imaproc::stats::kurtosis3dImg ( const image::ImageConstPtr pInImg3d,
const ipUInt32  inHalfKnlSizeX,
const ipUInt32  inHalfKnlSizeY,
const ipUInt32  inHalfKnlSizeZ,
const image::ImagePtr pOutImg 
)

wrapper function for Local 3d image kurtosis computation

Exceptions
ipsdk::imaproc::util::IPSDKIPLUtilityExceptionon failure