Level* LevelFactory::CreateLevel(const std::string& aFilepath) { Level* newLevel = new Level(); myCurrentLevelFilePath = aFilepath; tinyxml2::XMLElement* levelElement = XMLUTIL::LoadFile(myCurrentLevelFilePath); Vector2f gridDimensionsF = XMLUTIL::GetVector2(levelElement,"GridDimensions"); Vector2<int> gridDimenions(static_cast<int>(gridDimensionsF.x),static_cast<int>(gridDimensionsF.y)); newLevel->Init(gridDimenions); if(levelElement->Attribute("WinningTile") != NULL) { Vector2<float> winningTileFloat = XMLUTIL::GetVector2(levelElement, "WinningTile"); Vector2<int> winningTileInt(static_cast<int>(winningTileFloat.myX), static_cast<int>(winningTileFloat.myY)); newLevel->SetWinningTile(winningTileInt); } CreateBlocks(newLevel,levelElement->FirstChildElement("Block")); return newLevel; }
Solver::Solver(ElectronBasis BASIS) { basis = BASIS; // Calculating important variables Nholes = basis.Nholes; Nholes2 = Nholes*Nholes; Nholes3 = Nholes2*Nholes; Nstates = basis.Nstates; Nparticles = Nstates - Nholes; Nparticles2 = Nparticles*Nparticles; Nparticles3 = Nparticles2*Nparticles; int Nmax = basis.Nshells; m = 2 * floor(sqrt(Nmax)); M = 2*m + 1; // Weight when adding diagrams to new amplitudes weight = 1.0; tolerance = 1e-16; // Setting up two-state configurations start = clock(); DirectStates_Parallel(); CrossStates_Parallel(); TripleStates_Parallel(); finish = clock(); cout << "TwoBodyConfigurations used " << (double(finish-start)/CLOCKS_PER_SEC) << " seconds. " << endl; start = clock(); CreateBlocks(); finish = clock(); cout << "CreateBlocks used " << (double(finish-start)/CLOCKS_PER_SEC) << " seconds. " << endl; // Setting up matrices t0 = zeros<vec>(Nparticles2*Nholes2); t = zeros<vec>(Nparticles2*Nholes2); //T = zeros<mat>(0,2); //T0= zeros<mat>(0,2); }
bool OCVLbp::CalculateOpenCV(int /*f*/, int l) { static const string msg = "OCVLbp::CalculateOpenCV() : "; featureVector fv; if (LabelVerbose()) cout << msg << "starting" << endl; bool ok = true; if (spoints.empty()) CreateSPoints(); if (!ok || spoints.empty() || (spoints.size() != options.nneighbors)) { cerr << msg << "Missing or wrong pixel neighborhood." << endl; return false; } if (options.lbptype == CSLBP) { if (options.neighborhood != LBP_CIRCULAR) { cerr << msg << "CS-LBP requires (currently) a circular neighborhood" << endl; return false; } else if (options.mapping != LBP_MAPPING_NONE) { cerr << msg << "CS-LBP is not compatible with any mappings" << endl; return false; } } if ((options.mapping != LBP_MAPPING_NONE) && lbp_map.mapsize == 0) CreateMap(); // lbp_image = // ocv_image_(Rect(options.crop.x0, options.crop.y0, // ocv_image_.cols-options.crop.x0-options.crop.x1, // ocv_image_.rows-options.crop.y0-options.crop.y1)); lbp_image = ocv_image_; if (options.write_image) { string sn; if ((size_t)l<RegionDescriptorCount()) sn = RegionDescriptor(l).first; else sn = ToStr(l); //string oname = "lbp-"+BaseFileName()+"-"+ToStr(f)+"-"+ToStr(l)+".jpg"; string oname = "lbp-"+BaseFileName()+"_"+sn+".jpg"; imwrite(oname, lbp_image); } if (blocktypes.empty()) blocktypes.push_back(BLOCKS_1x1); CreateBlocks(); MatND storedhist; list<pair<Rect,lbp_block_type> >::const_iterator i; for (i = lbp_blocks.begin(); i!=lbp_blocks.end(); i++) { MatND hist; Mat blockimg = lbp_image(i->first); CalculateLbp(blockimg, hist); if (i->second == BLOCK_STORE) storedhist = hist; else if (i->second == BLOCK_SUBTRACT) hist -= storedhist; if (options.normalize_histogram != HISTNORM_NONE) { Scalar sumhist = sum(hist); hist /= sumhist[0]; } if (options.normalize_histogram == HISTNORM_CAPPED) { for (int ii=0; ii<hist.rows; ii++) if (hist.at<float>(ii)>0.2) hist.at<float>(ii) = 0.2; Scalar sumhist = sum(hist); hist /= sumhist[0]; } for (int ii=0; ii<hist.rows; ii++) fv.push_back(hist.at<float>(ii)); } SetVectorData(l, fv); if (LabelVerbose()) cout << msg << "ending" << endl; return true; }