ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
random_sampler.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
10 #include "optim/sampler.h"
11 
12 namespace colmap {
13 
14 // Random sampler for RANSAC-based methods.
15 //
16 // Note that a separate sampler should be instantiated per thread.
17 class RandomSampler : public Sampler {
18 public:
19  explicit RandomSampler(const size_t num_samples);
20 
21  void Initialize(const size_t total_num_samples) override;
22 
23  size_t MaxNumSamples() override;
24 
25  std::vector<size_t> Sample() override;
26 
27 private:
28  const size_t num_samples_;
29  std::vector<size_t> sample_idxs_;
30 };
31 
32 } // namespace colmap
void Initialize(const size_t total_num_samples) override
std::vector< size_t > Sample() override
RandomSampler(const size_t num_samples)
size_t MaxNumSamples() override