[C#] add c sharp apis for ppocr (#1405)

* add c sharp apis for ppocr

* add example

* fix accroding to test

* add ocr models

* fix

* update

* update
This commit is contained in:
chenjian
2023-02-28 19:49:33 +08:00
committed by GitHub
parent a6c1d67584
commit f80d929b03
10 changed files with 1279 additions and 2 deletions

View File

@@ -22,6 +22,36 @@
extern "C" {
#endif
// FD_C_OneDimArrayUint8
DECLARE_AND_IMPLEMENT_FD_TYPE_ONEDIMARRAY(OneDimArrayUint8)
// FD_C_OneDimArrayInt8
DECLARE_AND_IMPLEMENT_FD_TYPE_ONEDIMARRAY(OneDimArrayInt8)
// FD_C_OneDimArrayInt32
DECLARE_AND_IMPLEMENT_FD_TYPE_ONEDIMARRAY(OneDimArrayInt32)
// FD_C_OneDimArraySize
DECLARE_AND_IMPLEMENT_FD_TYPE_ONEDIMARRAY(OneDimArraySize)
// FD_C_OneDimArrayInt64
DECLARE_AND_IMPLEMENT_FD_TYPE_ONEDIMARRAY(OneDimArrayInt64)
// FD_C_OneDimArrayFloat
DECLARE_AND_IMPLEMENT_FD_TYPE_ONEDIMARRAY(OneDimArrayFloat)
// FD_C_Cstr
DECLARE_AND_IMPLEMENT_FD_TYPE_ONEDIMARRAY(Cstr)
// FD_C_OneDimArrayCstr
DECLARE_AND_IMPLEMENT_FD_TYPE_TWODIMARRAY(OneDimArrayCstr, Cstr)
// FD_C_TwoDimArraySize
DECLARE_AND_IMPLEMENT_FD_TYPE_TWODIMARRAY(TwoDimArraySize, OneDimArraySize)
// FD_C_TwoDimArrayInt8
DECLARE_AND_IMPLEMENT_FD_TYPE_TWODIMARRAY(TwoDimArrayInt8, OneDimArrayInt8)
// FD_C_TwoDimArrayInt32
DECLARE_AND_IMPLEMENT_FD_TYPE_TWODIMARRAY(TwoDimArrayInt32, OneDimArrayInt32)
// FD_C_ThreeDimArrayInt32
DECLARE_AND_IMPLEMENT_FD_TYPE_THREEDIMARRAY(ThreeDimArrayInt32,
TwoDimArrayInt32)
// FD_C_TwoDimArrayFloat
DECLARE_AND_IMPLEMENT_FD_TYPE_TWODIMARRAY(TwoDimArrayFloat, OneDimArrayFloat)
// FD_C_OneDimMat
DECLARE_AND_IMPLEMENT_FD_TYPE_TWODIMARRAY(OneDimMat, Mat)
FD_C_Mat FD_C_Imread(const char* imgpath) {
cv::Mat image = cv::imread(imgpath);
return new cv::Mat(image);

View File

@@ -96,6 +96,57 @@ typedef struct FD_C_OneDimMat {
extern "C" {
#endif
#define DECLARE_DESTROY_FD_TYPE_FUNCTION(typename) FASTDEPLOY_CAPI_EXPORT extern void FD_C_Destroy##typename (__fd_take FD_C_##typename *)
#define DECLARE_AND_IMPLEMENT_FD_TYPE_ONEDIMARRAY(typename) void FD_C_Destroy##typename (__fd_take FD_C_##typename * ptr) \
{ \
delete[] ptr->data; \
}
#define DECLARE_AND_IMPLEMENT_FD_TYPE_TWODIMARRAY(typename, one_dim_type) void FD_C_Destroy##typename (__fd_take FD_C_##typename * ptr) \
{ \
for(int i=0; i< ptr->size; i++) { \
FD_C_Destroy##one_dim_type(ptr->data + i); \
} \
delete[] ptr->data; \
}
#define DECLARE_AND_IMPLEMENT_FD_TYPE_THREEDIMARRAY(typename, two_dim_type) void FD_C_Destroy##typename (__fd_take FD_C_##typename * ptr) \
{ \
for(int i=0; i< ptr->size; i++) { \
FD_C_Destroy##two_dim_type(ptr->data + i); \
} \
delete[] ptr->data; \
}
// FD_C_OneDimArrayUint8
DECLARE_DESTROY_FD_TYPE_FUNCTION(OneDimArrayUint8);
// FD_C_OneDimArrayInt8
DECLARE_DESTROY_FD_TYPE_FUNCTION(OneDimArrayInt8);
// FD_C_OneDimArrayInt32
DECLARE_DESTROY_FD_TYPE_FUNCTION(OneDimArrayInt32);
// FD_C_OneDimArraySize
DECLARE_DESTROY_FD_TYPE_FUNCTION(OneDimArraySize);
// FD_C_OneDimArrayInt64
DECLARE_DESTROY_FD_TYPE_FUNCTION(OneDimArrayInt64);
// FD_C_OneDimArrayFloat
DECLARE_DESTROY_FD_TYPE_FUNCTION(OneDimArrayFloat);
// FD_C_Cstr
DECLARE_DESTROY_FD_TYPE_FUNCTION(Cstr);
// FD_C_OneDimArrayCstr
DECLARE_DESTROY_FD_TYPE_FUNCTION(OneDimArrayCstr);
// FD_C_TwoDimArraySize
DECLARE_DESTROY_FD_TYPE_FUNCTION(TwoDimArraySize);
// FD_C_TwoDimArrayInt8
DECLARE_DESTROY_FD_TYPE_FUNCTION(TwoDimArrayInt8);
// FD_C_TwoDimArrayInt32
DECLARE_DESTROY_FD_TYPE_FUNCTION(TwoDimArrayInt32);
// FD_C_ThreeDimArrayInt32
DECLARE_DESTROY_FD_TYPE_FUNCTION(ThreeDimArrayInt32);
// FD_C_TwoDimArrayFloat
DECLARE_DESTROY_FD_TYPE_FUNCTION(TwoDimArrayFloat);
// FD_C_OneDimMat
DECLARE_DESTROY_FD_TYPE_FUNCTION(OneDimMat);
FASTDEPLOY_CAPI_EXPORT extern __fd_give FD_C_Mat
FD_C_Imread(const char* imgpath);