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 
10 #if defined(_MSC_VER) && !defined(OPALS_NO_AUTOLINK)
11  #if defined _DEBUG && !defined OPALS_NO_DEBUG
12  #pragma comment(lib, "opalsEdgeDetect_d.lib")
13  #else
14  #pragma comment(lib, "opalsEdgeDetect.lib")
15  #endif
16 #endif
17 
18 namespace opals {
19 
20  namespace opts
21  {
22  /// Options of \ref ModuleEdgeDetect
23  namespace EdgeDetect
24  {
25  /// Options of \ref ModuleEdgeDetect
26  using Options =
27  IGroup< Names::_, false,
37  >;
38  }
39  }
40 
41  /// Provides different raster based edge detection algorithms (e.g. Canny).
42  /** The aim of opalsEdgeDetect is to provide an interface for different edge detectors.
43  Based on an input raster file and an appropriate set of parameters for the respective
44  edge detection algorithm, a binary output raster is derived containing the detected
45  edge pixels. */
46  /// \see \ref ModuleEdgeDetect
47  class OPALS_API IEdgeDetect : virtual public IModuleBase
48  {
49 
50  public:
51  static IEdgeDetect* New();
52  static IEdgeDetect* New( IControlObject &controlObject );
53  static IEdgeDetect* New( const IModuleBase &parent );
54  static IEdgeDetect* New( const IModuleBase &parent, IControlObject &controlObject );
55 
56  virtual ~IEdgeDetect() {}
57 
58  /// \name Access to module-specific options.
59  ///@{
61  virtual Options& opts() = 0;
62  virtual const Options& opts() const = 0;
63  ///@}
64 
65  };
66 
67 }
Provides different raster based edge detection algorithms (e.g. Canny).
Definition: IEdgeDetect.hpp:47
IGroup< Names::_, false, ILeaf< Names::inFile, false, Path >, ILeaf< Names::outFile, false, Path >, ILeaf< Names::oFormat, false, String >, ILeaf< Names::detector, false, EdgeDetector >, ILeaf< Names::sigmaSmooth, false, float >, ILeaf< Names::threshold, false, Array< double, 2 > >, ILeaf< Names::tempDirectory, false, Path >, ILeaf< Names::debugOutFile, false, bool >, ILeaf< Names::limit, false, GridLimit > > Options
Options of Module EdgeDetect.
Definition: IEdgeDetect.hpp:37
Leaf that holds a read-only value.
Definition: IOption.hpp:63
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:108