Measure allowing to get the height of the minimal oriented bounding box of a shape.
This measure computes the height of the oriented minimal bounding box for each shape. The height is lower than the shape length and width.
Note that without any rotation, the height is the shape size along the z-axis.
Here is an example of height oriented bounding box measurement :
See OrientedBoundingBox3d for more details about the oriented bounding box calculation.
Measure allowing to get the height of the minimal oriented bounding box of a shape
Measure synthesis :
Measure Type | Measure Unit Type | Parameter Type | Result Type | Shape Requirements |
Generic
|
Length
|
OBBHeightMsrParams |
Value (ipsdk::ipReal64)
|
Both
|
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, "OBBHeightMsr")
outMeasureSet = shapeanalysis.labelAnalysis3d(inGreyImg, inLabelImg, inMeasureInfoSet3d)
PyIPSDK.saveCsvMeasureFile(os.path.join(tmpPath, "shape_analysis_results.csv"), outMeasureSet)
outMsr = outMeasureSet.getMeasure("OBBHeightMsr")
outMsrValues = outMsr.getMeasureResult().getColl(0)
print("First label measurement equal " + str(outMsrValues[1]))
Example of C++ code :
Example informations
Associated library
IPSDKIPLShapeAnalysis
Code Example
ImagePtr pInGreyImg3d =
loadTiffImageFile(inputGreyImgPath, eTiffDirectoryMode::eTDM_Volume);
Shape3dCollPtr pShape3dColl = boost::make_shared<Shape3dColl>();
readFromBinaryFile(inputShape3dCollPath, *pShape3dColl);
MeasureInfoSetPtr pMeasureInfoSet = MeasureInfoSet::create3dInstance();
createMeasureInfo(pMeasureInfoSet, "OBBHeightMsr", createOBBHeightMsrParams(1));
MeasureSetPtr pOutMeasureSet =
shapeAnalysis3d(pInGreyImg3d, pShape3dColl, pMeasureInfoSet);
const MeasureConstPtr& pOBBHeightOutMsr = pOutMeasureSet->getMeasure("OBBHeightMsr");
const ipsdk::shape::analysis::ValueMeasureResult<ipsdk::ipReal64>& outResults = static_cast<const ipsdk::shape::analysis::ValueMeasureResult<ipsdk::ipReal64>&>(pOBBHeightOutMsr->getMeasureResult());