#include "OCR_dll.h"
#include <Windows.h>
#include <stdio.h>
#include <io.h>
#pragma warning(disable:4996)
bool IsFileExists(const char* path)
{
if (_access(path, 0) > -1)
return true;
else
return false;
//if (FILE* file = fopen(path, "r")) {
// fclose(file);
// return true;
//}
//else {
// return false;
//}
}
HMODULE HMoudule = NULL;
bool InitDll()
{
if (HMoudule == NULL)
{
if (!IsFileExists(DLL_NAME))
{
MessageBox(NULL, L"dll不存在!", L"警告", 0);
return false;
}
HMoudule = LoadLibrary(DLL_NAMEW);
}
return HMoudule != NULL;
}
void FreeDll()
{
if (HMoudule != NULL)
{
FreeLibrary(HMoudule);
}
}
typedef int (*IsCPUSupport_func)();
IsCPUSupport_func IsCPUSupport_;
// -1:函数加载失败,0:不支持,1:AVX,2:AVX2
int IsCPUSupport()
{
if (!InitDll())
return -1;
if (IsCPUSupport_ == NULL)
IsCPUSupport_ = (IsCPUSupport_func)GetProcAddress(HMoudule, "IsCPUSupport");
int nRet = IsCPUSupport_();
return nRet;
}
typedef void* (*Initialize_func)(const char*, const char*, const char*, const char*, OCRParameter&);
Initialize_func Initialize_;
HANDLE Initialize(const char* det_infer, const char* cls_infer, const char* rec_infer, const char* keys, OCRParameter& paramter)
{
if (!InitDll())
return nullptr;
if (Initialize_ == NULL)
Initialize_ = (Initialize_func)GetProcAddress(HMoudule, "Initialize");
HANDLE nRet = Initialize_(det_infer, cls_infer, rec_infer, keys, paramter);
return nRet;
}
typedef int (*FreeEngine_func)(HANDLE);
FreeEngine_func FreeEngine_;
int FreeEngine(HANDLE engine)
{
if (!InitDll())
return -1;
if (FreeEngine_ == NULL)
FreeEngine_ = (FreeEngine_func)GetProcAddress(HMoudule, "FreeEngine");
int nRet = FreeEngine_(engine);
return nRet;
}
typedef int(*DetectByte_func)(HANDLE,const char*, size_t, void*);
DetectByte_func DetectByte_;
int DetectByte(HANDLE engine, const char* imagedata, size_t size, void* result)
{
if (!InitDll())
return -1;
if (DetectByte_ == NULL)
DetectByte_ = (DetectByte_func)GetProcAddress(HMoudule, "DetectByte");
int nRet = DetectByte_(engine, imagedata, size, result);
return nRet;
}
typedef int(*Detect_func)(HANDLE, const char*, void*);
Detect_func Detect_;
int Detect(HANDLE engine, const char* imagefile, void* result)
{
if (!InitDll())
return -1;
if (Detect_ == NULL)
Detect_ = (Detect_func)GetProcAddress(HMoudule, "Detect");
int nRet = Detect_(engine, imagefile, result);
return nRet;
}
typedef int (*FreeDetectResult_func)(HANDLE);
FreeDetectResult_func FreeDetectResult_;
int FreeDetectResult(HANDLE result)
{
if (!InitDll())
return -1;
if (FreeDetectResult_ == NULL)
FreeDetectResult_ = (FreeDetectResult_func)GetProcAddress(HMoudule, "FreeDetectResult");
int nRet = FreeDetectResult_(result);
return nRet;
}
没有合适的资源?快使用搜索试试~ 我知道了~
ocr-opencv图像字符识别
共12个文件
h:5个
cpp:4个
dll:3个
需积分: 15 1 下载量 131 浏览量
2022-10-31
15:19:42
上传
评论
收藏 12MB ZIP 举报
温馨提示
ocr-opencv图像字符识别
资源推荐
资源详情
资源评论
收起资源包目录
ocr.zip (12个子文件)
PaddleOCR.dll 867KB
PaddleOCRSharp.dll 19KB
paddle_inference.dll 39.11MB
OCR
OCREngine.cpp 3KB
OCR_dll.cpp 3KB
OCR_det.h 130B
OCR_dll.h 575B
OCREngine.h 477B
OCRResult.h 480B
OCRParams.h 2KB
OCRParams.cpp 415B
OCR_det.cpp 969B
共 12 条
- 1
资源评论
WuSk__
- 粉丝: 19
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功