快速开始
请先下载好依赖库。清单如下:
- Lkinfer.dll(64位程序调用)
- Lkinfer32.dll(32位程序调用)
- Lkinfer.lib(64位 C++ 程序使用)
- Lkinfer32.lib(32位 C++ 程序使用)
请根据您的应用选择相应依赖库。
提示
- 目前只支持windows 10+ 系统。windows 7 系统不支持。后续可能会增加对其他系统的支持。
DllLkinferApi
是一个 C# 类,用于调用 Lkinfer.dll 中的函数,详情请查看:DllLkinferApi。- 易语言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", ¶m);
// 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)