algorithm.h 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. #ifndef ALGORITHM_H
  2. #define ALGORITHM_H
  3. #include "algorithmbase.h"
  4. #include <string>
  5. class CannyEdge : public AlgorithmBase {
  6. public:
  7. struct RuntimeParamsCannyEdge: public RuntimeParamsBase {
  8. int edgeCount;
  9. cv::Mat inputimage;
  10. cv::Mat outimage;
  11. } runtimeParams;
  12. public:
  13. AlgorithmMeta cannyMeta;
  14. CannyEdge();
  15. ~CannyEdge() override = default;
  16. void process(cv::Mat image) override;
  17. AlgorithmMeta getParams() override;
  18. void setParams(const AlgorithmMeta& params) override;
  19. RuntimeParamsBase* getRuntimeParams() override
  20. {
  21. return &runtimeParams;
  22. }
  23. public:
  24. // Store runtime parameters after process
  25. };
  26. class Thresholding : public AlgorithmBase {
  27. public:
  28. std::string AlgoritName;
  29. int Thresh;
  30. int MaxVal;
  31. int Type;
  32. Thresholding();
  33. ~Thresholding() override = default;
  34. void process(cv::Mat image) override;
  35. AlgorithmMeta getParams() override;
  36. void setParams(const AlgorithmMeta& params) override;
  37. RuntimeParamsBase* getRuntimeParams() override {
  38. return &runtimeParams;
  39. }
  40. // Runtime parameters storage
  41. struct RuntimeParamsThresholding : public RuntimeParamsBase {
  42. cv::Mat inputimage;
  43. int whitePixelCount;
  44. cv::Mat outimage;
  45. } runtimeParams;
  46. };
  47. class GaussianBlur : public AlgorithmBase {
  48. public:
  49. std::string AlgoritName;
  50. int KernelSize;
  51. double SigmaX;
  52. double SigmaY;
  53. GaussianBlur();
  54. ~GaussianBlur() override = default;
  55. void process(cv::Mat image) override;
  56. AlgorithmMeta getParams() override;
  57. void setParams(const AlgorithmMeta& params) override;
  58. RuntimeParamsBase* getRuntimeParams() override {
  59. return &runtimeParams;
  60. }
  61. // Runtime parameters storage
  62. struct RuntimeParamsGaussianBlur : public RuntimeParamsBase {
  63. cv::Mat inputimage;
  64. cv::Mat outimage;
  65. } runtimeParams;
  66. };
  67. class MedianBlur : public AlgorithmBase {
  68. public:
  69. std::string AlgoritName;
  70. int KernelSize;
  71. MedianBlur();
  72. ~MedianBlur() override = default;
  73. void process(cv::Mat image) override;
  74. AlgorithmMeta getParams() override;
  75. void setParams(const AlgorithmMeta& params) override;
  76. RuntimeParamsBase* getRuntimeParams() override {
  77. return &runtimeParams;
  78. }
  79. // Runtime parameters storage
  80. struct RuntimeParamsGaussianBlur : public RuntimeParamsBase {
  81. cv::Mat inputimage;
  82. cv::Mat outimage;
  83. } runtimeParams;
  84. };
  85. class Dilate : public AlgorithmBase {
  86. public:
  87. std::string AlgoritName;
  88. int KernerSize;
  89. int Iterations;
  90. Dilate();
  91. ~Dilate() override = default;
  92. void process(cv::Mat image) override;
  93. AlgorithmMeta getParams() override;
  94. void setParams(const AlgorithmMeta& params) override;
  95. RuntimeParamsBase* getRuntimeParams() override {
  96. return &runtimeParams;
  97. }
  98. // Runtime parameters storage
  99. struct RuntimeParamsDilate : public RuntimeParamsBase {
  100. cv::Mat inputimage;
  101. cv::Mat outimage;
  102. } runtimeParams;
  103. };
  104. class Erode : public AlgorithmBase {
  105. public:
  106. std::string AlgoritName;
  107. int KernerSize;
  108. int Iterations;
  109. Erode();
  110. ~Erode() override = default;
  111. void process(cv::Mat image) override;
  112. AlgorithmMeta getParams() override;
  113. void setParams(const AlgorithmMeta& params) override;
  114. RuntimeParamsBase* getRuntimeParams() override {
  115. return &runtimeParams;
  116. }
  117. // Runtime parameters storage
  118. struct RuntimeParamsErode : public RuntimeParamsBase {
  119. cv::Mat inputimage;
  120. cv::Mat outimage;
  121. } runtimeParams;
  122. };
  123. class Grayscale : public AlgorithmBase {
  124. public:
  125. std::string AlgoritName;
  126. Grayscale();
  127. ~Grayscale() override = default;
  128. void process(cv::Mat image) override;
  129. AlgorithmMeta getParams() override;
  130. void setParams(const AlgorithmMeta& params) override;
  131. RuntimeParamsBase* getRuntimeParams() override {
  132. return &runtimeParams;
  133. }
  134. // Runtime parameters storage
  135. struct RuntimeParamsGrayscale : public RuntimeParamsBase {
  136. cv::Mat inputimage;
  137. cv::Mat outimage;
  138. } runtimeParams;
  139. };
  140. class HistogramEqualization : public AlgorithmBase {
  141. public:
  142. std::string AlgoritName;
  143. HistogramEqualization();
  144. ~HistogramEqualization() override = default;
  145. void process(cv::Mat image) override;
  146. AlgorithmMeta getParams() override;
  147. void setParams(const AlgorithmMeta& params) override;
  148. RuntimeParamsBase* getRuntimeParams() override {
  149. return &runtimeParams;
  150. }
  151. // Runtime parameters storage
  152. struct RuntimeParamsHistogramEqualization : public RuntimeParamsBase {
  153. cv::Mat inputimage;
  154. cv::Mat outimage;
  155. } runtimeParams;
  156. };
  157. class FindContours : public AlgorithmBase {
  158. public:
  159. std::string AlgoritName;
  160. int Mode; // RETR_TREE
  161. int Method; // CHAIN_APPROX_SIMPLE
  162. FindContours();
  163. ~FindContours() override = default;
  164. void process(cv::Mat image) override;
  165. AlgorithmMeta getParams() override;
  166. void setParams(const AlgorithmMeta& params) override;
  167. RuntimeParamsBase* getRuntimeParams() override {
  168. return &runtimeParams;
  169. }
  170. // Runtime parameters storage
  171. struct RuntimeParamsFindContours : public RuntimeParamsBase {
  172. cv::Mat inputimage;
  173. cv::Mat outimage;
  174. int contourCount;
  175. } runtimeParams;
  176. };
  177. #endif // ALGORITHM_H