code_device/hgdriver/ImageProcess/ImageApplyRotation.h

83 lines
2.0 KiB
C
Raw Permalink Normal View History

2022-07-29 08:41:34 +00:00
/*
* ====================================================
2022-08-12 06:13:17 +00:00
* <EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD>תͼ<EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ά
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>2020/4/21
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>ʱ<EFBFBD>v1.0 2020/04/21
v1.1 2020/08/12 <EFBFBD>޸<EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ʶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>BUG
v1.2 2021/10/15 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD>ʶ<EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>
v1.2.1 2022/04/25 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD>ţ<EFBFBD>v1.2.1
2022-07-29 08:41:34 +00:00
* ====================================================
*/
#ifndef IMAGE_APPLY_ROTATION_H
#define IMAGE_APPLY_ROTATION_H
#include "ImageApply.h"
#ifdef _WIN32
//#define USE_HANWANG
#ifdef USE_HANWANG
#define HG_GPDF_API_BUILD
#include <hg_gpdf.h>
#endif
#endif
class GIMGPROC_LIBRARY_API CImageApplyRotation : public CImageApply
{
public:
enum class RotationType
{
2022-08-12 06:13:17 +00:00
Invalid, //<2F><>Ч
Rotate_90_clockwise, //˳ʱ<CBB3><CAB1>90<39><30>
Rotate_180, //180<38><30>
Rotate_90_anti_clockwise, //<2F><>ʱ<EFBFBD><CAB1>90<39><EFBFBD><E3A3AC>270<37><30>
2022-07-29 08:41:34 +00:00
2022-08-12 06:13:17 +00:00
AutoTextOrientation //<2F>Զ<EFBFBD><D4B6>ĸ巽<C4B8><E5B7BD>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD>ת
2022-07-29 08:41:34 +00:00
};
public:
/*
2022-08-12 06:13:17 +00:00
* rotation [in]:<EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* isBackTransposed [in]:trueΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>180<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD>Ȼ
* dpi [in]:<EFBFBD><EFBFBD>ǰͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>DPI<EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>rotationΪAutoTextOrientationʱ<EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD>Ͻ<EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD>Ϊ200DPI<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD><EFBFBD>
* tessadataPath [in]:ѵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>rotationΪAutoTextOrientationʱ<EFBFBD><EFBFBD>Ч
2022-07-29 08:41:34 +00:00
*/
CImageApplyRotation(RotationType rotation, bool isBackTransposed = false, int dpi = 200, const char* tessdataPath = nullptr);
virtual ~CImageApplyRotation();
virtual void apply(cv::Mat& pDib, int side) override;
virtual void apply(std::vector<cv::Mat>& mats, bool isTwoSide);
bool isBackTransposed() { return m_backTranspose; }
int getDPI() { return m_dpi; }
RotationType getRotationType() { return m_rotation; }
void setBackTransposed(bool enabled) { m_backTranspose = enabled; }
void setDPI(int dpi) { m_dpi = dpi; }
void setRotationType(RotationType type) { m_rotation = type; }
private:
RotationType m_rotation;
bool m_backTranspose;
int m_dpi;
#ifdef _WIN32
#ifdef USE_HANWANG
HG_OCR* m_ocr;
#endif
#endif
};
#endif // !IMAGE_APPLY_ROTATION_H