IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
Extract grey signed features 3d

algorithm allowing to extract 3d features associated to a grey signature from an image More...

IPSDKIPLREGISTRATION_API attr::Features3dGreySignaturePtr ipsdk::imaproc::registration::extractGreySignedFeatures3d (const image::ImageConstPtr &pInImg3d, const ipUInt32 inNbFeatures)
 wrapper function for algorithm allowing to extract 3d features associated to a grey signature from an image More...
 
IPSDKIPLREGISTRATION_API attr::Features3dGreySignaturePtr ipsdk::imaproc::registration::extractGreySignedFeatures3d (const image::ImageConstPtr &pInImg3d, const ipReal32 inGradStdDev, const ipUInt32 inNbFeatures, const ipUInt32 inFeaturesDist)
 wrapper function for algorithm allowing to extract 3d features associated to a grey signature from an image More...
 
IPSDKIPLREGISTRATION_API attr::Features3dGreySignaturePtr ipsdk::imaproc::registration::extractGreySignedFeatures3d (const image::ImageConstPtr &pInImg3d, const ipReal32 inGradStdDev, const attr::GaussianCoverageConstPtr &pInOptGradientGaussianCoverage, const ipsdk::imaproc::attr::CornerDetectionParamsConstPtr &pInCornerDetectionParams, const ipUInt32 inNbFeatures, const ipUInt32 inFeaturesDistX, const ipUInt32 inFeaturesDistY, const ipsdk::imaproc::attr::eInterpolationPolicy &inInterpolationPolicy, const ipsdk::imaproc::attr::SamplingBallInfoConstPtr &pInSamplingBallInfo3d)
 wrapper function for algorithm allowing to extract 3d features associated to a grey signature from an image More...
 
IPSDKIPLREGISTRATION_API attr::PlanIndexedFeatures3dGreySignaturePtr ipsdk::imaproc::registration::multiSlice_extractGreySignedFeatures3d (const image::ImageConstPtr &pInImg3d, const ipUInt32 inNbFeatures)
 wrapper function for algorithm allowing to extract 3d features associated to a grey signature from an image More...
 
IPSDKIPLREGISTRATION_API attr::PlanIndexedFeatures3dGreySignaturePtr ipsdk::imaproc::registration::multiSlice_extractGreySignedFeatures3d (const image::ImageConstPtr &pInImg3d, const ipReal32 inGradStdDev, const ipUInt32 inNbFeatures, const ipUInt32 inFeaturesDist)
 wrapper function for algorithm allowing to extract 3d features associated to a grey signature from an image More...
 
IPSDKIPLREGISTRATION_API attr::PlanIndexedFeatures3dGreySignaturePtr ipsdk::imaproc::registration::multiSlice_extractGreySignedFeatures3d (const image::ImageConstPtr &pInImg3d, const ipReal32 inGradStdDev, const attr::GaussianCoverageConstPtr &pInOptGradientGaussianCoverage, const attr::CornerDetectionParamsConstPtr &pInCornerDetectionParams, const ipUInt32 inNbFeatures, const ipUInt32 inFeaturesDistX, const ipUInt32 inFeaturesDistY, const attr::eInterpolationPolicy &inInterpolationPolicy, const attr::SamplingBallInfoConstPtr &pInSamplingBallInfo3d)
 wrapper function for algorithm allowing to extract 3d features associated to a grey signature from an image More...
 

Detailed Description

algorithm allowing to extract 3d features associated to a grey signature from an image

This algorithm combines a feature detector algorithm (see Harris corner detection 3d) with a grey level feature signature algorithm allowing description of neighborhood of detected points.

Feature detector is controlled by following parameters : $InOptGradStdDev$, $InOptGradientGaussianCoverage$, $InOptCornerDetectionParams3d$, $InNbFeatures$, $InOptFeaturesDistX$, $InOptFeaturesDistY$ and $InOptFeaturesDistZ$. See Harris corner detection 3d for more informations on these parameters.

Local feature signature is computed using a "sampling ball" which is composed of rings (which are in fact spherical caps in 3d case) centered at feature point. Each spherical cap is associated to a radius, to a blurring factor (we sample blurred versions of input image $InImg$ using Gaussian Smoothing 3d algorithm) and to a number of samples regularly dispatched around sampling spherical cap. Local gauge around feature point is defined using orientation of inertia tensor main directions. Note that blurr factor usually increase with sampling ring radius. Here is a graphical illustration of a sampling ball in 2d case :

samplingBall.png

Sampling ball can be customized via parameter $InOptSamplingBallInfo3d$. All extracted values are stacked into a single "by volume" data collection $OutPIGreySignatures3d$.

Parameter $InOptInterpolationPolicy$ allows to specify an interpolation policy used during signature sampling.

An optional scale factor $InOptSignatureScaleFactor$ allows to generate comparable feature signatures for images with different scale factors (results of this algorithm are not scale invariant).

This algorithm is based on an adaptation of following work :

Nicolas Allezard, Michel Dhome, Frederic Jurie. Mise en correspondance multi-echelle. 17ieme Colloque sur le Traitement du Signal et des Images, Sep 1999, Vannes, France. Groupe d'Etudes du Traitement du Signal et des Images (GRETSI), pp.897–900, 1999.

See also
https://en.wikipedia.org/wiki/Feature_detection_(computer_vision)

Attributes description

Attribute description for algorithm :

Name ToolTip Default Initializer
ipsdk::imaproc::attr::InImg3d [Input] 3d image for operation X
ipsdk::imaproc::attr::InOptSignatureScaleFactor [Input Optional] image scale factor used during signature computation X
ipsdk::imaproc::attr::InOptGradStdDev [Input Optional] standard deviation used for gradient computation X
ipsdk::imaproc::attr::InOptGradientGaussianCoverage [Input Optional] Parameter allowing to specify a gaussian distribution coverage for processing X
ipsdk::imaproc::attr::InOptCornerDetectionParams3d [Input Optional] parameters used during corner detection process X
ipsdk::imaproc::attr::InNbFeatures [Input] target number of features to be detected by algorithm X
ipsdk::imaproc::attr::InOptFeaturesDistX [Input Optional] distance between detected features along x axis (tchebychev distance) X
ipsdk::imaproc::attr::InOptFeaturesDistY [Input Optional] distance between detected features along y axis (tchebychev distance) X
ipsdk::imaproc::attr::InOptFeaturesDistZ [Input Optional] distance between detected features along z axis (tchebychev distance) X
ipsdk::imaproc::attr::InOptInterpolationPolicy [Input Optional] interpolation policy used to extract local data from image X
ipsdk::imaproc::attr::InOptSamplingBallInfo3d [Input Optional] Parameters for used sampling ball around image points X
ipsdk::imaproc::attr::OutWk1Img [Output] Temporary working image for algorithm promoteUnary (_pOutWk1Img, _pInImg3d, ipsdk::imaproc::ePromoteUnaryType::ePUT_UpperSigned)
ipsdk::imaproc::attr::OutWk2Img [Output] Temporary working image for algorithm promoteUnary (_pOutWk2Img, _pInImg3d, ipsdk::imaproc::ePromoteUnaryType::ePUT_UpperSigned)
ipsdk::imaproc::attr::OutWk3Img [Output] Temporary working image for algorithm promoteUnary (_pOutWk3Img, _pInImg3d, ipsdk::imaproc::ePromoteUnaryType::ePUT_UpperSigned)
ipsdk::imaproc::attr::OutWk4Img [Output] Temporary working image for algorithm promoteUnary (_pOutWk4Img, _pInImg3d, ipsdk::imaproc::ePromoteUnaryType::ePUT_UpperSigned)
ipsdk::imaproc::attr::OutWk5Img [Output] Temporary working image for algorithm promoteUnary (_pOutWk5Img, _pInImg3d, ipsdk::imaproc::ePromoteUnaryType::ePUT_UpperSigned)
ipsdk::imaproc::attr::OutWk6Img [Output] Temporary working image for algorithm promoteUnary (_pOutWk6Img, _pInImg3d, ipsdk::imaproc::ePromoteUnaryType::ePUT_UpperSigned)
ipsdk::imaproc::attr::OutWk7Img [Output] Temporary working image for algorithm promoteUnary (_pOutWk7Img, _pInImg3d, ipsdk::imaproc::ePromoteUnaryType::ePUT_UpperSigned)
ipsdk::imaproc::attr::OutPIGreySignatures3d fromImageButVolume (_pOutPIGreySignatures3d, _pInImg3d)

Global Rule description

Global rule description for algorithm :
ipsdk::imaproc::matchSize (_pOutWk1Img,_pInImg3d) && 
ipsdk::imaproc::matchSizeAndType (_pOutWk1Img,_pOutWk2Img,_pOutWk3Img,_pOutWk4Img,_pOutWk5Img,_pOutWk6Img) && 
ipsdk::imaproc::matchImagePlansButVolume (_pOutPIGreySignatures3d,_pInImg3d)

Example of Python code :

Example imports

import PyIPSDK
import PyIPSDK.IPSDKIPLRegistration as registration

Code Example

# opening of input image
inImg3d = PyIPSDK.loadTiffImageFile(inputImgPath)
nbFeatures = 100
# extraction of grey signed features from image
outGreySignatures1 = registration.extractGreySignedFeatures3d(inImg3d, nbFeatures)
print("First feature found at {x=" + str(outGreySignatures1.signatureColl[0].x) +
", y=" + str(outGreySignatures1.signatureColl[0].y) +
", z=" + str(outGreySignatures1.signatureColl[0].z) + "}")

Example of C++ code :

Example informations

Associated library

IPSDKIPLRegistration

Header file

Code Example

// Load the input image
ImagePtr pInImg = loadTiffImageFile(inImgFilePath);
// extraction of grey signed features from image
Features3dGreySignaturePtr pOutGreySignatures1 = extractGreySignedFeatures3d(pInImg, 100);
See also
ExtractGreySignedFeatures3dLvl1
ExtractGreySignedFeatures3dLvl2

Function Documentation

◆ extractGreySignedFeatures3d() [1/3]

IPSDKIPLREGISTRATION_API attr::Features3dGreySignaturePtr ipsdk::imaproc::registration::extractGreySignedFeatures3d ( const image::ImageConstPtr pInImg3d,
const ipUInt32  inNbFeatures 
)

wrapper function for algorithm allowing to extract 3d features associated to a grey signature from an image

Note
These wrappers must be used with mono 3d slice (sizeC=sizeT=1) input images
Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ multiSlice_extractGreySignedFeatures3d() [1/3]

IPSDKIPLREGISTRATION_API attr::PlanIndexedFeatures3dGreySignaturePtr ipsdk::imaproc::registration::multiSlice_extractGreySignedFeatures3d ( const image::ImageConstPtr pInImg3d,
const ipUInt32  inNbFeatures 
)

wrapper function for algorithm allowing to extract 3d features associated to a grey signature from an image

Note
These wrappers can be used with multi slice input images
Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ extractGreySignedFeatures3d() [2/3]

IPSDKIPLREGISTRATION_API attr::Features3dGreySignaturePtr ipsdk::imaproc::registration::extractGreySignedFeatures3d ( const image::ImageConstPtr pInImg3d,
const ipReal32  inGradStdDev,
const ipUInt32  inNbFeatures,
const ipUInt32  inFeaturesDist 
)

wrapper function for algorithm allowing to extract 3d features associated to a grey signature from an image

Note
These wrappers must be used with mono 3d slice (sizeC=sizeT=1) input images
Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ extractGreySignedFeatures3d() [3/3]

IPSDKIPLREGISTRATION_API attr::Features3dGreySignaturePtr ipsdk::imaproc::registration::extractGreySignedFeatures3d ( const image::ImageConstPtr pInImg3d,
const ipReal32  inGradStdDev,
const attr::GaussianCoverageConstPtr pInOptGradientGaussianCoverage,
const ipsdk::imaproc::attr::CornerDetectionParamsConstPtr pInCornerDetectionParams,
const ipUInt32  inNbFeatures,
const ipUInt32  inFeaturesDistX,
const ipUInt32  inFeaturesDistY,
const ipsdk::imaproc::attr::eInterpolationPolicy inInterpolationPolicy,
const ipsdk::imaproc::attr::SamplingBallInfoConstPtr pInSamplingBallInfo3d 
)

wrapper function for algorithm allowing to extract 3d features associated to a grey signature from an image

Note
These wrappers must be used with mono 3d slice (sizeC=sizeT=1) input images
Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ multiSlice_extractGreySignedFeatures3d() [2/3]

IPSDKIPLREGISTRATION_API attr::PlanIndexedFeatures3dGreySignaturePtr ipsdk::imaproc::registration::multiSlice_extractGreySignedFeatures3d ( const image::ImageConstPtr pInImg3d,
const ipReal32  inGradStdDev,
const ipUInt32  inNbFeatures,
const ipUInt32  inFeaturesDist 
)

wrapper function for algorithm allowing to extract 3d features associated to a grey signature from an image

Note
These wrappers can be used with multi slice input images
Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ multiSlice_extractGreySignedFeatures3d() [3/3]

IPSDKIPLREGISTRATION_API attr::PlanIndexedFeatures3dGreySignaturePtr ipsdk::imaproc::registration::multiSlice_extractGreySignedFeatures3d ( const image::ImageConstPtr pInImg3d,
const ipReal32  inGradStdDev,
const attr::GaussianCoverageConstPtr pInOptGradientGaussianCoverage,
const attr::CornerDetectionParamsConstPtr pInCornerDetectionParams,
const ipUInt32  inNbFeatures,
const ipUInt32  inFeaturesDistX,
const ipUInt32  inFeaturesDistY,
const attr::eInterpolationPolicy inInterpolationPolicy,
const attr::SamplingBallInfoConstPtr pInSamplingBallInfo3d 
)

wrapper function for algorithm allowing to extract 3d features associated to a grey signature from an image

Note
These wrappers can be used with multi slice input images
Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure