// Copyright (c) 2012-2017 VideoStitch SAS // Copyright (c) 2018 stitchEm #pragma once #include "libvideostitch/parse.hpp" #include namespace VideoStitch { namespace AutoCrop { /** * @brief Configuration used by the AutoCropAlgorithm */ class VS_EXPORT AutoCropConfig { public: explicit AutoCropConfig(const Ptv::Value* config); ~AutoCropConfig() = default; AutoCropConfig(const AutoCropConfig&); bool isValid() const { return isConfigValid; } size_t getGaussianBlurKernelSize() const { return gaussianBlurKernelSize; } float getGaussianBlurSigma() const { return gaussianBlurSigma; } size_t getNeighborThreshold() const { return neighborThreshold; } size_t getDifferenceThreshold() const { return differenceThreshold; } size_t getConvexHullSampledCount() const { return convexHullSampledCount; } size_t getFineTuneMarginSize() const { return fineTuneMarginSize; } bool dumpCircleImage() const { return circleImage; } bool dumpOriginalImage() const { return originalImage; } double getScaleRadius() const { return scaleRadius; } private: bool isConfigValid; size_t gaussianBlurKernelSize; float gaussianBlurSigma; size_t convexHullSampledCount; size_t neighborThreshold; size_t differenceThreshold; size_t fineTuneMarginSize; bool circleImage; bool originalImage; double scaleRadius; }; } // namespace AutoCrop } // namespace VideoStitch