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; }
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; }
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; }
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; }