精易论坛
标题: (VC6精编)QSOCR—OCR/找图找色/opencv支持库 [打印本页]
作者: 情殇QAQ 时间: 5 天前
标题: (VC6精编)QSOCR—OCR/找图找色/opencv支持库
QSOCR—OCR/找图找色/opencv5支持库一个支持库,把 OpenCV 5.0 + ONNX Runtime + PaddleOCR + YOLO + dddd 验证码 + 找图找色 全部静态打包给易语言直接调用。无需安装任何运行库、无需附带一堆 DLL —— 一个 .fne 文件即可上手。
这是什么QSOCR 用 VS2022 (现代 C++) 写真正的算法实现,再用 VC6 编一层易语言 把它桥接进易语言。这样易语言就能静态链接现代编译器的产物,既拿到了现代 C++ + OpenCV 5.0 的能力,又保持易语言一贯的「拖一个 .fne 就能用」的简单。
实现 DLL 经 内嵌在 .fne 里、运行时内存加载,所以发布给别人时只有一个 .fne(动态)或一个 .lib(静态)**,不会散落一堆依赖文件。
特点速览真功能,不是演示桥 —— 256 条命令 / 23 个数据类型,覆盖图像处理、OCR、目标检测、验证码、模板匹配与找色五大领域。
零外部依赖 —— OpenCV 5.0、ONNX Runtime 1.2*、PaddleOCR 全部以静态库 /MT 链入,目标机不用装任何 VC 运行库 / Python / CUDA。
找图找色 —— QS匹配器 (QSMatcher) 提供找图、找色、多色、透明/Alpha/边缘/旋转/缩放匹配、比图,接口贴近自动化老用户的习惯,且全系列支持 ROI 区域限定。
一库吃下整条视觉链路 —— 从「读图 → 预处理 → 找目标 / OCR / 分类 / 检测 → 画框输出」一条龙,中间数据都是同一个 QSMat 对象,不用反复转格式。
升级不破坏老程序 —— 命令序号 append-only 冻结,新版本只增不改、不重排,老 .e 工程升级后无需重新接线。
CPU / DML 双变体 —— 纯 CPU 版零额外依赖即可跑;DML 版借 DirectX 12 (DirectML) 做 GPU 推理加速,按需取用。
纯 32 位 · 单文件 —— 全程 Win32 /MT,一个 .fne 走天下。
能做什么影像处理 — QSMat / QS轮廓集 (QSContours)基于 OpenCV cv::Mat 的句柄类,一个对象贯穿全程。约 70 个方法,涵盖:
类别
代表命令(中文名 / 英文对照)
能力
载入/保存/属性加载文件 (LoadFile) 加载字节集 (LoadBytes) 保存文件 (SaveFile) 复制 (Clone)文件/字节集双向读写、克隆、查行列通道深度
像素读写取像素 (At) 置像素 (SetAt) 取像素数据 (RawData) 置像素数据 (SetRawData)单点读写 (COLORREF 编码) + 一次性整图像素搬运
几何变换重置大小 (Resize) 旋转图像 (Rotate) 翻转 (Flip) 仿射变换 (WarpAffine) 裁剪矩形 (CropRect)缩放、旋转、翻转、仿射、裁剪、加边框、提取通道
颜色/二值/边缘颜色格式转换 (CvtColor) 二值化 (Threshold) 边缘检测canny (Canny) 颜色范围 (InRange)色彩空间转换、二值化、自适应阈值、边缘检测、颜色范围找色
平滑滤波高斯模糊 (GaussianBlur) 中值模糊 (MedianBlur) 双边滤波 (BilateralFilter)高斯、中值、均值、双边模糊
图像增强直方图均衡 (EqualizeHist) 限制对比均衡 (Clahe) 归一化 (Normalize) 查表映射 (LUT)直方图均衡、限制对比度均衡、归一化、查表映射
绘制画矩形 (DrawRect) 画线 (DrawLine) 绘制文本 (PutText) 漫水填充 (FloodFill)画框线圆椭圆箭头、漫水填充、GDI 中文文字渲染
合成/运算合成图像 (MergeIM) 按位与 (BitwiseAnd) 加权融合 (AddWeighted) 复制到 (CopyTo)Alpha 合成、按位与或异或、加权融合、ROI 拷贝
模板/轮廓/统计模板匹配极值 (MatchTemplateMax) 查找轮廓 (FindContours) 极值定位 (MinMaxLoc)模板匹配极值、查找/绘制轮廓、计数/求和/均值/极值定位OCR 文字识别 — QSPaddleOCR (QSPPOCR) / QS训练识别模型 (QSOcrModel) / QS单行识别信息 (QSOcrInfo) / QS文本行 (QSTextLine)QSPaddleOCR (QSPPOCR) —— PaddleOCR 检测 + 识别,支持单行(识别单行 / DetectLine)与多行(识别多行 / DetectLines,返回 QS单行识别信息 (QSOcrInfo) 数组,逐行/逐字给出文本、坐标、置信度)。
QS训练识别模型 (QSOcrModel) —— 通用 ONNX OCR 模型,支持文本识别(识别文本 / PredictText、识别文本CTC / PredictTextCTC)、分类、滑块缺口(识别滑块 / PredictSlider)、旋转角度(识别旋转 / PredictRotate)。
目标检测 — QS目标检测 (QSYolo)YOLO 模型检测,检测 (Detect) / 检测BGR24 (DetectBGR24) 直接对 QSMat 或 24 位位图推理,返回 QS检测框 (QSBox) 数组。
验证码识别 — QSDddd自训练 (QSDdddTrain) / QSDddd识别 (QSDdddCls)基于 dddd 体系:QSDddd自训练 (QSDdddTrain) 加载训练模型预测,QSDddd识别 (QSDdddCls) 分类模型,适合通用字符型验证码。
模板匹配 / 找图找色 — QS匹配器 (QSMatcher)约 35 条命令,自动化常用:
类别
代表命令(中文名 / 英文对照)
小图管理加载小图目录 (LoadSmallDir) · 加载小图Zip (LoadSmallZip) · 清空小图 (ClearSmall)
找图找图 (Find) · 找图一次 (FindOnce) · 比较图片 (CmpPic) · 定点比图 (CmpPicAt)
高级匹配找图透明 (FindTransparent) · 找图Alpha (FindAlpha) · 找图边缘 (FindEdge) · 找图旋转角度 (FindRotateAngle) · 找图缩放中心 (FindScaleCenter)
找色找色 (FindColor) · 多点找色 (FindMultiColor) · 统计颜色数 (FindColorCount) · 取颜色 (GetColor) · 比颜色 (CmpColor)全系列尾参支持 ROI 区域限定(留空 = 全图),只在指定区域内搜索,更快更准。
安装部署发布包按推理后端分两个目录,各只含两个文件:
dist/
├─ cpu/ QSOCR.fne QSOCR_static.lib ← 纯 CPU,零额外依赖
└─ dml/ QSOCR.fne QSOCR_static.lib ← DirectML GPU 加速在易语言 IDE 里使用(动态)关闭易语言 IDE(运行时会锁住 lib\*.fne)。
把所选变体的 QSOCR.fne 拷到易语言安装目录的 lib\ 下。
重新打开易语言 IDE,在「支持库配置」中勾选 QSOCR。
在「支持库」面板即可看到 QSMat / QS匹配器 (QSMatcher) / QSPaddleOCR (QSPPOCR) 等类与命令。
编译成独立 EXE(静态)把 QSOCR_static.lib 拷到易语言安装目录的 static_lib\ 下。
在编译选项里选择「静态编译」,生成的 EXE 已内嵌实现,无需再带任何 DLL。
快速上手下面是调用流程示意(伪代码,展示命令与对象用法)。代码里直接用易语言显示的中文命令名(这就是 IDE 里实际书写的样子)。可运行的完整范例见 QSOCR示例.e。
例 1:读图 → 转灰 → 二值化 → 保存
.局部变量 图, QSMat
图.加载文件 ("C:\test.png") ' 从文件载入
图.颜色格式转换 (QS_COLOR_BGR2GRAY) ' 转灰度
图.二值化 (127, 255, QS_THRESH_BINARY)
图.保存文件 ("C:\out.png")例 2:找色
.局部变量 屏, QSMat
.局部变量 匹配器, QS匹配器
.局部变量 点, QSPoint2i
屏.加载文件 ("screen.png")
' 在整图里找 "ff0000-101010" 这种偏色范围的颜色, 命中回写坐标
匹配器.找色 (屏, "ff0000-101010", 点)例 3:多行 OCR
.局部变量 行数组, QS单行识别信息, , "0"
行数组 = 引擎.识别多行 (图)
.计次循环首 (取数组成员数 (行数组), i)
调试输出 (行数组.文本 (), 行数组.置信度 ())
.计次循环尾 ()
CPU / DML 变体怎么选CPU 版
DML 版
推理后端CPUDirectML (DirectX 12 GPU)
额外依赖无需要支持 DX12 的显卡 / 驱动
适用兼容性优先、无独显机器OCR / 检测吞吐量大、有显卡加速需求两个变体的影像处理 (OpenCV) 部分完全一致,差异只在 OCR / 分类 / 检测 / 验证码的 ONNX 推理后端。库 GUID 相同,可直接替换切换。
使用须知仅 Windows —— 库的类型与命令只在 Windows 平台的易语言 IDE 中显示(底层依赖 OpenCV / GDI / DirectML)。
命令序号已冻结 —— 自本发布版起,命令/数据类型序号 append-only,只增不重排,后续升级向后兼容,老工程无需改动。
异常行为 —— 调试运行时若传入非法参数,会以运行时错误中断当前语句(便于定位);编译成 EXE 的发布版则静默返回失败值(假 / 空),不中断流程。
命令附录(按领域分组)命令在易语言中以中文名显示;下表为 中文命令名 (英文对照名) + 功能。共 256 条,此处按类/领域列出主要命令。
QSMat — 影像矩阵(核心类)
命令(中文名 / 英文对照)
功能
加载文件 (LoadFile) / 加载字节集 (LoadBytes)从文件 / 字节集载入图像
保存文件 (SaveFile)保存到文件
复制 (Clone) / 新建图像 (NewMat)克隆 / 新建图像
高度 (Rows) 宽度 (Cols) 通道数 (Channels) 类型 (Type) 位深 (Depth) 维数 (Dims) 是否为空 (Empty)行/列/通道/类型/深度/维数/是否为空
取像素 (At) / 置像素 (SetAt) / 置像素点 (SetAtScalar)读 / 写单像素 (COLORREF)
取像素数据 (RawData) / 置像素数据 (SetRawData)一次性整图像素读 / 写
取图片数据 (Data) / 显示图片 (Show)取数据指针 / 弹窗显示
重置大小 (Resize) 旋转图像 (Rotate) 翻转 (Flip) 转置 (Transpose) 仿射变换 (WarpAffine)缩放/旋转/翻转/转置/仿射变换
裁剪矩形 (CropRect) 画圆形 (CropCircle) 加边框 (CopyMakeBorder) 提取通道 (ExtractChannel)矩形/圆形裁剪、加边框、提取通道
金字塔缩小 (PyrDown) / 金字塔放大 (PyrUp)图像金字塔下/上采样
颜色格式转换 (CvtColor) 二值化 (Threshold) 自适应阈值 (AdaptiveThreshold) 边缘检测canny (Canny) 形态学 (MorphologyEx)色彩转换/二值化/自适应阈值/边缘/形态学
颜色范围 (InRange) 非 (BitwiseNot)颜色范围筛选 / 取反
高斯模糊 (GaussianBlur) 中值模糊 (MedianBlur) 均值模糊 (Blur) 双边滤波 (BilateralFilter)高斯/中值/均值/双边模糊
缩放转8位 (ConvertScaleAbs) 直方图均衡 (EqualizeHist) 限制对比均衡 (Clahe) 归一化 (Normalize) 查表映射 (LUT) 类型转换 (ConvertTo)缩放取绝对值/直方图均衡/CLAHE/归一化/查表/类型转换
按位与 (BitwiseAnd) 按位或 (BitwiseOr) 按位异或 (BitwiseXor) 绝对差 (AbsDiff) 加权融合 (AddWeighted)按位与/或/异或、绝对差、加权融合
画矩形 (DrawRect) 画线 (DrawLine) 画椭圆 (DrawEllipse) 画箭头 (ArrowedLine) 绘制文本 (PutText) 漫水填充 (FloodFill)画矩形/线/椭圆/箭头、写文字(GDI 中文)、漫水填充
去透明为白 (AlphaToBlack) 纯黑转透明 (BlackToAlpha) 复制到 (CopyTo) 合成图像 (MergeIM) 填充 (SetTo)Alpha 与黑底互转、ROI 拷贝、图像合成、整体赋值
模板匹配极值 (MatchTemplateMax)模板匹配并取最佳位置
查找轮廓 (FindContours) / 绘制轮廓 (DrawContours)查找 / 绘制轮廓
非零数 (CountNonZero) 像素和 (Sum) 平均值 (Mean) 均值标准差 (MeanStdDev) 极值定位 (MinMaxLoc)非零计数/求和/均值/均值标准差/极值定位</details>
QS轮廓集 — 轮廓集合
命令(中文名 / 英文对照)
功能
数量 (Length)轮廓条数
外接矩形 (BoundingRect)某条轮廓的外接矩形
是否存在 (ElementExists)指定轮廓是否存在
子点数 (SubLength) / 子元素 (SubElement)某条轮廓的点数 / 取其中一个点</details>
OCR — QSPaddleOCR / QS训练识别模型 / QS单行识别信息 / QS文本行
命令(中文名 / 英文对照)
功能
创建 (Create)创建 PaddleOCR 引擎(文件/内存模型)
识别单行 (DetectLine)识别单行,返回 QS文本行 (QSTextLine)
识别多行 (DetectLines)识别多行,返回 QS单行识别信息 (QSOcrInfo) 数组
文本 (Text) 字符数 (CharCount) 字符文本 (CharText) 字符置信度 (CharScore) 字符位置 (CharPosition)单行:整行文本/字数/单字文本/单字置信度/单字位置
文本 (GetText) 矩形 (GetRect) 置信度 (GetScore)多行元素:文本/矩形/置信度
字符数 (GetCharCount) 字符文本 (GetCharText) 字符置信度 (GetCharScore) 字符位置 (GetCharPosition)多行元素:逐字 文本/置信度/位置
创建 (Create) 设置分类 (SetClass)通用 ONNX OCR 模型:创建 / 设置字符集
识别文本 (PredictText) 识别文本CTC (PredictTextCTC) 识别分类 (PredictCls)文本识别 / CTC 识别 / 分类
识别滑块 (PredictSlider) 识别旋转 (PredictRotate)滑块缺口 / 旋转角度预测</details>
QS目标检测 — YOLO 目标检测
命令(中文名 / 英文对照)
功能
创建 (Create)加载 YOLO 模型
检测 (Detect) / 检测BGR24 (DetectBGR24)检测目标,返回 QS检测框 (QSBox) 数组
释放 (Release)释放模型</details>
验证码 — QSDddd自训练 / QSDddd识别
命令(中文名 / 英文对照)
功能
创建 (Create) 载入配置 (LoadConfig) 识别 (Predict)dddd 训练模型:创建 / 载配置 / 预测
创建 (Create) 设置类表 (SetClass) 识别 (Predict)dddd 分类模型:创建 / 设字符集 / 预测</details>
QS匹配器 — 模板匹配 / 找图找色
命令(中文名 / 英文对照)
功能
加载小图 (LoadSmall) 加载小图目录 (LoadSmallDir) 加载小图Zip (LoadSmallZip)加载小图(单张 / 目录 / zip)
取小图尺寸 (GetPicSize) 取小图数量 (GetSmallCount) 清空小图 (ClearSmall)取小图尺寸 / 小图数量 / 清空缓存
找图 (Find) 找图一次 (FindOnce)多模板找图 / 找一个
比较图片 (CmpPic) 定点比图 (CmpPicAt)比图 / 指定位置比图
找图透明 (FindTransparent) 找图Alpha (FindAlpha) 找图边缘 (FindEdge)透明 / Alpha / 边缘匹配
找图旋转角度 (FindRotateAngle) 找图旋转ORB (FindRotateOrb)旋转匹配(角度 / ORB 特征)
找图缩放中心 (FindScaleCenter) 找图缩放ORB (FindScaleOrb)缩放匹配(中心 / ORB 特征)
找色 (FindColor) 找色块 (FindColorBlock) 多点找色 (FindMultiColor)找色 / 找色块 / 多点找色
统计颜色数 (FindColorCount) 取颜色 (GetColor) 比颜色 (CmpColor)颜色计数 / 取色 / 比色
RGB二值化 (RgbBinarize)RGB 二值化以上找图/找色命令尾参均支持 ROI 区域限定(留空 = 全图)。
</details>
全局命令 — 窗口 / 底层 CV / 值类型构造
全局命令在易语言中均带 QS_ 前缀显示。
命令(中文名 / 英文对照)
功能
QS_创建窗口 (NamedWindow) QS_调窗大小 (ResizeWindow) QS_移动窗口 (MoveWindow)窗口:创建 / 缩放 / 移动
QS_显示图片 (Imshow) QS_等待按键 (WaitKey) QS_销毁窗口 (DestroyWindow) QS_销毁所有窗口 (DestroyAllWindows)显示 / 等待按键 / 销毁窗口
QS_加载图片 (Imread) QS_色彩转换 (CvtColor) QS_模板匹配 (MatchTemplate) QS_归一化 (Normalize) QS_极值定位 (MinMaxLoc) QS_图像拼接 (ConcatImages)底层 OpenCV:读图/转色/模板匹配/归一化/极值/拼图
QS_造大小 (MakeSize) QS_造矩形 (MakeRect) QS_造标量 (MakeScalar)构造值类型:大小 / 矩形 / 标量
QS_造点2i (MakePoint2i) ..2l ..2f ..2d构造点(整数/长整数/单精度/双精度)
QS_造匹配结果 (MakeMatchResult) QS_造匹配扩展结果 (MakeMatchExResult)构造匹配结果值类型</details>
数据类型一览(23 个)句柄类(11):QSMat QS轮廓集 (QSContours) QS文本行 (QSTextLine) QSPaddleOCR (QSPPOCR) QS训练识别模型 (QSOcrModel) QS单行识别信息 (QSOcrInfo) QS图像分类 (QSImageCls) QS目标检测 (QSYolo) QSDddd自训练 (QSDdddTrain) QSDddd识别 (QSDdddCls) QS匹配器 (QSMatcher)
值类型(12):QSSize QSRect QSScalar QSPoint2i/2l/2f/2d QS检测框 (QSBox) QS分类结果 (QSClsResult) QS匹配结果 (QSMatchResult) QS匹配扩展结果 (QSMatchExResult)
许可与致谢本支持库的能力建立在以下开源项目之上,在此致谢:
请遵循各上游项目的许可证条款使用。
QSOCR · 易语言支持库 · · OpenCV 5.0 / ONNX Runtime 1.2* · 32 位 /MT
作者: 18991835635 时间: 4 天前
6666666666666666888888888888888888
作者: 编程幼儿 时间: 4 天前
这个有点儿方便啊
作者: 编程幼儿 时间: 4 天前
没看到东西呀
作者: wgqxj 时间: 4 天前
谢谢分享
作者: hbtudou 时间: 4 天前
感谢分享 +1 附件好像被搞劈叉了...
作者: yxl2008 时间: 4 天前
支持开源~!感谢分享!
作者: 温暖的舌骨 时间: 4 天前






作者: please 时间: 4 天前
感谢分享,支持开源!!!
作者: 小粟i 时间: 4 天前
OCR/找图找色/opencv支持库
作者: china5jin 时间: 4 天前
好东西,让我看看下载链接在哪里
作者: 大今今 时间: 4 天前
看看.............
作者: wh1234567 时间: 4 天前
感谢分享
作者: ux527 时间: 4 天前

感谢分享
作者: kmskik 时间: 4 天前
感谢分享谢谢
作者: 1226852858 时间: 4 天前
QSOCR · 易语言支持库 · · OpenCV 5.0 / ONNX Runtime 1.2* · 32 位 /MT
作者: wmv520 时间: 4 天前
感谢分享谢谢
作者: sunmoonstar 时间: 4 天前
库或码在哪呢?
作者: zhangjun1314 时间: 4 天前
好东西,支持VC6静态编译
作者: 醉清风o 时间: 4 天前
没放附件。
作者: 蓝毅晨 时间: 4 天前
没看到下载链接啊
作者: 何浩文 时间: 4 天前
支持开源~!感谢分享
作者: 胖子葛格 时间: 4 天前
感谢大神分享~!
作者: 易翔 时间: 4 天前
附件内?下载连接呢?
作者: wtuapskhgm 时间: 4 天前
好东西,看看在哪下
作者: tsg2005 时间: 4 天前
来个把示例就更好了
作者: xyh3526 时间: 4 天前
我还说什么呢,只能跪这了
作者: huxian 时间: 3 天前
可以直接使用吗
作者: szxiao 时间: 3 天前
这个牛了。
作者: lq850815 时间: 3 天前
6666666666666666666666666666
作者: wang923 时间: 3 天前
666666666666
作者: please 时间: 前天 09:38
感谢分享,支持开源!!!
作者: qqmqqg 时间: 前天 20:51
6666666666666666
作者: bsliu 时间: 昨天 13:03
66666666666666666666666
作者: bsliu 时间: 昨天 13:04
源码在哪?
作者: joker12002002 时间: 10 小时前
怎么下载
作者: FAFA08 时间: 9 小时前
好用么?精度高不
作者: ainiyy567 时间: 3 小时前
111111111111111111111
作者: 308862303 时间: 3 小时前
QSOCR · 易语言支持库 · · OpenCV 5.0 / ONNX Runtime 1.2* · 32 位 /MT
| 欢迎光临 精易论坛 (https://bbs.ijingyi.com/) |
Powered by Discuz! X3.4 |