コード例 #1
0
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;
}
コード例 #2
0
ファイル: solver.cpp プロジェクト: wholmen/Master
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);


}
コード例 #3
0
ファイル: OCVLbp.C プロジェクト: aalto-cbir/PicSOM
  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;
  }