AliceVision
Photogrammetric Computer Vision Framework
ImageDescriber_AKAZE_OCV.hpp
1 // This file is part of the AliceVision project.
2 // Copyright (c) 2016 AliceVision contributors.
3 // Copyright (c) 2012 openMVG contributors.
4 // This Source Code Form is subject to the terms of the Mozilla Public License,
5 // v. 2.0. If a copy of the MPL was not distributed with this file,
6 // You can obtain one at https://mozilla.org/MPL/2.0/.
7 
8 #pragma once
9 
10 #include <aliceVision/feature/imageDescriberCommon.hpp>
11 #include <aliceVision/feature/ImageDescriber.hpp>
12 #include <aliceVision/feature/regionsFactory.hpp>
13 
14 #include <aliceVision/system/Logger.hpp>
15 
16 namespace aliceVision {
17 
18 namespace image {
19 
20 template<typename T>
21 class Image;
22 
23 } // namespace image
24 
25 namespace feature {
26 
32 {
33  public:
34  ImageDescriber_AKAZE_OCV() = default;
35 
40  bool useCuda() const override { return false; }
41 
46  bool useFloatImage() const override { return false; }
47 
52  EImageDescriberType getDescriberType() const override { return EImageDescriberType::AKAZE_OCV; }
53 
61  std::size_t getMemoryConsumption(std::size_t width, std::size_t height) const override { return 3 * width * height * sizeof(unsigned char); }
62 
68  void setConfigurationPreset([[maybe_unused]] ConfigurationPreset preset) override
69  {
70  ALICEVISION_LOG_DEBUG("Image describer preset ignored for AKAZE_OCV.");
71  }
72 
81  bool describe(const image::Image<unsigned char>& image,
82  std::unique_ptr<Regions>& regions,
83  const image::Image<unsigned char>* mask = NULL) override;
84 
89  void allocate(std::unique_ptr<Regions>& regions) const override { regions.reset(new AKAZE_Float_Regions); }
90 
91  ~ImageDescriber_AKAZE_OCV() override = default;
92 };
93 
94 } // namespace feature
95 } // namespace aliceVision
aliceVision::feature::ImageDescriber_AKAZE_OCV::useFloatImage
bool useFloatImage() const override
Check if the image describer use float image.
Definition: ImageDescriber_AKAZE_OCV.hpp:46
aliceVision
Definition: checkerDetector.cpp:32
aliceVision::feature::ImageDescriber_AKAZE_OCV::describe
bool describe(const image::Image< unsigned char > &image, std::unique_ptr< Regions > &regions, const image::Image< unsigned char > *mask=NULL) override
Detect regions on the 8-bit image and compute their attributes (description)
Definition: ImageDescriber_AKAZE_OCV.cpp:18
aliceVision::feature::ImageDescriber
A pure virtual class for image description computation.
Definition: ImageDescriber.hpp:159
aliceVision::feature::ImageDescriber_AKAZE_OCV
Create an ImageDescriber interface for OpenCV AKAZE feature extractor Regions is the same as AKAZE fl...
Definition: ImageDescriber_AKAZE_OCV.hpp:31
aliceVision::image::Image
Definition: ImageDescriber_AKAZE_OCV.hpp:21
aliceVision::feature::ImageDescriber_AKAZE_OCV::getDescriberType
EImageDescriberType getDescriberType() const override
Get the corresponding EImageDescriberType.
Definition: ImageDescriber_AKAZE_OCV.hpp:52
aliceVision::feature::ImageDescriber_AKAZE_OCV::useCuda
bool useCuda() const override
Check if the image describer use CUDA.
Definition: ImageDescriber_AKAZE_OCV.hpp:40
aliceVision::feature::ImageDescriber_AKAZE_OCV::allocate
void allocate(std::unique_ptr< Regions > &regions) const override
Allocate Regions type depending of the ImageDescriber.
Definition: ImageDescriber_AKAZE_OCV.hpp:89
aliceVision::feature::ImageDescriber_AKAZE_OCV::getMemoryConsumption
std::size_t getMemoryConsumption(std::size_t width, std::size_t height) const override
Get the total amount of RAM needed for a feature extraction of an image of the given dimension.
Definition: ImageDescriber_AKAZE_OCV.hpp:61
aliceVision::feature::FeatDescRegions
Definition: Regions.hpp:144
aliceVision::feature::ImageDescriber_AKAZE_OCV::setConfigurationPreset
void setConfigurationPreset([[maybe_unused]] ConfigurationPreset preset) override
Use a preset to control the number of detected regions.
Definition: ImageDescriber_AKAZE_OCV.hpp:68
aliceVision::feature::ConfigurationPreset
Definition: ImageDescriber.hpp:118