AliceVision
Photogrammetric Computer Vision Framework
laplacianPyramid.hpp
1 // This file is part of the AliceVision project.
2 // Copyright (c) 2020 AliceVision contributors.
3 // This Source Code Form is subject to the terms of the Mozilla Public License,
4 // v. 2.0. If a copy of the MPL was not distributed with this file,
5 // You can obtain one at https://mozilla.org/MPL/2.0/.
6 
7 #pragma once
8 
9 #include "imageOps.hpp"
10 
11 #include <aliceVision/image/Image.hpp>
12 
13 namespace aliceVision {
14 
16 {
17  public:
18  struct InputInfo
19  {
23  int offsetX;
24  int offsetY;
25  };
26 
27  public:
28  LaplacianPyramid(size_t base_width, size_t base_height, size_t max_levels);
29 
30  virtual ~LaplacianPyramid();
31 
32  bool initialize();
33 
37  const BoundingBox& outputBoundingBox,
38  const BoundingBox& contentBoudingBox);
39 
40  bool merge(const aliceVision::image::Image<image::RGBfColor>& oimg,
41  const aliceVision::image::Image<float>& oweight,
42  size_t level,
43  int offset_x,
44  int offset_y);
45 
46  bool rebuild(image::Image<image::RGBAfColor>& output, const BoundingBox& roi);
47 
48  private:
49  int _baseWidth;
50  int _baseHeight;
51  int _maxLevels;
52  omp_lock_t _merge_lock;
53 
54  std::vector<image::Image<image::RGBfColor>> _levels;
55  std::vector<image::Image<float>> _weights;
56  std::vector<InputInfo> _inputInfos;
57 };
58 
59 } // namespace aliceVision
aliceVision::LaplacianPyramid::InputInfo
Definition: laplacianPyramid.hpp:18
aliceVision::BoundingBox
Definition: boundingBox.hpp:17
aliceVision
Definition: checkerDetector.cpp:32
aliceVision::image::Image
Definition: ImageDescriber_AKAZE_OCV.hpp:21
aliceVision::LaplacianPyramid
Definition: laplacianPyramid.hpp:15