64 lines
2.6 KiB
C++
64 lines
2.6 KiB
C++
#ifndef __HGOCRTESSERACT_HPP__
|
|
#define __HGOCRTESSERACT_HPP__
|
|
|
|
#include "HGOCRBase.hpp"
|
|
#include "../base/HGDef.h"
|
|
#include "../base/HGInc.h"
|
|
#include "../base/HGImage.h"
|
|
#include "../base/HGDll.h"
|
|
#include "../imgfmt/HGTiff.h"
|
|
#include "tesseract/capi.h"
|
|
#include <vector>
|
|
#include <string>
|
|
|
|
class HGOCRTesseract : public HGOCRBase
|
|
{
|
|
public:
|
|
HGOCRTesseract();
|
|
virtual ~HGOCRTesseract();
|
|
|
|
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:
|
|
HGResult OCRToFile(const HGChar *inFileName, HGUInt outType, const HGChar* outFileName);
|
|
|
|
private:
|
|
TessBaseAPI* TessBaseAPICreate();
|
|
void TessBaseAPIDelete(TessBaseAPI* handle);
|
|
void TessBaseAPISetInputName(TessBaseAPI* handle, const char* name);
|
|
void TessBaseAPISetOutputName(TessBaseAPI* handle, const char* name);
|
|
char* TessBaseAPIGetUTF8Text(TessBaseAPI* handle);
|
|
int TessBaseAPIInit3(TessBaseAPI* handle, const char* datapath, const char* language);
|
|
BOOL TessBaseAPIProcessPages(TessBaseAPI* handle, const char* filename, const char* retry_config,
|
|
int timeout_millisec, TessResultRenderer* renderer);
|
|
void TessDeleteText(const char* text);
|
|
void TessBaseAPISetPageSegMode(TessBaseAPI* handle, TessPageSegMode mode);
|
|
BOOL TessBaseAPISetVariable(TessBaseAPI* handle, const char* name, const char* value);
|
|
TessPageIterator* TessBaseAPIAnalyseLayout(TessBaseAPI* handle);
|
|
void TessPageIteratorDelete(TessPageIterator* handle);
|
|
void TessPageIteratorOrientation(TessPageIterator* handle, TessOrientation* orientation, TessWritingDirection* writing_direction,
|
|
TessTextlineOrder* textline_order, float* deskew_angle);
|
|
void TessBaseAPISetImage(TessBaseAPI* handle, const unsigned char* imagedata, int width, int height,
|
|
int bytes_per_pixel, int bytes_per_line);
|
|
int TessBaseAPIRecognize(TessBaseAPI* handle, ETEXT_DESC* monitor);
|
|
const char* TessBaseAPIGetDatapath(TessBaseAPI* handle);
|
|
TessResultRenderer* TessPDFRendererCreate(const char* outputbase, const char* datadir, BOOL textonly);
|
|
void TessDeleteResultRenderer(TessResultRenderer* renderer);
|
|
TessResultRenderer* TessTextRendererCreate(const char* outputbase);
|
|
const char* TessResultRendererExtention(TessResultRenderer* renderer);
|
|
|
|
private:
|
|
HGDll m_dll;
|
|
TessBaseAPI* m_baseApi;
|
|
std::string m_tiffFileName;
|
|
HGTiffWriter m_tiffWriter;
|
|
};
|
|
|
|
#endif /* __HGOCRTESSERACT_HPP__ */ |