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);
55 cv::Mat&
out = linpolar_frame.asCvMatRef();
57 #if MRPT_OPENCV_VERSION_NUM < 0x300 60 linpolar_frame.getAsIplImage(&cvout);
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);
#define THROW_EXCEPTION(msg)
A safe way to call enter() and leave() of a mrpt::system::CTimeLogger upon construction and destructi...
cv::Mat & asCvMatRef()
Get a reference to the internal cv::Mat, which can be resized, etc.
TImageChannels getChannelCount() const
Returns the number of channels, typically 1 (GRAY) or 3 (RGB)
#define ASSERT_(f)
Defines an assertion mechanism.
Classes for computer vision, detectors, features, etc.
void getAsIplImage(IplImage *dest) const
(DEPRECATED, DO NOT USE - Kept here only to interface opencv 2.4)
A list of visual features, to be used as output by detectors, as input/output by trackers, etc.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
mrpt::vision::TStereoCalibResults out
struct _IplImage IplImage
A class for storing images as grayscale or RGB bitmaps.
int round(const T value)
Returns the closer integer (int) to x.