百度行驶证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#调用源码下载

相关推荐
AI前端工程狮1 小时前
Agent 不会报错,只会变笨:给 MCP Server 补上契约测试和回放测试
人工智能·编程语言
AI Coder 码农王1 小时前
AgentScope Java v2 第5课,两个注解背后的调用链
人工智能
Bode_20021 小时前
美的集团数智化创新‌
大数据·人工智能
kaixin_啊啊1 小时前
【零基础学AI】第 19 章课后练习与答案
人工智能
A小码哥1 小时前
RAG 召回差?先改切片和重排
人工智能
JAI科研1 小时前
把一个 Qwen3.8的聊天模型改造成 JEV 决策模型
人工智能·语言模型·自然语言处理·chatgpt·transformer·vllm·sglang
瓶瓶持续学习中1 小时前
空间智能与物理AI:国内厂商如何与英伟达协同发展
大数据·人工智能·信息可视化·架构
阿乔外贸日记1 小时前
外贸风控|美国市场7大类欺诈模式解析与风控框架
大数据·人工智能·物联网·microsoft·智能手机
金融小师妹1 小时前
时间序列分析:历次联储利率调整与政策周期变化研究
大数据·人工智能·逻辑回归
水如烟1 小时前
孤能子视角:算账要算到存续------脱锚环境下的能效判据层上移:安全与发展、认知与伦理,是存续层能效的两个对位轴
人工智能