/* * ==================================================== * 功能:空白页识别。 * 作者:刘丁维 * 生成时间:2020/4/21 * 最近修改时间:2020/4/21 v1.0 2020/8/12 v1.1 开放setIntensity和setMinArea;取消isNormal标识位;扩大setIntensity的设置范围,从[2, 20]扩大到[1, 100] * 版本号:v1.1 * ==================================================== */ #ifndef IMAGE_APPLY_DISCARD_BLANK_H #define IMAGE_APPLY_DISCARD_BLANK_H #include "ImageApply.h" class CImageApplyDiscardBlank : public CImageApply { public: CImageApplyDiscardBlank(int blockSize, int devTh); /* * isnormal [in]:true标准模式,false为票据复写纸模式 * */ CImageApplyDiscardBlank(); virtual ~CImageApplyDiscardBlank(void); virtual void apply(cv::Mat& pDib,int side); virtual void apply(std::vector& mats, bool isTwoSide); void setIntensity(int val); void setMinArea(int val) { m_dSize = val; } static bool apply(const cv::Mat& pDib, int blockSize = 200, int devTh = 15); private: static int processRectR(const cv::Mat& image, cv::RotatedRect& rotatedRect, std::vector& maxContour, double scale, double thresh, int blobAreaSize); static bool scalar_LE(const cv::Scalar& val1, const cv::Scalar& val2); static cv::Mat getRoiMat(const cv::Mat& pDib); private: bool m_res; bool m_isNormalDiscard; int m_dSize; cv::Scalar m_devTh; }; #endif // !IMAGE_APPLY_DISCARD_BLANK_H