Exemplo n.º 1
0
void CmdDoc::list()
{
  if(!mCmd->parmCount())
  {
    if(!loadFileNames()) return;
    listFiles();
    while(lessFile()) {} // Nothing todo in block
  }
  else
  {
    QString parm = mCmd->parmStr(1);
    int fileNumber = parm.toInt();

    if(!fileNumber)
    {
      if(!loadFileNames(parm)) return;
      if(mAllFiles.size() == 1)
      {
        lessFile(mAllFiles.keys().at(0));
      }
      else
      {
        listFiles();
        while(lessFile()) {} // Nothing todo in block
      }
    }
    else
    {
      if(!loadFileNames()) return;
      lessFile(fileNumber);
    }
  }
}
int main(int argc, char **argv){ 
	t = clock();
	cout << "calculating..." << endl;

    Params *par = new Params();
    // par->put("input_type.char","diffs");
    par->put("input_type.char","fulls");
    par->put("header_size.int",30.0);
    par->put("footnote_size.int",30.0);  
    par->put("camera_type.char","reconyx");
    par->put("diff_thres.int",60.0);
    par->put("median_size.int",9.0);
    par->put("output_image.char","out.png");
    par->put("input_images.char","images.txt");
    par->put("output_file.char","output.txt");
    par->put("draw_images.int",1.0);
    par->put("match_images.int",0.0);
    // par->put("match_images.int",1.0);
    par->put("image_width.int",340);
    par->put("image_height.int",280);
    par->put("min_coverage.float",0.007);
    par->put("max_coverage.float",0.80);
    par->put("confidence_thres.float",0.24);
    par->put("conf_factor.float",10);

    for(int i=1;i<argc;i++){ 
        if(!strcmp(argv[i],"-p")){
            par->load(argv[i+1]);
        }else if(!strcmp(argv[i],"-i")){
            par->put("input_images.char",argv[i+1]);
        }else if(!strcmp(argv[i],"-o")){
            par->put("output_file.char",argv[i+1]);
        }
    }

    vector<char *> filenames;
    vector<BB> bbs;
    loadFileNames(par->getString("input_images.char"),filenames);
    if(filenames.size()<1){ return 1; }
    
    printRuntime(t, clock(), "Load file names");

    float conf_factor = par->getValue("conf_factor.float");
    ofstream textoutput(par->getString("output_file.char"));

    // cout << "TEST01" << endl;
    // cout << par->getString("input_type.char") << endl;
    // cout << filenames[10] << endl;

    if(!strcmp(par->getString("input_type.char"),"fulls")){
		//clock_t temp_t = t;
        for(uint i=0; i<filenames.size(); i+=3){
            int sel = processSet(par, filenames, i, bbs, clock());
			
			//temp_t = printRuntime(temp_t, clock(), "dataset");
			
            if(bbs.size()>0){
                textoutput <<  filenames[i] << " " << bbs[0].valid << " " << bbs[sel].sx << " " << bbs[sel].sy << " " <<  bbs[sel].ex-bbs[sel].sx << " " << bbs[sel].ey-bbs[sel].sy  << " " << bbs[sel].confidence   << " " << bbs[sel].coverage  <<  "\n";
                // textoutput <<  filenames[i] << " " << bbs.size() << " " << bbs[sel].ex << " " << bbs[sel].ey << " " << bbs[sel].w << " " << bbs[sel].h << " " << bbs[sel].x << " " << bbs[sel].y << "\n";
                
            }else{
                textoutput <<  filenames[i] << " " << 0 << " " << 0 << " " << 0 << " " <<  0 << " " << 0  << " " << 0   << " " << 0  << "\n";
            }
            //cout << i << " " << filenames[i] << " of " << filenames.size() <<" bbs.size " <<  bbs.size()<< endl;

            bbs.clear();
        }
    }else{
        // (input_type.char == "diffs") --> computeDifferences(images)
        int sel = processSet(par, filenames, -1, bbs, clock());
        //textoutput << 0 << endl;
        if(bbs.size()>0){
            if(bbs[0].valid){
                //currently outputting this to output file
                textoutput <<  filenames[1] << " " << 1 << " " << round(conf_factor*bbs[sel].confidence) << " " << bbs[sel].sx << " " << bbs[sel].sy << " " <<  bbs[sel].ex-bbs[sel].sx << " " << bbs[sel].ey-bbs[sel].sy <<endl;
            }
        }
    }

    textoutput.close();
    
    printRuntime(t, clock(), "All of main");
    cout << "TESTOUT" << endl;

    //par->save("params.par");
    delete par;
    return 0;
}