51 lines
1.1 KiB
C++
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;
|
|
};
|
|
}
|