/* * ==================================================== * 功能:尺寸检测 * 作者:刘丁维 * 生成时间:2022/05/11 * 最近修改时间:2022/05/11 * 版本号:v1.0 * ==================================================== */ #ifndef IMAGE_APPLY_SIZE_DETECTION_H #define IMAGE_APPLY_SIZE_DETECTION_H #include "ImageApply.h" #include class GIMGPROC_LIBRARY_API CImageApplySizeDetection { public: enum PaperSize { G400_A3, G400_A4, G400_A4R, G400_A5, G400_A5R, G400_A6, G400_A6R, G400_B4, G400_B5, G400_B5R, G400_B6R, G400_B6, G400_DOUBLELETTER, G400_LEGAL, G400_LETTER, G400_LONGLETTER, G400_MAXSIZE }; struct HGSize { int width; int height; }; public: CImageApplySizeDetection(int paperType, int thre_x = 70, int thre_y = 80); ~CImageApplySizeDetection(); virtual int apply(const cv::Mat& pDib); inline void setPaperType(int paperType) { m_paperType = paperType; } private: int m_paperType; int m_thre_x; int m_thre_y; std::map m_supportPaper = { {PaperSize::G400_A3,HGSize{2338,3307}}, {PaperSize::G400_A4,HGSize{1653,2338}}, {PaperSize::G400_A4R,HGSize{2338,1653}}, {PaperSize::G400_A5,HGSize{1165,1653}}, {PaperSize::G400_A5R,HGSize{1653,1165}}, {PaperSize::G400_A6,HGSize{826,1165}}, {PaperSize::G400_A6R,HGSize{1165,826}}, {PaperSize::G400_B4,HGSize{1969,2780}}, {PaperSize::G400_B5,HGSize{1385,1968}}, {PaperSize::G400_B5R,HGSize{1968,1385}}, {PaperSize::G400_B6R,HGSize{1433,1007}}, {PaperSize::G400_B6,HGSize{1007,1433}}, {PaperSize::G400_DOUBLELETTER,HGSize{2200,3400}}, {PaperSize::G400_LEGAL,HGSize{1700,2800}}, {PaperSize::G400_LETTER,HGSize{1700,2198}}, {PaperSize::G400_LONGLETTER,HGSize{2040,2640}}, {PaperSize::G400_MAXSIZE,HGSize{2338,6614}} }; }; #endif // !IMAGE_APPLY_SIZE_DETECTION_H