Loading [MathJax]/extensions/tex2jax.js
IEdgeDetect.hpp
1 #pragma once
2 
3 #include <opals/IModuleBase.hpp>
4 #include <opals/Path.hpp>
5 #include <opals/Vector.hpp>
6 #include <opals/EdgeDetector.hpp>
7 #include <opals/GridLimit.hpp>
8 #include <opals/Array.hpp>
9 #include <opals/NoDataType.hpp>
10 
11 #if defined(_MSC_VER) && !defined(OPALS_NO_AUTOLINK)
12  #if defined _DEBUG && !defined OPALS_NO_DEBUG
13  #pragma comment(lib, "opalsEdgeDetect_d.lib")
14  #else
15  #pragma comment(lib, "opalsEdgeDetect.lib")
16  #endif
17 #endif
18 
19 namespace opals {
20 
21  namespace opts
22  {
23  /// Options of \ref ModuleEdgeDetect
24  namespace EdgeDetect
25  {
26  /// Options of \ref ModuleEdgeDetect
27  using Options =
28  IGroup< Names::_,
39  >;
40  }
41  }
42 
43  /// Provides different raster based edge detection algorithms (e.g. Canny).
44  /** The aim of opalsEdgeDetect is to provide an interface for different edge detectors.
45  Based on an input raster file and an appropriate set of parameters for the respective
46  edge detection algorithm, a binary output raster is derived containing the detected
47  edge pixels. */
48  /// \see \ref ModuleEdgeDetect
49  class OPALS_API IEdgeDetect : virtual public IModuleBase
50  {
51 
52  public:
53  static IEdgeDetect* New();
54  static IEdgeDetect* New( IControlObject &controlObject );
55  static IEdgeDetect* New( const IModuleBase &parent );
56  static IEdgeDetect* New( const IModuleBase &parent, IControlObject &controlObject );
57 
58  virtual ~IEdgeDetect() {}
59 
60  /// \name Access to module-specific options.
61  ///@{
63  Options& opts() override = 0;
64  const Options& opts() const override = 0;
65  ///@}
66 
67  };
68 
69 }
Provides different raster based edge detection algorithms (e.g. Canny).
Definition: IEdgeDetect.hpp:49
A leaf that holds a value.
Definition: IOption.hpp:62
IGroup< Names::_, IValue< Names::inFile, false, Path >, IValue< Names::outFile, false, Path >, IValue< Names::oFormat, false, String >, IValue< Names::detector, false, EdgeDetector >, IValue< Names::sigmaSmooth, false, float >, IValue< Names::threshold, false, Array< double, 2 > >, IValue< Names::tempDirectory, false, Path >, IValue< Names::debugOutFile, false, bool >, IValue< Names::limit, false, GridLimit >, IValue< Names::noData, false, NoDataType > > Options
Options of Module EdgeDetect.
Definition: IEdgeDetect.hpp:39
Contains the public interface of OPALS.
Definition: AbsValueOrQuantile.hpp:8
Abstract base class of all opals modules.
Definition: IModuleBase.hpp:13
Interface for retrieving status and progress information from a module run.
Definition: c++_api/inc/opals/IControlObject.hpp:30
A group of options.
Definition: IOption.hpp:136