code_app/modules/imgproc/HGOCRHanvon.hpp

60 lines
2.0 KiB
C++

#ifndef __HGOCRHANVON_HPP__
#define __HGOCRHANVON_HPP__
#include "HGOCRBase.hpp"
#include "../base/HGDef.h"
#include "../base/HGInc.h"
#include "../base/HGImage.h"
#include "../base/HGDll.h"
#include "hanwangOCRdetect.h"
#include <vector>
#include <string>
class HGOCRHanvon : public HGOCRBase
{
public:
HGOCRHanvon();
virtual ~HGOCRHanvon();
HGResult Init();
HGResult Deinit();
HGResult ImageOCR(HGImage image, class HGOCRRetImpl **ocrRet);
HGResult ImageOCRToFile(HGImage image, HGUInt outType, const HGChar *outFileName);
HGResult ImageTextDirectOCR(HGImage image, HGUInt* direct);
HGResult AddToImageList(HGImage image);
HGResult ClearImageList();
HGResult ImageListOCRToFile(HGUInt outType, const HGChar* outFileName, HGImageListOcrFunc func, HGPointer param);
private:
int HWOCR_SDKInitialize(void** ppstOcrHandle);
void HWOCR_SDKExit(void* pstOcrHandle);
void HWOCR_InitPdf();
void HWOCR_ExitPdf();
int HWOCR_RecognizeFile2Str(unsigned char* ImgFile, void* pstHandle, char** ppRst, int* pnLen);
void HWOCR_FreeStrRst(char** ppRst);
int HWOCR_RecognizeFile(unsigned char* ImgFile, unsigned char* OutFile, int nFileType, void* pstHandle, char* pLibDir, char* pTmpDir);
int HWOCR_GetFileDirect(unsigned char* ImgFile, void* pstHandle, int* pDirect);
#if defined(HG_CMP_MSC)
int HWOCR_RecognizeFileBatch(char** ppImageFiles, unsigned char* OutFile, int nFileType, void* pstHandle, char* pLibDir, char* pTmpDir,
HWOCR_RecogProgress aFuncRecogProgress, HWOCR_IsCanceled aFuncIsCanceled);
#else
int HWOCR_RecognizeFileBatch(char** ppImageFiles, unsigned char* OutFile, int nFileType, void* pstHandle, char* pLibDir, char* pTmpDir);
#endif
#if defined(HG_CMP_MSC)
static int RecogProgress(int nPercent);
static int IsCanceled();
#endif
private:
//static HGUInt m_refCount;
//static HGOCRHanvon* m_OCR;
HGDll m_dll;
void* m_ocrHandle;
std::vector<std::string> m_imageList;
HGImageListOcrFunc m_func;
HGPointer m_param;
//HGInt m_FuncRet;
};
#endif /* __HGOCRHANVON_HPP__ */