nim_duilib/examples/contour/contours_extractor.hpp
2025-03-16 16:42:44 +08:00

51 lines
1.1 KiB
C++

#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<std::vector<cv::Point>>& outputContours) override;
private:
std::shared_ptr<IContoursExtractor> m_impl;
};
}