int processSet(Params *par, vector<char *> filenames, int findex, vector<BB> &bbs, clock_t start_t){
    // cout << "TEST\n";

    vector<DARY *> images;
    // cout << " OK 0 " << findex <<  " "<< filenames[findex]<< endl;
    //int t0 = printRuntime(start_t, clock(), "testpoint0");
    
    loadImages(filenames, findex, images, par);
    // cout << " OK 1 " << endl;
    //int t1 = printRuntime(t0, clock(), "testpoint1");
    
    if(findex>0){ computeDifferences(images); }
    // cout << " OK 2 " << endl;
    //int t2 = printRuntime(t1, clock(), "testpoint2");

    normalizeDifference(images);
    //int t3 = printRuntime(t2, clock(), "testpoint3");

    DARY *output = new DARY(images[0]->y(),images[0]->x(),UCHAR1FLOAT1);
    output->set(0.0);
    // cout << " OK 3 " << endl;
    detectDifferences(images, output, par->getValue("diff_thres.int"), par->getValue("median_size.int"));
    //int t4 = printRuntime(t3, clock(), "testpoint4");

    // Detect using HOG (histogram of oriented gradients)
    if((int)par->getValue("match_images.int")){ matchImages(images,output); }
    for(uint i=0; i<images.size(); i++){ delete images[i];images.clear(); }
    // cout << " OK 4 " << endl;

    // Bounding box method
    int labels;
    labelSegments(output, labels);
    //int t5 = printRuntime(t4, clock(), "testpoint5");
    
    int sel=-1;
    if(labels>1){
        findBBs(output,bbs,labels);
        sel=selectBBs(bbs, par);
        // if(bbs.size()>0){ sel=0; }
    }
    // cout << " OK 4 " << endl;
    //int t6 = printRuntime(t5, clock(), "testpoint6");
    
    if(findex==-1){ findex=1; }
    // coutBB used in drawBB prints to terminal
    if((int)par->getValue("draw_images.int")){ drawBB(filenames[findex],output,bbs,sel); }
    
    //int t7 = printRuntime(t6, clock(), "testpoint7");
    //int t8 = printRuntime(start_t, clock(), "out of total");

    delete output;
    return sel;
}
Ejemplo n.º 2
0
Stitcher::Status Stitcher::estimateTransform(InputArray images, const vector<vector<Rect> > &rois)
{
    images.getMatVector(imgs_);
    rois_ = rois;

    Status status;

    if ((status = matchImages()) != OK)
        return status;

    estimateCameraParams();

    return OK;
}
Ejemplo n.º 3
0
int main(int argc, char *argv[])
{
   if (!CmdLnArgs.parse(argc, argv))
   {
      printf("Usage: ./main (--match <ix> | --time-desc <#it> | --time-match <#it> <#pts>)\n\n");
      return 1;
   }

   if (CmdLnArgs.right_img_ix)
      matchImages(CmdLnArgs.right_img_ix);
   else if (CmdLnArgs.desc_timing_nit)
      timeDescription(CmdLnArgs.desc_timing_nit);
   else if (CmdLnArgs.match_timing_nit)
      timeMatching(CmdLnArgs.match_timing_nit, CmdLnArgs.match_timing_npts);

   return 0;
}
Ejemplo n.º 4
0
Stitcher::Status Stitcher::estimateTransform(InputArrayOfArrays images, InputArrayOfArrays masks)
{
    CV_INSTRUMENT_REGION();

    images.getUMatVector(imgs_);
    masks.getUMatVector(masks_);

    Status status;

    if ((status = matchImages()) != OK)
        return status;

    if ((status = estimateCameraParams()) != OK)
        return status;

    return OK;
}