142 std::string filename1(
"../Doc/ErnstReuter1.png");
143 std::string filename2(
"../Doc/ErnstReuter2.png");
147 img1 = cv::imread(filename1);
148 img2 = cv::imread(filename2);
159 if( trackerType ==
DENSE)
164 double time =
static_cast<double>(cv::getTickCount());
166 std::cout <<
"Dense (ms): " << (
static_cast<double>(cv::getTickCount()) - time) / (cvGetTickFrequency() * 1000.) << std::endl;
171 else if (trackerType ==
GFT)
174 std::vector<cv::Point2f> ptList;
175 std::vector<CRPoint> ptList1;
176 std::vector<CRPoint> ptList2;
178 double time =
static_cast<double>(cv::getTickCount());
179 cv::goodFeaturesToTrack(img1, ptList, 15000, 0.01, 3);
183 tracker->
run(img1.ptr<uchar>(),
193 std::cout <<
"GFT (ms): " << (
static_cast<double>(cv::getTickCount()) - time) / (cvGetTickFrequency() * 1000.) << std::endl;
194 cv::cvtColor(img1,rgbOutput, CV_GRAY2RGB);
195 for(
unsigned int n = 0 ; n < ptList1.size(); n++)
197 cv::Point pt1(static_cast<int>(ptList1[n].x), static_cast<int>(ptList1[n].y));
198 cv::Point pt2(static_cast<int>(ptList2[n].x), static_cast<int>(ptList2[n].y));
199 cv::circle(rgbOutput, pt1, 2, cv::Scalar(255,0,0), -1);
200 cv::line(rgbOutput, pt1, pt2, cv::Scalar(0, 255, 0), 1);
206 cv::namedWindow(
"Motion Field",0);
207 cv::imshow(
"Motion Field", rgbOutput);
211 catch(std::exception & e)
213 std::cout << e.what()<<std::endl;
224 int main(
int argc,
char** argv)
int main(int argc, char **argv)
void solverType(SolverType val)
RLOF parameter class The Robust Local Optical Flow parameter class contains additional parameters use...
Pyramidal Lucas Kanade parameter class The Pyramidal Lucas Kanade parameter class. Please use a instance of this class to run the PLK version. The parameter class is associated to PLK.
static IFeatureTracker * createFTInstance(RLOFType type=CPU_BEPLK)
PLK/RLOF parameter base class The parameter base class provides basic interfaces to set up the algori...
Cross based Pyramidal Lucas Kanade parameter class The cross based Pyramidal Lucas Kanade parameter c...
static void cvTocr(std::vector< CRPoint > &lhs, const std::vector< cv::Point2f > &rhs)
virtual void run(const uchar *imgPtr1, unsigned int step1, const uchar *imgPtr2, unsigned int step2, unsigned int nRows, unsigned int nCols, std::vector< CRPoint > &prevPoints, std::vector< CRPoint > &currPoints, const FeatureTrackerContext *context)
void demo()
Demo programm.
Cross based RLOF parameter class The cross based Robust Local Optical Flow parameter class contains i...