1 #ifndef AIMS_MINIMIZATION_H 2 #define AIMS_MINIMIZATION_H 41 uint nb_cl_sim = 0, nb_cl_dd = 0, nb_cl_intraps = 0, nb_cl_lower = 0;
43 for (
uint i = 0 ; i < cliques.size() ; i++ ) {
44 if ( cliques[i].type ==
SIMILARITY ) nb_cl_sim++;
45 else if ( cliques[i].type ==
DATADRIVEN ) nb_cl_dd++;
49 std::cout <<
" done (" << nb_cl_sim <<
" similarity cliques ; " <<
50 nb_cl_dd <<
" datadriven cliques ; " <<
51 nb_cl_lower <<
" lower scale cliques ; " <<
52 nb_cl_intraps <<
" maximal order cliques ; " <<
53 cliques.size() <<
" cliques in total)" << std::endl;
54 std::cout << nbsujets <<
" subjects" << std::endl;
60 float _intrapsweight = 0.0,
61 float _simweight = 0.0,
62 float _lsweight = 0.0,
83 static void ConvertSSBlobsToSites ( std::vector<surf::ScaleSpaceBlob *> &ssblobs, std::vector<Site *> &sites );
90 std::vector<Site *> &sites,
91 std::vector<Clique> &cliques,
92 std::vector<std::vector<int> > &cliquesDuSite ) ;
95 std::vector<std::vector<surf::GreyLevelBlob *> > &matchingblobs ) ;
100 float threshold = 5.0,
117 for (
uint i = 0 ; i < this->cliques.size() ; i++ ) {
119 this->ipscliques.push_back(i);
120 if ( this->cliques[i].type ==
GLOBAL )
121 this->globalclique = i;
124 std::set<std::string> subjects;
125 for (
uint i = 0 ; i < this->sites.size() ; i++ )
126 subjects.insert(this->sites[i]->subject);
127 nbsujets = subjects.size();
128 assert( nbsujets == ipscliques.size() );
static void ConvertSSBlobsToSites(std::vector< surf::ScaleSpaceBlob *> &ssblobs, std::vector< Site *> &sites)
static void BuildSites(Graph &primal, std::vector< Site *>)
std::vector< std::set< uint > > listeZones
void BuildMaximalOrderCliques(std::vector< Site *> &sites, std::vector< std::vector< int > > &cliquesDuSite, std::vector< Clique > &cliques)
std::vector< uint > ipscliques
void importGraphCliquesFromSSBCliques(std::vector< surf::Clique > &ssbcliques)
void importGraphNodesFromBlobs(std::vector< surf::ScaleSpaceBlob *> &ssblobs)
double getTypeEnergy(int type)
SurfaceBased_StructuralAnalysis()
void importGraphNodesAndCliques(std::vector< surf::ScaleSpaceBlob *> &ssblobs, std::vector< surf::Clique > &ssbcliques)
double getLabelEnergy(int label, int type=UNKNOWN)
std::vector< Site * > sites
std::vector< std::vector< int > > cliquesDuSite
void setModelParameters(float _ddweight=0.0, float _intrapsweight=0.0, float _simweight=0.0, float _lsweight=0.0, float _ddx1=0.0, float _ddx2=0.0, float _simx1=0.0, float _simx2=0.0, float _lsx1=0.0, float _lsx2=0.0, float _ddh=0.0)
std::vector< int > labels
void StoreSignificanceToGraph(Graph &primal)
void noLabelsZones(int number_of_labels=21)
void ShortSummaryLabels()
double getClusterEnergy(std::vector< uint > &composante)
void BuildLowerScaleCliques(std::vector< Site *> &sites, std::vector< std::vector< int > > &cliquesDuSite, std::vector< Clique > &cliques)
static std::vector< surf::Clique > BuildSimilarityCliques(std::vector< surf::ScaleSpaceBlob *> &ssblobs, std::vector< std::vector< surf::GreyLevelBlob *> > &matchingblobs)
static void GetSimilarityCliquesFromSSBCliques(std::vector< surf::Clique > &ssbcliques, std::vector< Site *> &sites, std::vector< Clique > &cliques, std::vector< std::vector< int > > &cliquesDuSite)
std::vector< Clique > cliques
std::vector< std::pair< Point2df, Point2df > > labelsZones
void Initialization(bool initLabels=true)
void PrintCliquesNumbers()
static std::vector< surf::Clique > BuildSimilarityCliques3D(std::vector< surf::ScaleSpaceBlob *> &ssblobs, GroupData &data, float threshold=5.0, int typeDistance=DISTANCE_3DEUCLIDIAN)
std::vector< std::set< uint > > zonesListesBlobs
void BuildDataDrivenCliques(std::vector< Site *> &sites, std::vector< std::vector< int > > &cliquesDuSite, std::vector< Clique > &cliques)
void BuildGlobalClique(std::vector< Site *> &sites, std::vector< std::vector< int > > &cliquesDuSite, std::vector< Clique > &cliques)
void StoreToGraph(Graph &primal)