2022-05-16 09:00:08 +00:00
|
|
|
|
#include "HGOCR.h"
|
2022-05-11 09:19:50 +00:00
|
|
|
|
#include "HGOCRBase.hpp"
|
|
|
|
|
#include "HGOCRHanvon.hpp"
|
|
|
|
|
#include "HGOCRRetImpl.hpp"
|
|
|
|
|
|
|
|
|
|
HGResult HGAPI HGImgProc_CreateOCRMgr(HGOCRMgr* ocrMgr)
|
|
|
|
|
{
|
|
|
|
|
if (NULL == ocrMgr)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGOCRBase* ocrMgrImpl = new HGOCRHanvon;
|
|
|
|
|
HGResult ret = ocrMgrImpl->Init();
|
|
|
|
|
if (HGBASE_ERR_OK != ret)
|
|
|
|
|
{
|
|
|
|
|
delete ocrMgrImpl;
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
*ocrMgr = (HGOCRMgr)ocrMgrImpl;
|
|
|
|
|
return HGBASE_ERR_OK;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGResult HGAPI HGImgProc_DestroyOCRMgr(HGOCRMgr ocrMgr)
|
|
|
|
|
{
|
|
|
|
|
if (NULL == ocrMgr)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGOCRBase* ocrMgrImpl = (HGOCRBase*)ocrMgr;
|
|
|
|
|
HGResult ret = ocrMgrImpl->Deinit();
|
|
|
|
|
if (HGBASE_ERR_OK != ret)
|
|
|
|
|
{
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
delete ocrMgrImpl;
|
|
|
|
|
return HGBASE_ERR_OK;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGResult HGAPI HGImgProc_ImageOCR(HGOCRMgr ocrMgr, HGImage image, HGOCRRet* ocrRet)
|
|
|
|
|
{
|
|
|
|
|
if (NULL == ocrMgr)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGOCRBase* ocrMgrImpl = (HGOCRBase*)ocrMgr;
|
|
|
|
|
HGOCRRetImpl* ocrRetImpl = NULL;
|
|
|
|
|
HGResult ret = ocrMgrImpl->ImageOCR(image, &ocrRetImpl);
|
|
|
|
|
if (HGBASE_ERR_OK != ret)
|
|
|
|
|
{
|
|
|
|
|
assert(NULL == ocrRetImpl);
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
*ocrRet = (HGOCRRet)ocrRetImpl;
|
|
|
|
|
return HGBASE_ERR_OK;
|
|
|
|
|
}
|
|
|
|
|
|
2022-05-12 01:15:57 +00:00
|
|
|
|
HGResult HGAPI HGImgProc_DestroyOCRRet(HGOCRRet ocrRet)
|
2022-05-11 09:19:50 +00:00
|
|
|
|
{
|
|
|
|
|
if (NULL == ocrRet)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGOCRRetImpl* ocrRetImpl = (HGOCRRetImpl*)ocrRet;
|
|
|
|
|
delete ocrRetImpl;
|
|
|
|
|
return HGBASE_ERR_OK;
|
|
|
|
|
}
|
|
|
|
|
|
2022-05-12 01:15:57 +00:00
|
|
|
|
HGResult HGAPI HGImgProc_GetOCRRetBlockCount(HGOCRRet ocrRet, HGUInt* count)
|
2022-05-11 09:19:50 +00:00
|
|
|
|
{
|
|
|
|
|
if (NULL == ocrRet)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGOCRRetImpl* ocrRetImpl = (HGOCRRetImpl*)ocrRet;
|
|
|
|
|
return ocrRetImpl->GetBlockCount(count);
|
|
|
|
|
}
|
|
|
|
|
|
2022-05-12 01:15:57 +00:00
|
|
|
|
HGResult HGAPI HGImgProc_GetOCRRetBlockText(HGOCRRet ocrRet, HGUInt index, const HGChar** text)
|
2022-05-11 09:19:50 +00:00
|
|
|
|
{
|
|
|
|
|
if (NULL == ocrRet)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGOCRRetImpl* ocrRetImpl = (HGOCRRetImpl*)ocrRet;
|
|
|
|
|
return ocrRetImpl->GetBlockText(index, text);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGResult HGAPI HGImgProc_ImageOCRToFile(HGOCRMgr ocrMgr, HGImage image, HGUInt outType, const HGChar* outFileName)
|
|
|
|
|
{
|
|
|
|
|
if (NULL == ocrMgr)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGOCRBase* ocrMgrImpl = (HGOCRBase*)ocrMgr;
|
|
|
|
|
return ocrMgrImpl->ImageOCRToFile(image, outType, outFileName);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGResult HGAPI HGImgProc_ImageTextDirectOCR(HGOCRMgr ocrMgr, HGImage image, HGUInt* direct)
|
|
|
|
|
{
|
|
|
|
|
if (NULL == ocrMgr)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGOCRBase* ocrMgrImpl = (HGOCRBase*)ocrMgr;
|
|
|
|
|
return ocrMgrImpl->ImageTextDirectOCR(image, direct);
|
2022-08-23 03:06:18 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGResult HGAPI HGImgProc_AddToImageOCRList(HGOCRMgr ocrMgr, HGImage image)
|
|
|
|
|
{
|
|
|
|
|
if (NULL == ocrMgr)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGOCRBase* ocrMgrImpl = (HGOCRBase*)ocrMgr;
|
|
|
|
|
return ocrMgrImpl->AddToImageList(image);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGResult HGAPI HGImgProc_ClearImageOCRList(HGOCRMgr ocrMgr)
|
|
|
|
|
{
|
|
|
|
|
if (NULL == ocrMgr)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGOCRBase* ocrMgrImpl = (HGOCRBase*)ocrMgr;
|
|
|
|
|
return ocrMgrImpl->ClearImageList();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGResult HGAPI HGImgProc_ImageListOCRToFile(HGOCRMgr ocrMgr, HGUInt outType, const HGChar* outFileName, HGImageListOcrFunc func, HGPointer param)
|
|
|
|
|
{
|
|
|
|
|
if (NULL == ocrMgr)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGOCRBase* ocrMgrImpl = (HGOCRBase*)ocrMgr;
|
|
|
|
|
return ocrMgrImpl->ImageListOCRToFile(outType, outFileName, func, param);
|
2022-05-11 09:19:50 +00:00
|
|
|
|
}
|