This commit is contained in:
gb 2022-07-28 17:39:12 +08:00
commit cf7676650e
2 changed files with 30 additions and 35 deletions

View File

@ -772,9 +772,7 @@ namespace hg_imgproc
#if ((!defined x86_64) && (!defined WIN32)) #if ((!defined x86_64) && (!defined WIN32))
//linux x86_64 暂时没有OCR三方 //linux x86_64 暂时没有OCR三方
#ifndef test #ifndef test
ret = HWOCR_SDKInitialize(&pHanld);
ret = HWOCR_SDKInitialize(&pHanld);
for (size_t i = 0; i < mats.size(); i++) for (size_t i = 0; i < mats.size(); i++)
{ {
ret = HWOCR_GetFileDirectImage(const_cast<uchar*>(mats[i].data),mats[i].cols,mats[i].rows,mats[i].channels()== 1 ? TColorType::EGray256:TColorType::EColor16M,pHanld,&pDirect); ret = HWOCR_GetFileDirectImage(const_cast<uchar*>(mats[i].data),mats[i].cols,mats[i].rows,mats[i].channels()== 1 ? TColorType::EGray256:TColorType::EColor16M,pHanld,&pDirect);
@ -791,50 +789,47 @@ namespace hg_imgproc
CImageApplyRotation(CImageApplyRotation::RotationType(pDirect)).apply(mats[i],false); CImageApplyRotation(CImageApplyRotation::RotationType(pDirect)).apply(mats[i],false);
mats_.push_back(mats[i]); mats_.push_back(mats[i]);
} }
HWOCR_SDKExit(pHanld); HWOCR_SDKExit(pHanld);
#else #else
typedef int (*sdkinit)(void *); typedef int (*sdkinit)(void *);
typedef int (*sdkgetfiledirectimage)(unsigned char*pbImage, int nWidth, int nHeight, TColorType nColorType, void *pstHandle, int *pDirect); typedef int (*sdkgetfiledirectimage)(unsigned char*pbImage, int nWidth, int nHeight, TColorType nColorType, void *pstHandle, int *pDirect);
typedef int (*sdkexit)(void *); typedef int (*sdkexit)(void *);
void *hanlde = dlopen("/home/hg/sane/release/kylin/mips64/libhwocrdetect.so",RTLD_LAZY); void *hanlde = dlopen("/home/hg/sane/release/kylin/mips64/libhwocrdetect.so",RTLD_LAZY);
if(!hanlde) if(!hanlde)
{ {
return -1; return -1;
} }
sdkinit init = (sdkinit)dlsym(hanlde , "HWOCR_SDKInitialize"); sdkinit init = (sdkinit)dlsym(hanlde , "HWOCR_SDKInitialize");
sdkgetfiledirectimage d = (sdkgetfiledirectimage)dlsym(hanlde , "HWOCR_GetFileDirectImage"); sdkgetfiledirectimage d = (sdkgetfiledirectimage)dlsym(hanlde , "HWOCR_GetFileDirectImage");
sdkexit e= (sdkexit)dlsym(hanlde , "HWOCR_SDKExit"); sdkexit e= (sdkexit)dlsym(hanlde , "HWOCR_SDKExit");
printf("init :%x d:%x e:%x\r\n",init,d,e);
printf("init :%x d:%x e:%x\r\n",init,d,e);
if (init && d && e) if (init && d && e)
{ {
ret = init(&pHanld); ret = init(&pHanld);
if(ret != 0) if(ret != 0)
{ return SCANNER_ERR_ACCESS_DENIED;
return SCANNER_ERR_ACCESS_DENIED;
} for (size_t i = 0; i < mats.size(); i++)
for (size_t i = 0; i < mats.size(); i++)
{ {
ret = d(const_cast<uchar*>(mats[i].data),mats[i].cols,mats[i].rows,mats[i].channels()== 1 ? TColorType::EGray256:TColorType::EColor16M,pHanld,&pDirect); ret = d(const_cast<uchar*>(mats[i].data),mats[i].cols,mats[i].rows,mats[i].channels()== 1 ? TColorType::EGray256:TColorType::EColor16M,pHanld,&pDirect);
if(ret != 0) if(ret != 0)
{ return SCANNER_ERR_NO_DATA;
return SCANNER_ERR_NO_DATA;
}
if(pDirect == 1) if(pDirect == 1)
pDirect = 3; pDirect = 3;
else if(pDirect == 3) else if(pDirect == 3)
pDirect = 1; pDirect = 1;
CImageApplyRotation(CImageApplyRotation::RotationType(pDirect)).apply(mats[i],false); CImageApplyRotation(CImageApplyRotation::RotationType(pDirect)).apply(mats[i],false);
mats_.push_back(mats[i]); mats_.push_back(mats[i]);
} }
} }
e(pHanld) ; e(pHanld) ;
dlclose(hanlde);
#endif #endif
#endif #endif
dlclose(hanlde);
return ret; return ret;
} }
int size_detection() int size_detection()

View File

@ -15,10 +15,10 @@ file(GLOB DIR_HEADS "${PROJECT_SOURCE_DIR}/*.h" "${PROJECT_SOURCE_DIR}/*.hpp")
set(DIR_SRCS ${DIR_SRCS} ${DIR_HEADS}) set(DIR_SRCS ${DIR_SRCS} ${DIR_HEADS})
add_library(${PROJECT_NAME} SHARED ${DIR_SRCS}) add_library(${PROJECT_NAME} SHARED ${DIR_SRCS})
link_directories(${PROJECT_NAME} PRIVATE link_directories(${PROJECT_NAME} PRIVATE
${PROJECT_SOURCE_DIR}/../../release/kylin/${CMAKE_SYSTEM_PROCESSOR} ${PROJECT_SOURCE_DIR}/../../release/uos/${CMAKE_SYSTEM_PROCESSOR}
) )
target_link_libraries(${PROJECT_NAME} PRIVATE hgdriver target_link_libraries(${PROJECT_NAME} PRIVATE hgdriver
${PROJECT_SOURCE_DIR}/../../release/kylin/${CMAKE_SYSTEM_PROCESSOR}/libhgdriver.so ${PROJECT_SOURCE_DIR}/../../release/uos/${CMAKE_SYSTEM_PROCESSOR}/libhgdriver.so
) )
@ -28,7 +28,7 @@ target_include_directories(${PROJECT_NAME} PRIVATE ${PROJECT_SOURCE_DIR}
${PROJECT_SOURCE_DIR}/../../sdk/include ${PROJECT_SOURCE_DIR}/../../sdk/include
) )
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../../release/kylin/${CMAKE_SYSTEM_PROCESSOR}) set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../../release/uos/${CMAKE_SYSTEM_PROCESSOR})