#pragma once #include "i_contours_extractor.hpp" namespace cvpr { class ContoursExtractor : public IContoursExtractor { public: ContoursExtractor(); ~ContoursExtractor() = default; void init() override; void destroy() override; void setAreaThreshold(double threshold) override; double areaThreshold() override; void setContourOffset(int32_t offset) override; int32_t contourOffset() override; void setApproxPolyEpsilon(double epsilon) override; double approxPolyEpsilon() override; void setSmoothMethod(SMOOTH_METHOD method) override; SMOOTH_METHOD smoothMethod() override; void setAngelThreshold(double threshold) override; double angelThreshold() override; void setDefectThreshold(double threshold) override; double defectThreshold() override; void setSmoothStep(double step) override; double smoothStep() override; void extract(const cv::Mat& alpha, std::vector>& outputContours) override; private: std::shared_ptr m_impl; }; }