// #pragma once // #include "IPreproc.h" // #include // #include "scanservices_utils.h" // class CSizedetect : public IPreproc // { // public: // explicit CSizedetect(int papaertype,int dpi); // virtual ~CSizedetect(void); // virtual int preprocess(cv::Mat& mat,void* unused); // void SetPapertype(int papertype); // private: // void rotate(float& x, float& y, float angle); // void minAeaRect(const float* x, const float* y, int size, float& width, float& height); // void fastMeasureSize(const unsigned char* data, int src_width, int src_height, int channels, float& dst_width, float& dst_height, int threshold = 40, int indent = 20, int step = 5); // private: // int m_papertype; // int m_horThre; // int m_verThre; // int m_dpi; // 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,3401}}, // {PaperSize::G400_LEGAL,HGSize{1700,2800}}, // {PaperSize::G400_LETTER,HGSize{1700,2198}}, // {PaperSize::G400_LETTERR,HGSize{2198,1700}}, // {PaperSize::G400_LONGLETTER,HGSize{2040,2640}}, // {PaperSize::G400_MAXSIZE,HGSize{2338,6614}} // }; // };