| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| #ifndef COLMAP_SRC_BASE_DATABASE_CACHE_H_ |
| #define COLMAP_SRC_BASE_DATABASE_CACHE_H_ |
|
|
| #include <string> |
| #include <unordered_map> |
| #include <unordered_set> |
| #include <vector> |
|
|
| #include <Eigen/Core> |
|
|
| #include "base/camera.h" |
| #include "base/camera_models.h" |
| #include "base/correspondence_graph.h" |
| #include "base/database.h" |
| #include "base/image.h" |
| #include "util/alignment.h" |
| #include "util/types.h" |
|
|
| namespace colmap { |
|
|
| |
| |
| class DatabaseCache { |
| public: |
| DatabaseCache(); |
|
|
| |
| inline size_t NumCameras() const; |
| inline size_t NumImages() const; |
|
|
| |
| inline class Camera& Camera(const camera_t camera_id); |
| inline const class Camera& Camera(const camera_t camera_id) const; |
| inline class Image& Image(const image_t image_id); |
| inline const class Image& Image(const image_t image_id) const; |
|
|
| |
| inline const EIGEN_STL_UMAP(camera_t, class Camera) & Cameras() const; |
| inline const EIGEN_STL_UMAP(image_t, class Image) & Images() const; |
|
|
| |
| inline bool ExistsCamera(const camera_t camera_id) const; |
| inline bool ExistsImage(const image_t image_id) const; |
|
|
| |
| inline const class CorrespondenceGraph& CorrespondenceGraph() const; |
|
|
| |
| void AddCamera(class Camera camera); |
| void AddImage(class Image image); |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| void Load(const Database& database, const size_t min_num_matches, |
| const bool ignore_watermarks, |
| const std::unordered_set<std::string>& image_names); |
|
|
| |
| const class Image* FindImageWithName(const std::string& name) const; |
|
|
| private: |
| class CorrespondenceGraph correspondence_graph_; |
|
|
| EIGEN_STL_UMAP(camera_t, class Camera) cameras_; |
| EIGEN_STL_UMAP(image_t, class Image) images_; |
| }; |
|
|
| |
| |
| |
|
|
| size_t DatabaseCache::NumCameras() const { return cameras_.size(); } |
| size_t DatabaseCache::NumImages() const { return images_.size(); } |
|
|
| class Camera& DatabaseCache::Camera(const camera_t camera_id) { |
| return cameras_.at(camera_id); |
| } |
|
|
| const class Camera& DatabaseCache::Camera(const camera_t camera_id) const { |
| return cameras_.at(camera_id); |
| } |
|
|
| class Image& DatabaseCache::Image(const image_t image_id) { |
| return images_.at(image_id); |
| } |
|
|
| const class Image& DatabaseCache::Image(const image_t image_id) const { |
| return images_.at(image_id); |
| } |
|
|
| const EIGEN_STL_UMAP(camera_t, class Camera) & DatabaseCache::Cameras() const { |
| return cameras_; |
| } |
|
|
| const EIGEN_STL_UMAP(image_t, class Image) & DatabaseCache::Images() const { |
| return images_; |
| } |
|
|
| bool DatabaseCache::ExistsCamera(const camera_t camera_id) const { |
| return cameras_.find(camera_id) != cameras_.end(); |
| } |
|
|
| bool DatabaseCache::ExistsImage(const image_t image_id) const { |
| return images_.find(image_id) != images_.end(); |
| } |
|
|
| inline const class CorrespondenceGraph& DatabaseCache::CorrespondenceGraph() |
| const { |
| return correspondence_graph_; |
| } |
|
|
| } |
|
|
| #endif |
|
|