16 #include <cvd/fast_corner.h> 17 #include <cvd/utility.h> 20 const CVD::BasicImage<CVD::byte>& I, std::vector<CVD::ImageRef>& corners,
24 std::vector<size_t>* out_feats_index_by_row)
27 CVD::BasicImage<CVD::byte>
img(ptr, {I.cols, I.rows}, I.step[0]);
29 std::vector<CVD::ImageRef> outputs;
31 outputs.reserve(I.cols * I.rows);
32 F(
img, outputs, barrier);
34 for (
auto& output : outputs)
35 corners.
emplace_back(output.x << octave, output.y << octave);
36 if (out_feats_index_by_row)
38 auto& counters = *out_feats_index_by_row;
39 counters.assign(I.rows, 0);
40 for (
auto& output : outputs) counters[output.y]++;
46 std::vector<size_t>* out_feats_index_by_row)
48 fast_corner_detect<CVD::fast_corner_detect_9>(
49 I, corners, barrier, octave, out_feats_index_by_row);
54 std::vector<size_t>* out_feats_index_by_row)
56 fast_corner_detect<CVD::fast_corner_detect_10>(
57 I, corners, barrier, octave, out_feats_index_by_row);
62 std::vector<size_t>* out_feats_index_by_row)
64 fast_corner_detect<CVD::fast_corner_detect_12>(
65 I, corners, barrier, octave, out_feats_index_by_row);
void fast_corner_detect_10(const cv::Mat &I, TKeyPointList &corners, int barrier, uint8_t octave, std::vector< size_t > *out_feats_index_by_row)
void emplace_back(const int x, const int y)
void fast_corner_detect_9(const cv::Mat &I, TKeyPointList &corners, int barrier, uint8_t octave, std::vector< size_t > *out_feats_index_by_row)
typedef void(APIENTRYP PFNGLBLENDCOLORPROC)(GLclampf red
void fast_corner_detect(const cv::Mat &I, TKeyPointList &corners, int barrier, uint8_t octave, std::vector< size_t > *out_feats_index_by_row)
void fast_corner_detect_12(const cv::Mat &I, TKeyPointList &corners, int barrier, uint8_t octave, std::vector< size_t > *out_feats_index_by_row)