百度行驶证C++离线SDK V1.1 C#接入

百度行驶证C++离线SDK V1.1 C#接入

目录

说明

效果

项目

代码

下载


说明

自己根据SDK封装了动态库,然后C#调用。

SDK包结构

效果

项目

代码

using Newtonsoft.Json;

using System;

using System.Drawing;

using System.Runtime.InteropServices;

using System.Text;

using System.Windows.Forms;

namespace CSharpWinformTest

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

const string DllName = "DLSharp.dll";

//行驶证正页

DllImport(DllName, EntryPoint = "dl_front_init_license", CallingConvention = CallingConvention.Cdecl)

internal extern static int dl_front_init_license(string key, string licenseFile, bool is_remote);

DllImport(DllName, EntryPoint = "dl_front_create", CallingConvention = CallingConvention.Cdecl)

internal extern static IntPtr dl_front_create();

DllImport(DllName, EntryPoint = "dl_front_init", CallingConvention = CallingConvention.Cdecl)

internal extern static int dl_front_init(IntPtr engine, string ini_path);

DllImport(DllName, EntryPoint = "dl_front_ocr", CallingConvention = CallingConvention.Cdecl)

internal extern static int dl_front_ocr(IntPtr engine, string image_path, StringBuilder ocr_result1, StringBuilder ocr_result2);

DllImport(DllName, EntryPoint = "dl_front_destroy", CallingConvention = CallingConvention.Cdecl)

internal extern static void dl_front_destroy(IntPtr engine);

//行驶证副页

DllImport(DllName, EntryPoint = "dl_back_init_license", CallingConvention = CallingConvention.Cdecl)

internal extern static int dl_back_init_license(string key, string licenseFile, bool is_remote);

DllImport(DllName, EntryPoint = "dl_back_create", CallingConvention = CallingConvention.Cdecl)

internal extern static IntPtr dl_back_create();

DllImport(DllName, EntryPoint = "dl_back_init", CallingConvention = CallingConvention.Cdecl)

internal extern static int dl_back_init(IntPtr engine, string ini_path);

DllImport(DllName, EntryPoint = "dl_back_ocr", CallingConvention = CallingConvention.Cdecl)

internal extern static int dl_back_ocr(IntPtr engine, string image_path, StringBuilder ocr_result1, StringBuilder ocr_result2);

DllImport(DllName, EntryPoint = "dl_back_destroy", CallingConvention = CallingConvention.Cdecl)

internal extern static void dl_back_destroy(IntPtr engine);

IntPtr front_engine;

IntPtr back_engine;

private void button1_Click(object sender, EventArgs e)

{

if (image_path == "")

{

return;

}

StringBuilder ocr_result1 = new StringBuilder(1024);

StringBuilder ocr_result2 = new StringBuilder(1024);

int res = dl_front_ocr(front_engine, image_path, ocr_result1, ocr_result2);

if (res == 0)

{

Object jsonObject = JsonConvert.DeserializeObject(ocr_result1.ToString());

textBox1.Text = JsonConvert.SerializeObject(jsonObject, Newtonsoft.Json.Formatting.Indented);

}

else

{

textBox1.Text = "识别失败";

}

}

private void Form1_Load(object sender, EventArgs e)

{

string key = "AISEE_xingshizheng_win_0530_3_3";

string licenseFile = Application.StartupPath + "\\license\\license.ini";

int res = -1;

string ini_path = "";

res = dl_front_init_license(key, licenseFile, false);

Console.WriteLine(res.ToString());

front_engine = dl_front_create();

ini_path = Application.StartupPath + "\\resource\\vehiclecard_front_resource";

res = dl_front_init(front_engine, ini_path);

Console.WriteLine(res.ToString());

res = dl_back_init_license(key, licenseFile, false);

Console.WriteLine(res.ToString());

back_engine = dl_back_create();

ini_path = Application.StartupPath + "\\resource\\vehiclecard_back_resource";

res = dl_back_init(back_engine, ini_path);

Console.WriteLine(res.ToString());

image_path = Application.StartupPath + "\\front_images\\2.jpg";

//image_path = Application.StartupPath + "\\back_images\\1.png";

pictureBox1.Image = new Bitmap(image_path);

}

private void Form1_FormClosing(object sender, FormClosingEventArgs e)

{

dl_front_destroy(front_engine);

dl_back_destroy(back_engine);

}

string fileFilter = "*.*|*.bmp;*.jpg;*.jpeg;*.tiff;*.tiff;*.png";

string image_path = "";

private void button2_Click(object sender, EventArgs e)

{

OpenFileDialog ofd = new OpenFileDialog();

ofd.Filter = fileFilter;

if (ofd.ShowDialog() != DialogResult.OK) return;

pictureBox1.Image = null;

image_path = ofd.FileName;

pictureBox1.Image = new Bitmap(image_path);

textBox1.Text = "";

}

private void button3_Click(object sender, EventArgs e)

{

if (image_path == "")

{

return;

}

StringBuilder ocr_result1 = new StringBuilder(1024);

StringBuilder ocr_result2 = new StringBuilder(1024);

int res = dl_back_ocr(back_engine, image_path, ocr_result1, ocr_result2);

if (res == 0)

{

Object jsonObject = JsonConvert.DeserializeObject(ocr_result1.ToString());

textBox1.Text = JsonConvert.SerializeObject(jsonObject, Newtonsoft.Json.Formatting.Indented);

}

else

{

textBox1.Text = "识别失败";

}

}

private void button4_Click(object sender, EventArgs e)

{

image_path = Application.StartupPath + "\\front_images\\2.jpg";

pictureBox1.Image = new Bitmap(image_path);

}

private void button5_Click(object sender, EventArgs e)

{

image_path = Application.StartupPath + "\\back_images\\1.png";

pictureBox1.Image = new Bitmap(image_path);

}

}

}

复制代码
using Newtonsoft.Json;
using System;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Forms;

namespace CSharpWinformTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        const string DllName = "DLSharp.dll";

        //行驶证正页

        [DllImport(DllName, EntryPoint = "dl_front_init_license", CallingConvention = CallingConvention.Cdecl)]
        internal extern static int dl_front_init_license(string key, string licenseFile, bool is_remote);

        [DllImport(DllName, EntryPoint = "dl_front_create", CallingConvention = CallingConvention.Cdecl)]
        internal extern static IntPtr dl_front_create();

        [DllImport(DllName, EntryPoint = "dl_front_init", CallingConvention = CallingConvention.Cdecl)]
        internal extern static int dl_front_init(IntPtr engine, string ini_path);

        [DllImport(DllName, EntryPoint = "dl_front_ocr", CallingConvention = CallingConvention.Cdecl)]
        internal extern static int dl_front_ocr(IntPtr engine, string image_path, StringBuilder ocr_result1, StringBuilder ocr_result2);

        [DllImport(DllName, EntryPoint = "dl_front_destroy", CallingConvention = CallingConvention.Cdecl)]
        internal extern static void dl_front_destroy(IntPtr engine);


        //行驶证副页

        [DllImport(DllName, EntryPoint = "dl_back_init_license", CallingConvention = CallingConvention.Cdecl)]
        internal extern static int dl_back_init_license(string key, string licenseFile, bool is_remote);

        [DllImport(DllName, EntryPoint = "dl_back_create", CallingConvention = CallingConvention.Cdecl)]
        internal extern static IntPtr dl_back_create();

        [DllImport(DllName, EntryPoint = "dl_back_init", CallingConvention = CallingConvention.Cdecl)]
        internal extern static int dl_back_init(IntPtr engine, string ini_path);

        [DllImport(DllName, EntryPoint = "dl_back_ocr", CallingConvention = CallingConvention.Cdecl)]
        internal extern static int dl_back_ocr(IntPtr engine, string image_path, StringBuilder ocr_result1, StringBuilder ocr_result2);

        [DllImport(DllName, EntryPoint = "dl_back_destroy", CallingConvention = CallingConvention.Cdecl)]
        internal extern static void dl_back_destroy(IntPtr engine);


        IntPtr front_engine;
        IntPtr back_engine;

        private void button1_Click(object sender, EventArgs e)
        {

            if (image_path == "")
            {
                return;
            }

            StringBuilder ocr_result1 = new StringBuilder(1024);
            StringBuilder ocr_result2 = new StringBuilder(1024);
            int res = dl_front_ocr(front_engine, image_path, ocr_result1, ocr_result2);
            if (res == 0)
            {

                Object jsonObject = JsonConvert.DeserializeObject(ocr_result1.ToString());
                textBox1.Text = JsonConvert.SerializeObject(jsonObject, Newtonsoft.Json.Formatting.Indented);
            }
            else
            {
                textBox1.Text = "识别失败";
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string key = "AISEE_xingshizheng_win_0530_3_3";
            string licenseFile = Application.StartupPath + "\\license\\license.ini";
            int res = -1;
            string ini_path = "";

            res = dl_front_init_license(key, licenseFile, false);
            Console.WriteLine(res.ToString());

            front_engine = dl_front_create();

            ini_path = Application.StartupPath + "\\resource\\vehiclecard_front_resource";
            res = dl_front_init(front_engine, ini_path);
            Console.WriteLine(res.ToString());

            res = dl_back_init_license(key, licenseFile, false);
            Console.WriteLine(res.ToString());

            back_engine = dl_back_create();

            ini_path = Application.StartupPath + "\\resource\\vehiclecard_back_resource";
            res = dl_back_init(back_engine, ini_path);
            Console.WriteLine(res.ToString());

            image_path = Application.StartupPath + "\\front_images\\2.jpg";
            //image_path = Application.StartupPath + "\\back_images\\1.png";

            pictureBox1.Image = new Bitmap(image_path);
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            dl_front_destroy(front_engine);
            dl_back_destroy(back_engine);
        }

        string fileFilter = "*.*|*.bmp;*.jpg;*.jpeg;*.tiff;*.tiff;*.png";
        string image_path = "";

        private void button2_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Filter = fileFilter;
            if (ofd.ShowDialog() != DialogResult.OK) return;
            pictureBox1.Image = null;
            image_path = ofd.FileName;
            pictureBox1.Image = new Bitmap(image_path);
            textBox1.Text = "";
        }

        private void button3_Click(object sender, EventArgs e)
        {
            if (image_path == "")
            {
                return;
            }

            StringBuilder ocr_result1 = new StringBuilder(1024);
            StringBuilder ocr_result2 = new StringBuilder(1024);
            int res = dl_back_ocr(back_engine, image_path, ocr_result1, ocr_result2);
            if (res == 0)
            {
                Object jsonObject = JsonConvert.DeserializeObject(ocr_result1.ToString());
                textBox1.Text = JsonConvert.SerializeObject(jsonObject, Newtonsoft.Json.Formatting.Indented);
            }
            else
            {
                textBox1.Text = "识别失败";
            }
        }

        private void button4_Click(object sender, EventArgs e)
        {
            image_path = Application.StartupPath + "\\front_images\\2.jpg";
            pictureBox1.Image = new Bitmap(image_path);
        }

        private void button5_Click(object sender, EventArgs e)
        {
            image_path = Application.StartupPath + "\\back_images\\1.png";
            pictureBox1.Image = new Bitmap(image_path);
        }
    }
}

下载

C++封装源码下载

C#调用源码下载

相关推荐
硬件学长森哥1 小时前
Android影像基础--cameraAPI2核心流程
android·计算机视觉
昨日之日20061 小时前
Wan2.2-S2V - 音频驱动图像生成电影级质量的数字人视频 ComfyUI工作流 支持50系显卡 一键整合包下载
人工智能·音视频
阿让啊2 小时前
C语言strtol 函数使用方法
c语言·数据结构·c++·单片机·嵌入式硬件
深圳市快瞳科技有限公司2 小时前
小场景大市场:猫狗识别算法在宠物智能设备中的应用
算法·计算机视觉·宠物
liulilittle2 小时前
OPENPPP2 —— IP标准校验和算法深度剖析:从原理到SSE2优化实现
网络·c++·网络协议·tcp/ip·算法·ip·通信
SEO_juper4 小时前
大型语言模型SEO(LLM SEO)完全手册:驾驭搜索新范式
人工智能·语言模型·自然语言处理·chatgpt·llm·seo·数字营销
攻城狮7号5 小时前
腾讯混元翻译模型Hunyuan-MT-7B开源,先前拿了30个冠军
人工智能·hunyuan-mt-7b·腾讯混元翻译模型·30个冠军
zezexihaha5 小时前
从“帮写文案”到“管生活”:个人AI工具的边界在哪?
人工智能
算家云5 小时前
nano banana官方最强Prompt模板来了!六大场景模板详解
人工智能·谷歌·ai大模型·算家云·ai生图·租算力,到算家云·nano banana 提示词
暴躁的大熊5 小时前
AI助力决策:告别生活与工作中的纠结,明析抉择引领明智选择
人工智能