Skip to content

快速开始

请先下载好依赖库。清单如下:

  • Lkinfer.dll(64位程序调用)
  • Lkinfer32.dll(32位程序调用)
  • Lkinfer.lib(64位 C++ 程序使用)
  • Lkinfer32.lib(32位 C++ 程序使用)

请根据您的应用选择相应依赖库。

提示

  1. 目前只支持windows 10+ 系统。windows 7 系统不支持。后续可能会增加对其他系统的支持。
  2. DllLkinferApi 是一个 C# 类,用于调用 Lkinfer.dll 中的函数,详情请查看:DllLkinferApi
  3. 易语言DLL命令请查看:DLL命令

OCR 文字识别

调用示例:

C++
#include <Windows.h>
#include <iostream>
#include "export_dll.h"


int main() {
	// 加载模型,返回值为 1 表示加载成功,0 表示加载失败
	int res = initOcrv4(3);// 3 表示识别所使用的线程数,建议设置为 3 或 cpu核心数,根据电脑配置决定
	if (res == 1)
	{
		MessageBoxA(NULL, "ocr 初始化完成,生命周期中只需要初始化一次!", "Message from C++", MB_OK | MB_ICONINFORMATION);
	}
	else
	{
		MessageBoxA(NULL, "ocr 初始化失败:", "Message from C++", MB_OK | MB_ICONINFORMATION);
	}

	std::cout << "---------------------接口入参调用---------------------" << std::endl;
	const char* result = ocrv4DetectParam("C:/Users/Administrator/Desktop/22.png", 0.5f, 50, 1024, 0.3f, 1.6f, 0, 0);
	// window下console默认gbk,result是utf-8,如果想控制台不乱码,则需要转换一下
	const char* gbk_result = utf8ToGBK(result);
	std::cout << "ocrv4DetectParam:" << gbk_result << std::endl << std::endl;

	std::cout << "---------------------结构体入参调用---------------------" << std::endl;
	// 使用结构体
	OcrParam param;
	param.sim = 0.7f;
	const char* result_structure = ocrv4Detect("C:/Users/Administrator/Desktop/22.png", &param);
	// window下console默认gbk,result是utf-8,如果想控制台不乱码,则需要转换一下
	const char* gbk_result_structure = utf8ToGBK(result);
	std::cout << "ocrv4Detect:" << gbk_result_structure << std::endl;
	return 0;
}
c#
private string 指针地址转为UTF8(IntPtr point)
{
    int length = 0;
    while (Marshal.ReadByte(point, length) != 0)
    {
        length++;
    }
    byte[] buffer = new byte[length];
    Marshal.Copy(point, buffer, 0, length);
    string result = Encoding.UTF8.GetString(buffer);
    return result;
}

// 加载模型,返回值为 1 表示加载成功,0 表示加载失败
int res = DllLkinferApi.initOcrv4(3);// 3 表示识别所使用的线程数,建议设置为 3 或 cpu核心数,根据电脑配置决定
if (res == 1)
{
    isInitOCR = true;
    MessageBox.Show("ocr 初始化完成,生命周期中只需要初始化一次!");
}
else
{
    MessageBox.Show("ocr 初始化失败:" + res);
}

IntPtr point = DllLkinferApi.ocrv4DetectParam("D:\\1.png", 0.5f, 50, 1024, 0.3f, 1.6f, 0, 0);
string result = 指针地址转为UTF8(point);
Debug.WriteLine(result);// [{"sim":"0.840","text":"由 Lkinfer 开发驱动","x":85,"x4":213,"y":16,"y4":35},{"sim":"0.661","text":"Copyright @ 2025-present htp://it.top","x":14,"x4":285,"y":38,"y4":64}]
.版本 2
.支持库 spec

.子程序 _按钮3_被单击
.局部变量 res, 整数型

.如果真 (是否初始化了ocr)
    返回 ()
.如果真结束
res = initOcrv4 (3)
调试输出 (“res=” + 到文本 (res))

.如果真 (res = 1)
    信息框 (“ocr初始完成,生命周期只需要初始化一次即可”, 0, , )
    是否初始化了ocr = 真
.如果真结束
.如果真 (res ≠ 1)
    信息框 (“初始化ocr失败:” + 到文本 (res), 0, , )




result = ocrv4DetectParam ("d:\yourPic.jpg", 0.5, 50, 1024, 0.3, 1.6, 0, 0)
result = utf8ToGBK (result)
调试输出 (result=” + result)

YOLOv8 目标检测

C++
#include <Windows.h>
#include <iostream>
#include "export_dll.h"

int main() {
	int res = loadYolov8Model("C++", "C:\\Users\\Administrator\\Desktop\\yolo\\yolov8n.onnx");
	if (res == 1)
	{
		MessageBoxA(NULL, "加载模型成功", "Message from C++", MB_OK | MB_ICONINFORMATION);
	}
	else
	{
		MessageBoxA(NULL, "加载模型失败", "Message from C++", MB_OK | MB_ICONINFORMATION);
	}

	const char* result = yolov8Detect("C++", "C:\\Users\\Administrator\\Desktop\\yolo\\bus.jpg");
	std::cout << "yolov8Detect:" << result << std::endl;
}
c#
private string 指针地址转为UTF8(IntPtr point)
{
    int length = 0;
    while (Marshal.ReadByte(point, length) != 0)
    {
        length++;
    }
    byte[] buffer = new byte[length];
    Marshal.Copy(point, buffer, 0, length);
    string result = Encoding.UTF8.GetString(buffer);
    return result;
}

// 加载模型,返回值为 1 表示加载成功,0 表示加载失败
int res = DllLkinferApi.loadYolov8Model("c#", "d:\\yolov8n.onnx");// 注意 c# 这个名字
if (res == 1)
{
    MessageBox.Show("加载模型成功: " + res); 
}
else
{
    MessageBox.Show("加载模型失败: " + res);
}

// 注意 c# 这个名字与上面加载的模型相同
IntPtr potion = DllLkinferApi.yolov8Detect("c#", "d:\\yourPic.png");
string res = 指针地址转为UTF8(potion);
Debug.WriteLine(res);// [{"h":500,"id":0,"name":"person","sim":"0.890","w":139,"x":671,"y":381}]
.版本 2
.支持库 spec

.子程序 _按钮5_被单击
.局部变量 res, 整数型

res = loadYolov8Model (“demo”, "d:\yolov8n.onnx")
调试输出 (“yolo加载:” + 到文本 (res))
.如果真 (res = 1)
    信息框 (“加载模型成功”, 0, , )
.如果真结束
.如果真 (res ≠ 1)
    信息框 (“加载模型失败:” + 到文本 (res), 0, , )





调试输出 (“setYolov8Sim” + 到文本 (setYolov8Sim (“demo”, 0.6)))

res = yolov8Detect (“demo”, "d:\yourPic.png")
调试输出 (“res=” + res)

图片展示