mirror of
https://github.com/PaddlePaddle/FastDeploy.git
synced 2025-10-05 16:48:03 +08:00

* add c sharp apis for ppocr * add example * fix accroding to test * add ocr models * fix * update * update
96 lines
3.7 KiB
C#
96 lines
3.7 KiB
C#
// Copyright (c) 2023 PaddlePaddle Authors. All Rights Reserved.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
using System;
|
|
using System.IO;
|
|
using System.Runtime.InteropServices;
|
|
using System.Collections.Generic;
|
|
using OpenCvSharp;
|
|
using fastdeploy.types_internal_c;
|
|
|
|
namespace fastdeploy {
|
|
namespace vision {
|
|
|
|
public class Visualize {
|
|
|
|
public static Mat VisDetection(Mat im, DetectionResult detection_result,
|
|
float score_threshold = 0.0f,
|
|
int line_size = 1, float font_size = 0.5f) {
|
|
FD_DetectionResult fd_detection_result =
|
|
ConvertResult.ConvertDetectionResultToCResult(detection_result);
|
|
IntPtr result_ptr =
|
|
FD_C_VisDetection(im.CvPtr, ref fd_detection_result, score_threshold,
|
|
line_size, font_size);
|
|
return new Mat(result_ptr);
|
|
}
|
|
|
|
|
|
public static Mat VisDetection(Mat im, DetectionResult detection_result,
|
|
string[] labels,
|
|
float score_threshold = 0.0f,
|
|
int line_size = 1, float font_size = 0.5f) {
|
|
FD_DetectionResult fd_detection_result =
|
|
ConvertResult.ConvertDetectionResultToCResult(detection_result);
|
|
FD_OneDimArrayCstr labels_in = ConvertResult.ConvertStringArrayToCOneDimArrayCstr(labels);
|
|
IntPtr result_ptr =
|
|
FD_C_VisDetectionWithLabel(im.CvPtr, ref fd_detection_result,
|
|
ref labels_in, score_threshold,
|
|
line_size, font_size);
|
|
return new Mat(result_ptr);
|
|
}
|
|
|
|
public static Mat VisOcr(Mat im, OCRResult ocr_result){
|
|
FD_OCRResult fd_ocr_result =
|
|
ConvertResult.ConvertOCRResultToCResult(ocr_result);
|
|
IntPtr result_ptr =
|
|
FD_C_VisOcr(im.CvPtr, ref fd_ocr_result);
|
|
return new Mat(result_ptr);
|
|
}
|
|
|
|
public static Mat VisSegmentation(Mat im,
|
|
SegmentationResult segmentation_result,
|
|
float weight = 0.5f){
|
|
FD_SegmentationResult fd_segmentation_result =
|
|
ConvertResult.ConvertSegmentationResultToCResult(segmentation_result);
|
|
IntPtr result_ptr =
|
|
FD_C_VisSegmentation(im.CvPtr, ref fd_segmentation_result,
|
|
weight);
|
|
return new Mat(result_ptr);
|
|
}
|
|
|
|
|
|
[DllImport("fastdeploy.dll", EntryPoint = "FD_C_VisDetection")]
|
|
private static extern IntPtr
|
|
FD_C_VisDetection(IntPtr im, ref FD_DetectionResult fd_detection_result,
|
|
float score_threshold, int line_size, float font_size);
|
|
|
|
|
|
[DllImport("fastdeploy.dll", EntryPoint = "FD_C_VisDetectionWithLabel")]
|
|
private static extern IntPtr
|
|
FD_C_VisDetectionWithLabel(IntPtr im, ref FD_DetectionResult fd_detection_result,
|
|
ref FD_OneDimArrayCstr labels,
|
|
float score_threshold, int line_size, float font_size);
|
|
|
|
[DllImport("fastdeploy.dll", EntryPoint = "FD_C_VisOcr")]
|
|
private static extern IntPtr
|
|
FD_C_VisOcr(IntPtr im, ref FD_OCRResult fd_ocr_result);
|
|
|
|
[DllImport("fastdeploy.dll", EntryPoint = "FD_C_VisSegmentation")]
|
|
private static extern IntPtr
|
|
FD_C_VisSegmentation(IntPtr im, ref FD_SegmentationResult fd_segmentation_result, float weight);
|
|
|
|
}
|
|
|
|
}
|
|
} |