/*! * 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 ); }
double BlobGetRoughness::operator()(Blob &blob) { BlobGetHullPerimeter getHullPerimeter = BlobGetHullPerimeter(); double hullPerimeter = getHullPerimeter(blob); if( hullPerimeter != 0.0 ) return blob.Perimeter() / hullPerimeter;//HullPerimeter(); return 0.0; }