Exemplo n.º 1
0
/*!
 * Prints some blob features in an ASCII file
 * @param nom_fitxer full path + filename to generate
 */
void BlobResult::PrintBlobs( char *nom_fitxer ) const
{
    double_stl_vector area, /*perimetre,*/ exterior, compacitat, longitud,
                      externPerimeter, perimetreConvex, perimetre;
    int i;
    FILE *fitxer_sortida;

    area      = GetSTLResult( BlobGetArea());
    perimetre = GetSTLResult( BlobGetPerimeter());
    exterior  = GetSTLResult( BlobGetExterior());
    compacitat = GetSTLResult(BlobGetCompactness());
    longitud  = GetSTLResult( BlobGetLength());
    externPerimeter = GetSTLResult( BlobGetExternPerimeter());
    perimetreConvex = GetSTLResult( BlobGetHullPerimeter());

    fitxer_sortida = fopen( nom_fitxer, "w" );

    for(i=0; i<GetNumBlobs(); i++)
    {
        fprintf( fitxer_sortida, "blob %d ->\t a=%7.0f\t p=%8.2f (%8.2f extern)\t pconvex=%8.2f\t ext=%.0f\t c=%3.2f\t l=%8.2f\n",
                 i, area[i], perimetre[i], externPerimeter[i], perimetreConvex[i], exterior[i], compacitat[i], longitud[i] );
    }
    fclose( fitxer_sortida );

}
Exemplo n.º 2
0
double BlobGetRoughness::operator()(Blob &blob)
{
	BlobGetHullPerimeter getHullPerimeter = BlobGetHullPerimeter();

	double hullPerimeter = getHullPerimeter(blob);

	if( hullPerimeter != 0.0 )
		return blob.Perimeter() / hullPerimeter;//HullPerimeter();

	return 0.0;
}