本文整理匯總了C++中CBlob::Perimeter方法的典型用法代碼示例。如果您正苦於以下問題:C++ CBlob::Perimeter方法的具體用法?C++ CBlob::Perimeter怎麽用?C++ CBlob::Perimeter使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類CBlob
的用法示例。
在下文中一共展示了CBlob::Perimeter方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C++代碼示例。
示例1: operator
/**
- FUNCTION: CBlobGetElongation
- FUNCTIONALITY: Calculates the elongation of the blob ( length/breadth )
- PARAMETERS:
- RESULT:
- RESTRICTIONS:
- See below to see how the length and the breadth are
aproximated
- AUTHOR: Ricard Borr�
- CREATION DATE: 25-05-2005.
- MODIFICATION: Date. Author. Description.
*/
double CBlobGetElongation::operator()(const CBlob &blob) const
{
double ampladaC,longitudC,amplada,longitud;
ampladaC=(double) (blob.Perimeter()+sqrt(pow(blob.Perimeter(),2)-16*blob.Area()))/4;
if(ampladaC<=0.0) return 0;
longitudC=(double) blob.Area()/ampladaC;
longitud=MAX( longitudC , ampladaC );
amplada=MIN( longitudC , ampladaC );
return (double) longitud/amplada;
}
示例2: operator
/**
- FUNCTION: CBlobGetCompactness
- FUNCTIONALITY: Calculates the compactness of the blob
( maximum for circle shaped blobs, minimum for the rest)
- PARAMETERS:
- RESULT:
- RESTRICTIONS:
- AUTHOR: Ricard Borràs
- CREATION DATE: 25-05-2005.
- MODIFICATION: Date. Author. Description.
*/
double CBlobGetCompactness::operator()(CBlob &blob)
{
if( blob.Area() != 0.0 )
return (double) pow(blob.Perimeter(),2)/(4*CV_PI*blob.Area());
else
return 0.0;
}
示例3: cvCreateMemStorage
/**
- FUNCTION: CBlob
- FUNCTIONALITY: Copy constructor
- PARAMETERS:
- RESULT:
- RESTRICTIONS:
- AUTHOR: Ricard Borr�
- CREATION DATE: 25-05-2005.
- MODIFICATION: Date. Author. Description.
*/
CBlob::CBlob( const CBlob &src )
{
// copiem les propietats del blob origen a l'actual
etiqueta = src.etiqueta;
exterior = src.exterior;
area = src.Area();
perimeter = src.Perimeter();
parent = src.parent;
minx = src.minx;
maxx = src.maxx;
miny = src.miny;
maxy = src.maxy;
sumx = src.sumx;
sumy = src.sumy;
sumxx = src.sumxx;
sumyy = src.sumyy;
sumxy = src.sumxy;
mean = src.mean;
stddev = src.stddev;
externPerimeter = src.externPerimeter;
// copiem els edges del blob origen a l'actual
CvSeqReader reader;
CvSeqWriter writer;
CvPoint edgeactual;
// creem una sequencia buida per als edges
m_storage = cvCreateMemStorage(0);
edges = cvCreateSeq( CV_SEQ_KIND_GENERIC|CV_32SC2,
sizeof(CvContour),
sizeof(CvPoint),m_storage);
cvStartReadSeq( src.Edges(), &reader);
cvStartAppendToSeq( edges, &writer );
for( int i=0; i< src.Edges()->total; i++)
{
CV_READ_SEQ_ELEM( edgeactual ,reader);
CV_WRITE_SEQ_ELEM( edgeactual , writer );
}
cvEndWriteSeq( &writer );
}