IPSDK 0.2
IPSDK : Image Processing Software Development Kit
Extract grey signed features 3dSee full documentation
Features3dGreySignatureextractGreySignedFeatures3d (inImg3d,inNbFeatures)
Features3dGreySignatureextractGreySignedFeatures3d (inImg3d,inGradStdDev,inNbFeatures,inFeaturesDist)
Features3dGreySignatureextractGreySignedFeatures3d (inImg3d,inGradStdDev,inOptGradientGaussianCoverage,inCornerDetectionParams,inNbFeatures,inFeaturesDistX,inFeaturesDistY,inInterpolationPolicy,inSamplingBallInfo3d)

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)

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

Header file

#include <IPSDKIPL/IPSDKIPLRegistration/Processor/ExtractGreySignedFeatures3d/ExtractGreySignedFeatures3d.h>

Code Example

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