15 #include <mrpt/3rdparty/do_opencv_includes.h>
34 profiler,
"internal_computePolarImageDescriptors");
36 ASSERT_(options.PolarImagesOptions.radius > 1);
37 ASSERT_(options.PolarImagesOptions.bins_angle > 1);
38 ASSERT_(options.PolarImagesOptions.bins_distance > 1);
40 const unsigned int radius = options.PolarImagesOptions.radius;
41 const unsigned int patch_w = options.PolarImagesOptions.bins_distance;
42 const unsigned int patch_h = options.PolarImagesOptions.bins_angle;
47 for (
auto& f : in_features)
50 f.keypoint.octave = radius;
52 const auto pt = cv::Point2f(f.keypoint.pt.x, f.keypoint.pt.y);
57 #if MRPT_OPENCV_VERSION_NUM < 0x300
62 &cvin, &cvout, pt, radius, CV_INTER_LINEAR + CV_WARP_FILL_OUTLIERS);
63 #elif MRPT_OPENCV_VERSION_NUM < 0x342
67 1 + 2 * radius, 1 + 2 * radius)),
68 out, pt, radius, CV_INTER_LINEAR + CV_WARP_FILL_OUTLIERS);
72 in,
out, cv::Size(patch_w, patch_h), pt, radius,
73 cv::INTER_LINEAR + cv::WARP_FILL_OUTLIERS);
77 f.descriptors.PolarImg.emplace();
78 linpolar_frame.
getAsMatrix(*f.descriptors.PolarImg);