sphere of minimum radius enclosing shape
This measure allows to compute enclosing sphere of minimum radius for each shape.
Given a shape, algorithm will compute coordinates of the sphere enclosing shape with minimum radius.
Please refers to MinEnclosingCircle2d for an example of computation of minimum enclosing circle in 2d case.
sphere of minimum radius enclosing shape
Measure synthesis :
Measure Type | Measure Unit Type | Parameter Type | Result Type | Shape Requirements |
Geometry 3d
|
None
|
None
|
Custom
|
Boundary Approximation
|
See Shape measurement for additional information on these pictograms Example of Python code :
Generic example in 3d case :
import PyIPSDK
import PyIPSDK.IPSDKIPLShapeAnalysis as shapeanalysis
inMeasureInfoSet3d = PyIPSDK.createMeasureInfoSet3d()
PyIPSDK.createMeasureInfo(inMeasureInfoSet3d, "MinEnclosingSphere3dMsr")
outMeasureSet = shapeanalysis.labelAnalysis3d(inGreyImg, inLabelImg, inMeasureInfoSet3d)
PyIPSDK.saveCsvMeasureFile(os.path.join(tmpPath, "shape_analysis_results.csv"), outMeasureSet)
outMsr = outMeasureSet.getMeasure("MinEnclosingSphere3dMsr")
outMsrValues = outMsr.getMeasureResult().getColl(0)
print("First label estimation radius : " + str(outMsrValues[1].getRadius()))
print("First label estimation center : " + str(outMsrValues[1].centerX()) + ", " + str(outMsrValues[1].centerY()) + ", " + str(outMsrValues[1].centerZ()))
Example of C++ code :
Example informations
Associated library
IPSDKIPLShapeAnalysis
Code Example
Shape3dCollPtr pShape3dColl = boost::make_shared<Shape3dColl>();
IPSDK_REQUIRE(readFromBinaryFile(inputShape3dCollPath, *pShape3dColl) == true);
MeasureInfoSetPtr pMeasureInfoSet = MeasureInfoSet::create3dInstance();
createMeasureInfo(pMeasureInfoSet, "MinEnclosingSphere3dMsr");
MeasureSetPtr pOutMeasureSet =
shapeAnalysis3d(pInGreyImg3d, pShape3dColl, pMeasureInfoSet);
const MeasureConstPtr& pMinEnclosingSphere3dOutMsr = pOutMeasureSet->getMeasure("MinEnclosingSphere3dMsr");
const Sphere3dMsrResults& outResults = static_cast<const Sphere3dMsrResults&>(pMinEnclosingSphere3dOutMsr->getMeasureResult());