AliceVision
Photogrammetric Computer Vision Framework
colorHarmonizeEngineGlobal.hpp
1 // This file is part of the AliceVision project.
2 // Copyright (c) 2017 AliceVision contributors.
3 // Copyright (c) 2013 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/numeric/numeric.hpp>
11 #include <aliceVision/feature/feature.hpp>
12 #include <aliceVision/feature/RegionsPerView.hpp>
13 #include <aliceVision/track/TracksBuilder.hpp>
14 
15 #include <memory>
16 
17 namespace aliceVision {
18 
19 enum class EHistogramSelectionMethod
20 {
21  eHistogramHarmonizeFullFrame = 0,
22  eHistogramHarmonizeMatchedPoints,
23  eHistogramHarmonizeVLDSegment
24 };
25 
26 inline std::string EHistogramSelectionMethod_description()
27 {
28  return "Histogram selection method: \n"
29  "* full_frame \n"
30  "* matched_points \n"
31  "* VLD_segments\n";
32 }
33 
34 EHistogramSelectionMethod EEHistogramSelectionMethod_stringToEnum(const std::string& histogramSelectionMethod);
35 std::string EHistogramSelectionMethod_enumToString(const EHistogramSelectionMethod histogramSelectionMethod);
36 std::ostream& operator<<(std::ostream& os, EHistogramSelectionMethod p);
37 std::istream& operator>>(std::istream& in, EHistogramSelectionMethod& p);
38 
48 {
49  public:
50  ColorHarmonizationEngineGlobal(const std::string& sfmDataFilename,
51  const std::vector<std::string>& featuresFolders,
52  const std::vector<std::string>& matchesFolders,
53  const std::string& outputDirectory,
54  const std::vector<feature::EImageDescriberType>& descTypes,
55  EHistogramSelectionMethod selectionMethod,
56  int imgRef = 0);
57 
59 
60  virtual bool process();
61 
62  private:
63  EHistogramSelectionMethod _selectionMethod;
64  int _imgRef;
65 
66  // Input data
67 
68  feature::RegionsPerView _regionsPerView;
70  std::vector<std::string> _fileNames;
72  std::vector<std::pair<size_t, size_t>> _imageSize;
74  aliceVision::matching::PairwiseMatches _pairwiseMatches;
76  std::vector<feature::EImageDescriberType> _descTypes;
78  std::string _sfmDataFilename;
80  std::vector<std::string> _matchesFolders;
82  std::vector<std::string> _featuresFolders;
84  std::string _outputDirectory;
85 
87  bool cleanGraph();
88 
90  bool readInputData();
91 };
92 
93 } // namespace aliceVision
aliceVision::ColorHarmonizationEngineGlobal
The ColorHarmonizationEngineGlobal class.
Definition: colorHarmonizeEngineGlobal.hpp:47
aliceVision
Definition: checkerDetector.cpp:32
aliceVision::feature::RegionsPerView
Container for all Regions (Features and Descriptors) for each View.
Definition: RegionsPerView.hpp:65