Computes the Ferets diameter of an object (the maximum distance between the points of the perimeter of the region), and finds its end points.
#include "ltwrappr.h"
static L_INT LBitmap::GetFeretsDiameter (pPoints, uSize, puFeretsDiameter, puFirstIndex, puSecondIndex, uFlags = 0)
Pointer to an array of object contour coordinate points.
Array size.
Pointer to a variable to be updated with the length of the Ferets diameter. The length is measured in pixels and is internally multiplied by 1000. Divide this value by 1000 to obtain the real length.
Pointer to a variable to be updated with index of the first end point of the Ferets diameter.
Pointer to a variable to be updated with index of the second end point of the Ferets diameter.
Reserved for future use. Must be 0.
Value | Meaning |
---|---|
SUCCESS | The function was successful. |
< 1 | An error occurred. Refer to Return Codes. |
This function calculates the Feret's Diameter (caliper length), the longest distance between any two points along the boundary. This is equivalent to the minimum diameter of a tube through which this object can pass.
This function does not call the status callback.
Win32, x64.
L_INT LBitmap__GetFeretsDiameterExample(LBitmap *pLeadBitmap)
{
L_INT nRet;
RECT rcRect;
POINT * pPoints;
L_UINT uSize, uFeretsDiam, uFstIndex, uSndIndex;
RGNXFORM MyXForm;
rcRect.top = pLeadBitmap->GetHeight ()/4;
rcRect.bottom = pLeadBitmap->GetHeight ()*3/4;
rcRect.left = pLeadBitmap->GetWidth ()/4;
rcRect.right = pLeadBitmap->GetWidth ()*3/4;
nRet =pLeadBitmap->Region()->SetRgnEllipse (&rcRect);
if(nRet !=SUCCESS)
return nRet;
nRet =pLeadBitmap->Region()->GetRgnXForm (&MyXForm);
if(nRet !=SUCCESS)
return nRet;
nRet =pLeadBitmap->GetRgnContourPoints(&MyXForm,&pPoints, &uSize,0);
if(nRet !=SUCCESS)
return nRet;
nRet =LBitmap::GetFeretsDiameter (pPoints, uSize, &uFeretsDiam, &uFstIndex, &uSndIndex);
if(nRet !=SUCCESS)
return nRet;
return SUCCESS;
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document