cv::cuda::TemplateMatching::match的调用

  • Post author:
  • Post category:其他


在opencv3.1的源码opencv_test_cudaimgproc工程中test_match_template.cpp。

Mat readImage(const std::string& fileName, int flags)

{


return imread(TS::ptr()->get_data_path() + fileName, flags);

}

GpuMat loadMat(const Mat& m, bool useRoi)

{


GpuMat d_m = createMat(m.size(), m.type(), useRoi);

d_m.upload(m);

return d_m;

}

CUDA_TEST_P(MatchTemplate_CanFindBigTemplate, SQDIFF)

{


cv::Mat scene = readImage(“matchtemplate/scene.png”);

ASSERT_FALSE(scene.empty());

cv::Mat templ = readImage(“matchtemplate/template.png”);

ASSERT_FALSE(templ.empty());

cv::Ptr<cv::cuda::TemplateMatching> alg = cv::cuda::createTemplateMatching(scene.type(), cv::TM_SQDIFF);

cv::cuda::GpuMat d_result;

alg->match(loadMat(scene), loadMat(templ), d_result);

cv::Mat result(d_result);

double minVal;

cv::Point minLoc;

cv::minMaxLoc(result, &minVal, 0, &minLoc, 0);

ASSERT_GE(minVal, 0);

ASSERT_EQ(344, minLoc.x);

ASSERT_EQ(0, minLoc.y);

}



版权声明:本文为Kevin_Can原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。