ms-types 0.9.1 → 0.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/types/appleocr.d.ts +72 -0
- package/types/global.d.ts +19 -0
- package/types/index.d.ts +1 -0
- package/types/node.d.ts +4 -0
- package/types/paddleocr.d.ts +64 -16
- package/types/yolo.d.ts +36 -6
- package/types/yoloCls.d.ts +103 -0
- package/types/zh/PaddleOCR/346/250/241/345/235/227.d.ts +65 -17
- package/types/zh/YOLO/345/210/206/347/261/273/346/250/241/345/235/227.d.ts +102 -0
- package/types/zh/YOLO/346/250/241/345/235/227.d.ts +36 -6
- package/types/zh/index.d.ts +1 -0
- package/types/zh//345/205/250/345/261/200/346/250/241/345/235/227.d.ts +19 -0
- package/types/zh//350/212/202/347/202/271/346/250/241/345/235/227.d.ts +4 -0
- package/types/zh//350/213/271/346/236/234OCR.d.ts +72 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ms-types",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -18,6 +18,6 @@
|
|
|
18
18
|
"devDependencies": {
|
|
19
19
|
"vitepress": "^1.6.4",
|
|
20
20
|
"vitepress-theme-teek": "^1.6.0",
|
|
21
|
-
"wrangler": "^4.
|
|
21
|
+
"wrangler": "^4.100.0"
|
|
22
22
|
}
|
|
23
23
|
}
|
package/types/appleocr.d.ts
CHANGED
|
@@ -52,6 +52,30 @@ declare namespace appleOcr {
|
|
|
52
52
|
languages?: string[]
|
|
53
53
|
): OCRResult[];
|
|
54
54
|
|
|
55
|
+
/**
|
|
56
|
+
* 执行 OCR 识别,并将结果坐标映射为原图/全屏绝对坐标。
|
|
57
|
+
* @param input 输入源(imageId、URL字符串、文件路径或"screen","screen"表示使用当前屏幕)
|
|
58
|
+
* @param x 边界框左上角x坐标 默认 0
|
|
59
|
+
* @param y 边界框左上角y坐标 默认 0
|
|
60
|
+
* @param ex 边界框右下角x坐标 默认 0
|
|
61
|
+
* @param ey 边界框右下角y坐标 默认 0
|
|
62
|
+
* @param languages 识别语言数组,默认为["zh-Hans", "en-US"]
|
|
63
|
+
* @returns 识别结果数组,坐标为原图/全屏绝对坐标
|
|
64
|
+
* @example
|
|
65
|
+
* const results = appleOcr.recognizeAbs("screen", 100, 100, 500, 300)
|
|
66
|
+
* if (results.length > 0) {
|
|
67
|
+
* action.click(results[0].centerX, results[0].centerY)
|
|
68
|
+
* }
|
|
69
|
+
*/
|
|
70
|
+
function recognizeAbs(
|
|
71
|
+
input: string,
|
|
72
|
+
x?: number,
|
|
73
|
+
y?: number,
|
|
74
|
+
ex?: number,
|
|
75
|
+
ey?: number,
|
|
76
|
+
languages?: string[]
|
|
77
|
+
): OCRResult[];
|
|
78
|
+
|
|
55
79
|
/**
|
|
56
80
|
* 执行OCR识别(仅识别数字)0-9.,+-
|
|
57
81
|
* @param input 输入源(imageId、URL字符串、文件路径或"screen","screen"表示使用当前屏幕)
|
|
@@ -74,6 +98,28 @@ declare namespace appleOcr {
|
|
|
74
98
|
ey?: number
|
|
75
99
|
): OCRResult[];
|
|
76
100
|
|
|
101
|
+
/**
|
|
102
|
+
* 执行数字 OCR 识别,并将结果坐标映射为原图/全屏绝对坐标。
|
|
103
|
+
* @param input 输入源(imageId、URL字符串、文件路径或"screen","screen"表示使用当前屏幕)
|
|
104
|
+
* @param x 边界框左上角x坐标
|
|
105
|
+
* @param y 边界框左上角y坐标
|
|
106
|
+
* @param ex 边界框右下角x坐标
|
|
107
|
+
* @param ey 边界框右下角y坐标
|
|
108
|
+
* @returns 识别结果数组,坐标为原图/全屏绝对坐标
|
|
109
|
+
* @example
|
|
110
|
+
* const results = appleOcr.recognizeNumbersAbs("screen", 100, 100, 500, 300)
|
|
111
|
+
* if (results.length > 0) {
|
|
112
|
+
* action.click(results[0].centerX, results[0].centerY)
|
|
113
|
+
* }
|
|
114
|
+
*/
|
|
115
|
+
function recognizeNumbersAbs(
|
|
116
|
+
input: string,
|
|
117
|
+
x?: number,
|
|
118
|
+
y?: number,
|
|
119
|
+
ex?: number,
|
|
120
|
+
ey?: number
|
|
121
|
+
): OCRResult[];
|
|
122
|
+
|
|
77
123
|
/**
|
|
78
124
|
* 执行OCR识别(查找指定文本)
|
|
79
125
|
* @param input 输入源(imageId、URL字符串、文件路径或"screen","screen"表示使用当前屏幕)
|
|
@@ -99,4 +145,30 @@ declare namespace appleOcr {
|
|
|
99
145
|
ey?: number,
|
|
100
146
|
languages?: string[]
|
|
101
147
|
): OCRResult[];
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* 查找指定文本,并将结果坐标映射为原图/全屏绝对坐标。
|
|
151
|
+
* @param input 输入源(imageId、URL字符串、文件路径或"screen","screen"表示使用当前屏幕)
|
|
152
|
+
* @param texts 要查找的文本数组
|
|
153
|
+
* @param x 边界框左上角x坐标
|
|
154
|
+
* @param y 边界框左上角y坐标
|
|
155
|
+
* @param ex 边界框右下角x坐标
|
|
156
|
+
* @param ey 边界框右下角y坐标
|
|
157
|
+
* @param languages 识别语言数组,默认为["zh-Hans", "en-US"]
|
|
158
|
+
* @returns 识别结果数组,坐标为原图/全屏绝对坐标
|
|
159
|
+
* @example
|
|
160
|
+
* const results = appleOcr.findTextAbs("screen", ["确定"], 100, 100, 500, 400)
|
|
161
|
+
* if (results.length > 0) {
|
|
162
|
+
* action.click(results[0].centerX, results[0].centerY)
|
|
163
|
+
* }
|
|
164
|
+
*/
|
|
165
|
+
function findTextAbs(
|
|
166
|
+
input: string,
|
|
167
|
+
texts: string[],
|
|
168
|
+
x?: number,
|
|
169
|
+
y?: number,
|
|
170
|
+
ex?: number,
|
|
171
|
+
ey?: number,
|
|
172
|
+
languages?: string[]
|
|
173
|
+
): OCRResult[];
|
|
102
174
|
}
|
package/types/global.d.ts
CHANGED
|
@@ -179,6 +179,25 @@ declare function setCpuAutoThrottle(enabled: boolean): boolean;
|
|
|
179
179
|
*/
|
|
180
180
|
declare function getCpuAutoThrottle(): boolean;
|
|
181
181
|
|
|
182
|
+
/**
|
|
183
|
+
* 设置 CPU 限流单次 sleep 延迟范围(毫秒)
|
|
184
|
+
* @param minMs 最低延迟,默认 3
|
|
185
|
+
* @param maxMs 最高延迟,默认 30;小于 minMs 时自动对齐
|
|
186
|
+
* @returns 实际生效的延迟范围
|
|
187
|
+
* @description 仅在 CPU 自动限流开启且触发限流时生效
|
|
188
|
+
* @example
|
|
189
|
+
* const delay = setCpuThrottleDelay(3, 30);
|
|
190
|
+
*/
|
|
191
|
+
declare function setCpuThrottleDelay(minMs: number, maxMs: number): { minMs: number; maxMs: number };
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* 获取 CPU 限流延迟范围(毫秒)
|
|
195
|
+
* @returns 当前最低与最高延迟
|
|
196
|
+
* @example
|
|
197
|
+
* const delay = getCpuThrottleDelay();
|
|
198
|
+
*/
|
|
199
|
+
declare function getCpuThrottleDelay(): { minMs: number; maxMs: number };
|
|
200
|
+
|
|
182
201
|
/**
|
|
183
202
|
* 打印调试日志 - 输出调试级别的日志
|
|
184
203
|
* 用于详细的程序执行信息、变量值和状态信息、函数调用跟踪
|
package/types/index.d.ts
CHANGED
package/types/node.d.ts
CHANGED
package/types/paddleocr.d.ts
CHANGED
|
@@ -36,7 +36,7 @@ declare namespace paddleOcr {
|
|
|
36
36
|
* 初始化PP-OCRv5模型
|
|
37
37
|
* @param maxSideLen 最大边长,默认640,可不传
|
|
38
38
|
* @param useGpu 是否使用GPU,默认false,可不传
|
|
39
|
-
* @returns
|
|
39
|
+
* @returns 初始化成功或模型已加载返回true
|
|
40
40
|
* @example
|
|
41
41
|
* const loaded = paddleOcr.loadV5(640, true)
|
|
42
42
|
* if (loaded) {
|
|
@@ -47,16 +47,16 @@ declare namespace paddleOcr {
|
|
|
47
47
|
/**
|
|
48
48
|
* 执行OCR识别
|
|
49
49
|
* @param input 输入源(imageId、URL字符串、文件路径或"screen","screen"表示使用当前屏幕)
|
|
50
|
-
* @param x
|
|
51
|
-
* @param y
|
|
52
|
-
* @param ex
|
|
53
|
-
* @param ey
|
|
54
|
-
* @param confidenceThreshold 置信度阈值,默认0.6
|
|
55
|
-
* @returns
|
|
50
|
+
* @param x 裁剪区域左上角 x 坐标,全屏传 0,默认 0
|
|
51
|
+
* @param y 裁剪区域左上角 y 坐标,全屏传 0,默认 0
|
|
52
|
+
* @param ex 裁剪区域右下角 x 坐标,全屏传 0,默认 0
|
|
53
|
+
* @param ey 裁剪区域右下角 y 坐标,全屏传 0,默认 0
|
|
54
|
+
* @param confidenceThreshold 置信度阈值,默认 0.6
|
|
55
|
+
* @returns 识别结果数组,坐标相对于裁剪区域
|
|
56
56
|
* @example
|
|
57
|
-
* const results = paddleOcr.recognize("screen",
|
|
57
|
+
* const results = paddleOcr.recognize("screen", 100, 100, 500, 300)
|
|
58
58
|
* if (results.length > 0) {
|
|
59
|
-
* logi(
|
|
59
|
+
* logi(`区域坐标: ${results[0].centerX}, ${results[0].centerY}`)
|
|
60
60
|
* }
|
|
61
61
|
*/
|
|
62
62
|
function recognize(
|
|
@@ -67,18 +67,41 @@ declare namespace paddleOcr {
|
|
|
67
67
|
ey?: number,
|
|
68
68
|
confidenceThreshold?: number,
|
|
69
69
|
): OCRResult[];
|
|
70
|
+
/**
|
|
71
|
+
* 执行 OCR 识别,并将结果坐标映射为原图/全屏绝对坐标
|
|
72
|
+
* @param input 输入源(imageId、URL字符串、文件路径或"screen","screen"表示使用当前屏幕)
|
|
73
|
+
* @param x 裁剪区域左上角 x 坐标,全屏传 0,默认 0
|
|
74
|
+
* @param y 裁剪区域左上角 y 坐标,全屏传 0,默认 0
|
|
75
|
+
* @param ex 裁剪区域右下角 x 坐标,全屏传 0,默认 0
|
|
76
|
+
* @param ey 裁剪区域右下角 y 坐标,全屏传 0,默认 0
|
|
77
|
+
* @param confidenceThreshold 置信度阈值,默认 0.6
|
|
78
|
+
* @returns 识别结果数组,坐标为原图/全屏绝对坐标
|
|
79
|
+
* @example
|
|
80
|
+
* const results = paddleOcr.recognizeAbs("screen", 100, 100, 500, 300)
|
|
81
|
+
* if (results.length > 0) {
|
|
82
|
+
* action.click(results[0].centerX, results[0].centerY)
|
|
83
|
+
* }
|
|
84
|
+
*/
|
|
85
|
+
function recognizeAbs(
|
|
86
|
+
input: string,
|
|
87
|
+
x?: number,
|
|
88
|
+
y?: number,
|
|
89
|
+
ex?: number,
|
|
90
|
+
ey?: number,
|
|
91
|
+
confidenceThreshold?: number,
|
|
92
|
+
): OCRResult[];
|
|
70
93
|
/**
|
|
71
94
|
* 查找目标文本并返回对应子串坐标
|
|
72
95
|
* @param input 输入源(imageId、URL字符串、文件路径或"screen","screen"表示使用当前屏幕)
|
|
73
96
|
* @param targetTexts 目标文本数组,例如 ["你好", "确定"]
|
|
74
|
-
* @param x
|
|
75
|
-
* @param y
|
|
76
|
-
* @param ex
|
|
77
|
-
* @param ey
|
|
78
|
-
* @param confidenceThreshold 置信度阈值,默认0.6
|
|
79
|
-
* @returns
|
|
97
|
+
* @param x 裁剪区域左上角 x 坐标,全屏传 0,默认 0
|
|
98
|
+
* @param y 裁剪区域左上角 y 坐标,全屏传 0,默认 0
|
|
99
|
+
* @param ex 裁剪区域右下角 x 坐标,全屏传 0,默认 0
|
|
100
|
+
* @param ey 裁剪区域右下角 y 坐标,全屏传 0,默认 0
|
|
101
|
+
* @param confidenceThreshold 置信度阈值,默认 0.6
|
|
102
|
+
* @returns 匹配到的子串结果数组,坐标相对于裁剪区域
|
|
80
103
|
* @example
|
|
81
|
-
* const results = paddleOcr.findText("screen", ["
|
|
104
|
+
* const results = paddleOcr.findText("screen", ["确定"], 100, 100, 500, 300, 0.6)
|
|
82
105
|
* if (results.length > 0) {
|
|
83
106
|
* logi(`命中: ${results[0].text}`)
|
|
84
107
|
* }
|
|
@@ -92,6 +115,31 @@ declare namespace paddleOcr {
|
|
|
92
115
|
ey?: number,
|
|
93
116
|
confidenceThreshold?: number,
|
|
94
117
|
): OCRResult[];
|
|
118
|
+
/**
|
|
119
|
+
* 查找目标文本并返回对应子串的原图/全屏绝对坐标
|
|
120
|
+
* @param input 输入源(imageId、URL字符串、文件路径或"screen","screen"表示使用当前屏幕)
|
|
121
|
+
* @param targetTexts 目标文本数组,例如 ["你好", "确定"]
|
|
122
|
+
* @param x 裁剪区域左上角 x 坐标,全屏传 0,默认 0
|
|
123
|
+
* @param y 裁剪区域左上角 y 坐标,全屏传 0,默认 0
|
|
124
|
+
* @param ex 裁剪区域右下角 x 坐标,全屏传 0,默认 0
|
|
125
|
+
* @param ey 裁剪区域右下角 y 坐标,全屏传 0,默认 0
|
|
126
|
+
* @param confidenceThreshold 置信度阈值,默认 0.6
|
|
127
|
+
* @returns 匹配到的子串结果数组,坐标为原图/全屏绝对坐标
|
|
128
|
+
* @example
|
|
129
|
+
* const results = paddleOcr.findTextAbs("screen", ["确定"], 100, 100, 500, 300, 0.6)
|
|
130
|
+
* if (results.length > 0) {
|
|
131
|
+
* action.click(results[0].centerX, results[0].centerY)
|
|
132
|
+
* }
|
|
133
|
+
*/
|
|
134
|
+
function findTextAbs(
|
|
135
|
+
input: string,
|
|
136
|
+
targetTexts: string[],
|
|
137
|
+
x?: number,
|
|
138
|
+
y?: number,
|
|
139
|
+
ex?: number,
|
|
140
|
+
ey?: number,
|
|
141
|
+
confidenceThreshold?: number,
|
|
142
|
+
): OCRResult[];
|
|
95
143
|
/**
|
|
96
144
|
* 释放OCR模型资源
|
|
97
145
|
*/
|
package/types/yolo.d.ts
CHANGED
|
@@ -51,17 +51,17 @@ declare namespace yolo {
|
|
|
51
51
|
* 加载YOLO模型
|
|
52
52
|
* @param paramPath ncnn模型的param文件的绝对路径
|
|
53
53
|
* @param binPath ncnn模型的bin文件绝对路径
|
|
54
|
-
* @param nc
|
|
54
|
+
* @param nc 模型的标签数量;传 0 或省略时根据模型输出自动推断,显式传入但不匹配时检测返回空数组
|
|
55
55
|
* @param version 模型版本,默认11, 支持 8 11 26
|
|
56
56
|
* @param useGpu 是否使用 GPU 加载
|
|
57
57
|
* @returns 加载成功返回模型ID字符串,失败返回null
|
|
58
58
|
* @example
|
|
59
|
-
* const modelId = yolo.load("yolov8n.param", "yolov8n.bin",
|
|
59
|
+
* const modelId = yolo.load("yolov8n.param", "yolov8n.bin", 0)
|
|
60
60
|
*/
|
|
61
61
|
function load(
|
|
62
62
|
paramPath: string,
|
|
63
63
|
binPath: string,
|
|
64
|
-
nc
|
|
64
|
+
nc?: number,
|
|
65
65
|
version?: number,
|
|
66
66
|
useGpu?: boolean,
|
|
67
67
|
): string | null;
|
|
@@ -69,16 +69,16 @@ declare namespace yolo {
|
|
|
69
69
|
* 加载YOLOv11模型 (兼容 yolov8 模型)
|
|
70
70
|
* @param paramPath ncnn模型的param文件的绝对路径
|
|
71
71
|
* @param binPath ncnn模型的bin文件绝对路径
|
|
72
|
-
* @param nc
|
|
72
|
+
* @param nc 模型的标签数量;传 0 或省略时根据模型输出自动推断,显式传入但不匹配时检测返回空数组
|
|
73
73
|
* @param useGpu 是否使用 GPU 加载
|
|
74
74
|
* @returns 加载成功返回模型ID字符串,失败返回null
|
|
75
75
|
* @example
|
|
76
|
-
* const modelId = yolo.loadV11("yolov11n.param", "yolov11n.bin",
|
|
76
|
+
* const modelId = yolo.loadV11("yolov11n.param", "yolov11n.bin", 0)
|
|
77
77
|
*/
|
|
78
78
|
function loadV11(
|
|
79
79
|
paramPath: string,
|
|
80
80
|
binPath: string,
|
|
81
|
-
nc
|
|
81
|
+
nc?: number,
|
|
82
82
|
useGpu?: boolean,
|
|
83
83
|
): string | null;
|
|
84
84
|
|
|
@@ -101,6 +101,36 @@ declare namespace yolo {
|
|
|
101
101
|
nmsThreshold?: number,
|
|
102
102
|
): YoloResult[];
|
|
103
103
|
|
|
104
|
+
/**
|
|
105
|
+
* 对指定区域执行目标检测,并将结果坐标映射为原图/全屏绝对坐标
|
|
106
|
+
* @param modelId 模型ID
|
|
107
|
+
* @param img 图像ID,"screen"用当前屏幕检测,可以填入图像ID或者http图片地址或文件地址
|
|
108
|
+
* @param x 裁剪区域左上角 x 坐标,默认 0
|
|
109
|
+
* @param y 裁剪区域左上角 y 坐标,默认 0
|
|
110
|
+
* @param ex 裁剪区域右下角 x 坐标,默认 0
|
|
111
|
+
* @param ey 裁剪区域右下角 y 坐标,默认 0
|
|
112
|
+
* @param targetSize 图像进入后缩放的检测大小,模型训练一般都用640,因此这里的640一般不要改
|
|
113
|
+
* @param threshold 置信度,默认0.4,小于这个值的会被过滤掉
|
|
114
|
+
* @param nmsThreshold 重叠阈值,一般是0.5不需要更改
|
|
115
|
+
* @returns 检测结果数组,坐标为原图/全屏绝对坐标
|
|
116
|
+
* @example
|
|
117
|
+
* const results = yolo.detectAbs(modelId, "screen", 100, 100, 500, 400, 640, 0.4, 0.5)
|
|
118
|
+
* if (results.length > 0) {
|
|
119
|
+
* action.click(results[0].centerX, results[0].centerY)
|
|
120
|
+
* }
|
|
121
|
+
*/
|
|
122
|
+
function detectAbs(
|
|
123
|
+
modelId: string,
|
|
124
|
+
img: string,
|
|
125
|
+
x?: number,
|
|
126
|
+
y?: number,
|
|
127
|
+
ex?: number,
|
|
128
|
+
ey?: number,
|
|
129
|
+
targetSize?: number,
|
|
130
|
+
threshold?: number,
|
|
131
|
+
nmsThreshold?: number,
|
|
132
|
+
): YoloResult[];
|
|
133
|
+
|
|
104
134
|
/**
|
|
105
135
|
* 释放指定模型资源
|
|
106
136
|
* @param modelId 模型ID
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* YOLO 图像分类模块,提供 NCNN YOLO-cls 分类模型加载、分类和资源释放能力
|
|
3
|
+
*/
|
|
4
|
+
declare namespace yoloCls {
|
|
5
|
+
/**
|
|
6
|
+
* Ultralytics Probs 风格分类概率结果
|
|
7
|
+
*/
|
|
8
|
+
interface YoloClsProbs {
|
|
9
|
+
/**
|
|
10
|
+
* 所有类别的概率数组,下标即类别 ID
|
|
11
|
+
*/
|
|
12
|
+
data: number[];
|
|
13
|
+
/**
|
|
14
|
+
* 概率最高的类别 ID;分类失败时为 null
|
|
15
|
+
*/
|
|
16
|
+
top1: number | null;
|
|
17
|
+
/**
|
|
18
|
+
* 概率最高的 5 个类别 ID,按概率从高到低排序
|
|
19
|
+
*/
|
|
20
|
+
top5: number[];
|
|
21
|
+
/**
|
|
22
|
+
* top1 对应的概率;分类失败时为 null
|
|
23
|
+
*/
|
|
24
|
+
top1conf: number | null;
|
|
25
|
+
/**
|
|
26
|
+
* top5 对应的概率,顺序与 top5 一致
|
|
27
|
+
*/
|
|
28
|
+
top5conf: number[];
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* 加载 YOLO 分类模型
|
|
33
|
+
* @param paramPath ncnn 模型 param 文件路径
|
|
34
|
+
* @param binPath ncnn 模型 bin 文件路径
|
|
35
|
+
* @param nc 模型类别数量,传 0 或省略时按模型输出自动推断,显式传入但不匹配时分类返回空结果
|
|
36
|
+
* @param useGpu 是否使用 GPU 加载
|
|
37
|
+
* @returns 加载成功返回模型 ID 字符串,失败返回 null
|
|
38
|
+
* @example
|
|
39
|
+
* const modelId = yoloCls.load("yolo11n_cls.ncnn.param", "yolo11n_cls.ncnn.bin", 1000, false)
|
|
40
|
+
*/
|
|
41
|
+
function load(
|
|
42
|
+
paramPath: string,
|
|
43
|
+
binPath: string,
|
|
44
|
+
nc?: number,
|
|
45
|
+
useGpu?: boolean,
|
|
46
|
+
): string | null;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* 图像分类
|
|
50
|
+
* @param modelId 模型 ID
|
|
51
|
+
* @param img 图像 ID,"screen" 使用当前屏幕,也可以填入图像 ID、HTTP 图片地址或文件路径
|
|
52
|
+
* @param targetSize 分类输入大小,默认 224
|
|
53
|
+
* @returns Ultralytics Probs 风格分类概率结果
|
|
54
|
+
* @example
|
|
55
|
+
* const result = yoloCls.classify(modelId, "screen", 224)
|
|
56
|
+
* if (result.top1 !== null) {
|
|
57
|
+
* logi(`${result.top1}: ${result.top1conf}`)
|
|
58
|
+
* }
|
|
59
|
+
*/
|
|
60
|
+
function classify(
|
|
61
|
+
modelId: string,
|
|
62
|
+
img: string,
|
|
63
|
+
targetSize?: number,
|
|
64
|
+
): YoloClsProbs;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* 对指定区域执行图像分类
|
|
68
|
+
* @param modelId 模型 ID
|
|
69
|
+
* @param img 图像 ID,"screen" 使用当前屏幕,也可以填入图像 ID、HTTP 图片地址或文件路径
|
|
70
|
+
* @param x 裁剪区域左上角 x 坐标,默认 0
|
|
71
|
+
* @param y 裁剪区域左上角 y 坐标,默认 0
|
|
72
|
+
* @param ex 裁剪区域右下角 x 坐标,默认 0
|
|
73
|
+
* @param ey 裁剪区域右下角 y 坐标,默认 0
|
|
74
|
+
* @param targetSize 分类输入大小,默认 224
|
|
75
|
+
* @returns Ultralytics Probs 风格分类概率结果
|
|
76
|
+
* @example
|
|
77
|
+
* const result = yoloCls.classifyRegion(modelId, "screen", 100, 100, 500, 400, 224)
|
|
78
|
+
*/
|
|
79
|
+
function classifyRegion(
|
|
80
|
+
modelId: string,
|
|
81
|
+
img: string,
|
|
82
|
+
x?: number,
|
|
83
|
+
y?: number,
|
|
84
|
+
ex?: number,
|
|
85
|
+
ey?: number,
|
|
86
|
+
targetSize?: number,
|
|
87
|
+
): YoloClsProbs;
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* 释放指定模型资源
|
|
91
|
+
* @param modelId 模型 ID
|
|
92
|
+
* @example
|
|
93
|
+
* yoloCls.free(modelId)
|
|
94
|
+
*/
|
|
95
|
+
function free(modelId: string): void;
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* 释放所有模型资源
|
|
99
|
+
* @example
|
|
100
|
+
* yoloCls.freeAll()
|
|
101
|
+
*/
|
|
102
|
+
function freeAll(): void;
|
|
103
|
+
}
|
|
@@ -35,9 +35,9 @@ declare namespace $PaddleOCR {
|
|
|
35
35
|
|
|
36
36
|
/**
|
|
37
37
|
* 初始化PP-OCRv5模型
|
|
38
|
-
* @param
|
|
38
|
+
* @param 最大边长 最大边长,默认640,可不传
|
|
39
39
|
* @param useGpu 是否使用GPU,默认false,可不传
|
|
40
|
-
* @returns
|
|
40
|
+
* @returns 初始化成功或模型已加载返回true
|
|
41
41
|
* @example
|
|
42
42
|
* const 是否加载成功 = $PaddleOCR.加载V5模型(640, true)
|
|
43
43
|
* if (是否加载成功) {
|
|
@@ -48,16 +48,16 @@ declare namespace $PaddleOCR {
|
|
|
48
48
|
/**
|
|
49
49
|
* 执行OCR识别
|
|
50
50
|
* @param 输入源(imageId、URL字符串、文件路径或"screen","screen"表示使用当前屏幕)
|
|
51
|
-
* @param 图片边界框左上角x坐标
|
|
52
|
-
* @param 图片边界框左上角y坐标
|
|
53
|
-
* @param 图片边界框右下角x坐标
|
|
54
|
-
* @param 图片边界框右下角y坐标
|
|
55
|
-
* @param 置信度阈值 置信度阈值,默认0.6
|
|
56
|
-
* @returns
|
|
51
|
+
* @param 图片边界框左上角x坐标 裁剪区域左上角 x,全屏传 0,默认 0
|
|
52
|
+
* @param 图片边界框左上角y坐标 裁剪区域左上角 y,全屏传 0,默认 0
|
|
53
|
+
* @param 图片边界框右下角x坐标 裁剪区域右下角 x,全屏传 0,默认 0
|
|
54
|
+
* @param 图片边界框右下角y坐标 裁剪区域右下角 y,全屏传 0,默认 0
|
|
55
|
+
* @param 置信度阈值 置信度阈值,默认 0.6
|
|
56
|
+
* @returns 识别结果数组,坐标相对于裁剪区域
|
|
57
57
|
* @example
|
|
58
|
-
* const 识别结果数组 = $PaddleOCR.识别("screen",
|
|
58
|
+
* const 识别结果数组 = $PaddleOCR.识别("screen", 100, 100, 500, 300)
|
|
59
59
|
* if (识别结果数组.length > 0) {
|
|
60
|
-
* $打印信息日志(
|
|
60
|
+
* $打印信息日志(`区域坐标: ${识别结果数组[0].centerX}, ${识别结果数组[0].centerY}`)
|
|
61
61
|
* }
|
|
62
62
|
*/
|
|
63
63
|
function 识别(
|
|
@@ -68,18 +68,41 @@ declare namespace $PaddleOCR {
|
|
|
68
68
|
图片边界框右下角y坐标?: 数字,
|
|
69
69
|
置信度阈值?: 数字,
|
|
70
70
|
): 数组<OCR识别结果>;
|
|
71
|
+
/**
|
|
72
|
+
* 执行 OCR 识别,并将结果坐标映射为原图/全屏绝对坐标
|
|
73
|
+
* @param 输入源(imageId、URL字符串、文件路径或"screen","screen"表示使用当前屏幕)
|
|
74
|
+
* @param 图片边界框左上角x坐标 裁剪区域左上角 x,全屏传 0,默认 0
|
|
75
|
+
* @param 图片边界框左上角y坐标 裁剪区域左上角 y,全屏传 0,默认 0
|
|
76
|
+
* @param 图片边界框右下角x坐标 裁剪区域右下角 x,全屏传 0,默认 0
|
|
77
|
+
* @param 图片边界框右下角y坐标 裁剪区域右下角 y,全屏传 0,默认 0
|
|
78
|
+
* @param 置信度阈值 置信度阈值,默认 0.6
|
|
79
|
+
* @returns 识别结果数组,坐标为原图/全屏绝对坐标
|
|
80
|
+
* @example
|
|
81
|
+
* const 识别结果数组 = $PaddleOCR.识别绝对坐标("screen", 100, 100, 500, 300)
|
|
82
|
+
* if (识别结果数组.length > 0) {
|
|
83
|
+
* $动作.点击(识别结果数组[0].centerX, 识别结果数组[0].centerY)
|
|
84
|
+
* }
|
|
85
|
+
*/
|
|
86
|
+
function 识别绝对坐标(
|
|
87
|
+
输入源: 字符串,
|
|
88
|
+
图片边界框左上角x坐标?: 数字,
|
|
89
|
+
图片边界框左上角y坐标?: 数字,
|
|
90
|
+
图片边界框右下角x坐标?: 数字,
|
|
91
|
+
图片边界框右下角y坐标?: 数字,
|
|
92
|
+
置信度阈值?: 数字,
|
|
93
|
+
): 数组<OCR识别结果>;
|
|
71
94
|
/**
|
|
72
95
|
* 查找目标文本并返回对应子串坐标
|
|
73
96
|
* @param 输入源(imageId、URL字符串、文件路径或"screen","screen"表示使用当前屏幕)
|
|
74
97
|
* @param 目标文本数组 例如 ["你好", "确定"]
|
|
75
|
-
* @param 图片边界框左上角x坐标
|
|
76
|
-
* @param 图片边界框左上角y坐标
|
|
77
|
-
* @param 图片边界框右下角x坐标
|
|
78
|
-
* @param 图片边界框右下角y坐标
|
|
79
|
-
* @param 置信度阈值 置信度阈值,默认0.6
|
|
80
|
-
* @returns
|
|
98
|
+
* @param 图片边界框左上角x坐标 裁剪区域左上角 x,全屏传 0,默认 0
|
|
99
|
+
* @param 图片边界框左上角y坐标 裁剪区域左上角 y,全屏传 0,默认 0
|
|
100
|
+
* @param 图片边界框右下角x坐标 裁剪区域右下角 x,全屏传 0,默认 0
|
|
101
|
+
* @param 图片边界框右下角y坐标 裁剪区域右下角 y,全屏传 0,默认 0
|
|
102
|
+
* @param 置信度阈值 置信度阈值,默认 0.6
|
|
103
|
+
* @returns 匹配到的子串结果数组,坐标相对于裁剪区域
|
|
81
104
|
* @example
|
|
82
|
-
* const 结果 = $PaddleOCR.查找文本("screen", ["
|
|
105
|
+
* const 结果 = $PaddleOCR.查找文本("screen", ["确定"], 100, 100, 500, 300, 0.6)
|
|
83
106
|
* if (结果.length > 0) {
|
|
84
107
|
* $打印信息日志(`命中: ${结果[0].text}`)
|
|
85
108
|
* }
|
|
@@ -93,6 +116,31 @@ declare namespace $PaddleOCR {
|
|
|
93
116
|
图片边界框右下角y坐标?: 数字,
|
|
94
117
|
置信度阈值?: 数字,
|
|
95
118
|
): 数组<OCR识别结果>;
|
|
119
|
+
/**
|
|
120
|
+
* 查找目标文本并返回对应子串的原图/全屏绝对坐标
|
|
121
|
+
* @param 输入源(imageId、URL字符串、文件路径或"screen","screen"表示使用当前屏幕)
|
|
122
|
+
* @param 目标文本数组 例如 ["你好", "确定"]
|
|
123
|
+
* @param 图片边界框左上角x坐标 裁剪区域左上角 x,全屏传 0,默认 0
|
|
124
|
+
* @param 图片边界框左上角y坐标 裁剪区域左上角 y,全屏传 0,默认 0
|
|
125
|
+
* @param 图片边界框右下角x坐标 裁剪区域右下角 x,全屏传 0,默认 0
|
|
126
|
+
* @param 图片边界框右下角y坐标 裁剪区域右下角 y,全屏传 0,默认 0
|
|
127
|
+
* @param 置信度阈值 置信度阈值,默认 0.6
|
|
128
|
+
* @returns 匹配到的子串结果数组,坐标为原图/全屏绝对坐标
|
|
129
|
+
* @example
|
|
130
|
+
* const 结果 = $PaddleOCR.查找文本绝对坐标("screen", ["确定"], 100, 100, 500, 300, 0.6)
|
|
131
|
+
* if (结果.length > 0) {
|
|
132
|
+
* $动作.点击(结果[0].centerX, 结果[0].centerY)
|
|
133
|
+
* }
|
|
134
|
+
*/
|
|
135
|
+
function 查找文本绝对坐标(
|
|
136
|
+
输入源: 字符串,
|
|
137
|
+
目标文本数组: 数组<字符串>,
|
|
138
|
+
图片边界框左上角x坐标?: 数字,
|
|
139
|
+
图片边界框左上角y坐标?: 数字,
|
|
140
|
+
图片边界框右下角x坐标?: 数字,
|
|
141
|
+
图片边界框右下角y坐标?: 数字,
|
|
142
|
+
置信度阈值?: 数字,
|
|
143
|
+
): 数组<OCR识别结果>;
|
|
96
144
|
/**
|
|
97
145
|
* 释放OCR模型资源
|
|
98
146
|
*/
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/// <reference path="全局模块.d.ts" />
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* YOLO 图像分类模块,提供 NCNN YOLO-cls 分类模型加载、分类和资源释放能力
|
|
5
|
+
*/
|
|
6
|
+
declare namespace $YOLO分类 {
|
|
7
|
+
/**
|
|
8
|
+
* Ultralytics Probs 风格分类概率结果
|
|
9
|
+
*/
|
|
10
|
+
interface Yolo分类概率结果 {
|
|
11
|
+
/**
|
|
12
|
+
* 所有类别的概率数组,下标即类别 ID
|
|
13
|
+
*/
|
|
14
|
+
data: 数组<数字>;
|
|
15
|
+
/**
|
|
16
|
+
* 概率最高的类别 ID;分类失败时为 null
|
|
17
|
+
*/
|
|
18
|
+
top1: 数字 | null;
|
|
19
|
+
/**
|
|
20
|
+
* 概率最高的 5 个类别 ID,按概率从高到低排序
|
|
21
|
+
*/
|
|
22
|
+
top5: 数组<数字>;
|
|
23
|
+
/**
|
|
24
|
+
* top1 对应的概率;分类失败时为 null
|
|
25
|
+
*/
|
|
26
|
+
top1conf: 数字 | null;
|
|
27
|
+
/**
|
|
28
|
+
* top5 对应的概率,顺序与 top5 一致
|
|
29
|
+
*/
|
|
30
|
+
top5conf: 数组<数字>;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* 加载 YOLO 分类模型
|
|
35
|
+
* @param ncnn模型的param文件路径 ncnn 模型 param 文件路径
|
|
36
|
+
* @param ncnn模型的bin文件路径 ncnn 模型 bin 文件路径
|
|
37
|
+
* @param 类别数量 模型类别数量,传 0 或省略时按模型输出自动推断,显式传入但不匹配时分类返回空结果
|
|
38
|
+
* @param useGpu 是否使用 GPU 加载
|
|
39
|
+
* @returns 加载成功返回模型 ID 字符串,失败返回 null
|
|
40
|
+
* @example
|
|
41
|
+
* const 模型ID = $YOLO分类.加载模型("yolo11n_cls.ncnn.param", "yolo11n_cls.ncnn.bin", 1000, false)
|
|
42
|
+
*/
|
|
43
|
+
function 加载模型(
|
|
44
|
+
ncnn模型的param文件路径: 字符串,
|
|
45
|
+
ncnn模型的bin文件路径: 字符串,
|
|
46
|
+
类别数量?: 数字,
|
|
47
|
+
useGpu?: 布尔值,
|
|
48
|
+
): 字符串 | null;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* 图像分类
|
|
52
|
+
* @param 模型ID 模型 ID
|
|
53
|
+
* @param 图片ID 图像 ID,"screen" 使用当前屏幕,也可以填入图像 ID、HTTP 图片地址或文件路径
|
|
54
|
+
* @param 分类输入大小 分类输入大小,默认 224
|
|
55
|
+
* @returns Ultralytics Probs 风格分类概率结果
|
|
56
|
+
* @example
|
|
57
|
+
* const 结果 = $YOLO分类.图像分类(模型ID, "screen", 224)
|
|
58
|
+
*/
|
|
59
|
+
function 图像分类(
|
|
60
|
+
模型ID: 字符串,
|
|
61
|
+
图片ID: 字符串,
|
|
62
|
+
分类输入大小?: 数字,
|
|
63
|
+
): Yolo分类概率结果;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* 对指定区域执行图像分类
|
|
67
|
+
* @param 模型ID 模型 ID
|
|
68
|
+
* @param 图片ID 图像 ID,"screen" 使用当前屏幕,也可以填入图像 ID、HTTP 图片地址或文件路径
|
|
69
|
+
* @param 裁剪区域左上角x坐标 默认 0
|
|
70
|
+
* @param 裁剪区域左上角y坐标 默认 0
|
|
71
|
+
* @param 裁剪区域右下角x坐标 默认 0
|
|
72
|
+
* @param 裁剪区域右下角y坐标 默认 0
|
|
73
|
+
* @param 分类输入大小 分类输入大小,默认 224
|
|
74
|
+
* @returns Ultralytics Probs 风格分类概率结果
|
|
75
|
+
* @example
|
|
76
|
+
* const 结果 = $YOLO分类.区域分类(模型ID, "screen", 100, 100, 500, 400, 224)
|
|
77
|
+
*/
|
|
78
|
+
function 区域分类(
|
|
79
|
+
模型ID: 字符串,
|
|
80
|
+
图片ID: 字符串,
|
|
81
|
+
裁剪区域左上角x坐标?: 数字,
|
|
82
|
+
裁剪区域左上角y坐标?: 数字,
|
|
83
|
+
裁剪区域右下角x坐标?: 数字,
|
|
84
|
+
裁剪区域右下角y坐标?: 数字,
|
|
85
|
+
分类输入大小?: 数字,
|
|
86
|
+
): Yolo分类概率结果;
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* 释放指定模型资源
|
|
90
|
+
* @param 模型ID 模型 ID
|
|
91
|
+
* @example
|
|
92
|
+
* $YOLO分类.释放模型资源(模型ID)
|
|
93
|
+
*/
|
|
94
|
+
function 释放模型资源(模型ID: 字符串): 无返回值;
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* 释放所有模型资源
|
|
98
|
+
* @example
|
|
99
|
+
* $YOLO分类.释放所有模型资源()
|
|
100
|
+
*/
|
|
101
|
+
function 释放所有模型资源(): 无返回值;
|
|
102
|
+
}
|
|
@@ -54,17 +54,17 @@ declare namespace $YOLO {
|
|
|
54
54
|
* 加载YOLO模型
|
|
55
55
|
* @param ncnn模型的param文件路径 ncnn模型的param文件的绝对路径
|
|
56
56
|
* @param ncnn模型的bin文件路径 ncnn模型的bin文件绝对路径
|
|
57
|
-
* @param 标签数量
|
|
57
|
+
* @param 标签数量 模型的标签数量;传 0 或省略时根据模型输出自动推断,显式传入但不匹配时检测返回空数组
|
|
58
58
|
* @param 模型版本 模型版本,默认11, 支持 8 11 26
|
|
59
59
|
* @param useGpu 是否使用 GPU 加载
|
|
60
60
|
* @returns 加载成功返回模型ID字符串,失败返回null
|
|
61
61
|
* @example
|
|
62
|
-
* const 模型ID = $YOLO.加载模型("yolov8n.param", "yolov8n.bin",
|
|
62
|
+
* const 模型ID = $YOLO.加载模型("yolov8n.param", "yolov8n.bin", 0)
|
|
63
63
|
*/
|
|
64
64
|
function 加载模型(
|
|
65
65
|
ncnn模型的param文件路径: 字符串,
|
|
66
66
|
ncnn模型的bin文件路径: 字符串,
|
|
67
|
-
|
|
67
|
+
标签数量?: 数字,
|
|
68
68
|
模型版本?: 数字,
|
|
69
69
|
useGpu?: 布尔值,
|
|
70
70
|
): 字符串 | null;
|
|
@@ -73,16 +73,16 @@ declare namespace $YOLO {
|
|
|
73
73
|
* 加载YOLOv11模型 (兼容 yolov8 模型)
|
|
74
74
|
* @param ncnn模型的param文件路径
|
|
75
75
|
* @param ncnn模型的bin文件路径
|
|
76
|
-
* @param 标签数量
|
|
76
|
+
* @param 标签数量 模型的标签数量;传 0 或省略时根据模型输出自动推断,显式传入但不匹配时检测返回空数组
|
|
77
77
|
* @param useGpu 是否使用 GPU 加载
|
|
78
78
|
* @returns 加载成功返回模型ID字符串,失败返回null
|
|
79
79
|
* @example
|
|
80
|
-
* const 模型ID = $YOLO.加载YOLOv11模型("yolov11n.param", "yolov11n.bin",
|
|
80
|
+
* const 模型ID = $YOLO.加载YOLOv11模型("yolov11n.param", "yolov11n.bin", 0)
|
|
81
81
|
*/
|
|
82
82
|
function 加载YOLOv11模型(
|
|
83
83
|
ncnn模型的param文件路径: 字符串,
|
|
84
84
|
ncnn模型的bin文件路径: 字符串,
|
|
85
|
-
|
|
85
|
+
标签数量?: 数字,
|
|
86
86
|
useGpu?: 布尔值,
|
|
87
87
|
): 字符串 | null;
|
|
88
88
|
|
|
@@ -105,6 +105,36 @@ declare namespace $YOLO {
|
|
|
105
105
|
重叠阈值?: 数字,
|
|
106
106
|
): 数组<Yolo检测结果>;
|
|
107
107
|
|
|
108
|
+
/**
|
|
109
|
+
* 对指定区域执行目标检测,并将结果坐标映射为原图/全屏绝对坐标
|
|
110
|
+
* @param 模型ID
|
|
111
|
+
* @param 图片ID 图像ID,"screen"用当前屏幕检测,可以填入图像ID或者http图片地址或文件地址
|
|
112
|
+
* @param 裁剪区域左上角x坐标 默认 0
|
|
113
|
+
* @param 裁剪区域左上角y坐标 默认 0
|
|
114
|
+
* @param 裁剪区域右下角x坐标 默认 0
|
|
115
|
+
* @param 裁剪区域右下角y坐标 默认 0
|
|
116
|
+
* @param 目标检测输入大小 图像进入后缩放的检测大小,模型训练一般都用640,因此这里的640一般不要改
|
|
117
|
+
* @param 置信度 置信度,默认0.4,小于这个值的会被过滤掉
|
|
118
|
+
* @param 重叠阈值 一般是0.5不需要更改
|
|
119
|
+
* @returns 检测结果数组,坐标为原图/全屏绝对坐标
|
|
120
|
+
* @example
|
|
121
|
+
* const 结果数组 = $YOLO.目标检测绝对坐标(模型ID, "screen", 100, 100, 500, 400, 640, 0.4, 0.5)
|
|
122
|
+
* if (结果数组.length > 0) {
|
|
123
|
+
* $点击(结果数组[0].centerX, 结果数组[0].centerY)
|
|
124
|
+
* }
|
|
125
|
+
*/
|
|
126
|
+
function 目标检测绝对坐标(
|
|
127
|
+
模型ID: 字符串,
|
|
128
|
+
图片ID: 字符串,
|
|
129
|
+
裁剪区域左上角x坐标?: 数字,
|
|
130
|
+
裁剪区域左上角y坐标?: 数字,
|
|
131
|
+
裁剪区域右下角x坐标?: 数字,
|
|
132
|
+
裁剪区域右下角y坐标?: 数字,
|
|
133
|
+
目标检测输入大小?: 数字,
|
|
134
|
+
置信度?: 数字,
|
|
135
|
+
重叠阈值?: 数字,
|
|
136
|
+
): 数组<Yolo检测结果>;
|
|
137
|
+
|
|
108
138
|
/**
|
|
109
139
|
* 释放指定模型资源
|
|
110
140
|
* @param 模型ID
|
package/types/zh/index.d.ts
CHANGED
|
@@ -175,6 +175,25 @@ declare function $设置CPU自动限流(是否开启: 布尔值): 布尔值;
|
|
|
175
175
|
*/
|
|
176
176
|
declare function $获取CPU自动限流(): 布尔值;
|
|
177
177
|
|
|
178
|
+
/**
|
|
179
|
+
* 设置 CPU 限流单次 sleep 延迟范围(毫秒)
|
|
180
|
+
* @param 最小毫秒 最低延迟,默认 3
|
|
181
|
+
* @param 最大毫秒 最高延迟,默认 30;小于最小毫秒时自动对齐
|
|
182
|
+
* @returns 实际生效的延迟范围
|
|
183
|
+
* @description 仅在 CPU 自动限流开启且触发限流时生效
|
|
184
|
+
* @example
|
|
185
|
+
* const 延迟 = $设置CPU限流延迟(3, 30);
|
|
186
|
+
*/
|
|
187
|
+
declare function $设置CPU限流延迟(最小毫秒: 数字, 最大毫秒: 数字): { minMs: 数字; maxMs: 数字 };
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* 获取 CPU 限流延迟范围(毫秒)
|
|
191
|
+
* @returns 当前最低与最高延迟
|
|
192
|
+
* @example
|
|
193
|
+
* const 延迟 = $获取CPU限流延迟();
|
|
194
|
+
*/
|
|
195
|
+
declare function $获取CPU限流延迟(): { minMs: 数字; maxMs: 数字 };
|
|
196
|
+
|
|
178
197
|
/**
|
|
179
198
|
* 打印调试日志 - 输出调试级别的日志
|
|
180
199
|
* 用于详细的程序执行信息、变量值和状态信息、函数调用跟踪
|
|
@@ -54,6 +54,30 @@ declare namespace $苹果OCR {
|
|
|
54
54
|
识别语言数组?: Array<字符串>
|
|
55
55
|
): 数组<OCR识别结果>;
|
|
56
56
|
|
|
57
|
+
/**
|
|
58
|
+
* 执行 OCR 识别,并将结果坐标映射为原图/全屏绝对坐标。
|
|
59
|
+
* @param 输入源 输入源(imageId、URL字符串、文件路径或"screen","screen"表示使用当前屏幕)
|
|
60
|
+
* @param 图片边界框左上角x坐标 默认 0
|
|
61
|
+
* @param 图片边界框左上角y坐标 默认 0
|
|
62
|
+
* @param 图片边界框右下角x坐标 默认 0
|
|
63
|
+
* @param 图片边界框右下角y坐标 默认 0
|
|
64
|
+
* @param 识别语言数组 识别语言数组,默认为["zh-Hans", "en-US"]
|
|
65
|
+
* @returns 识别结果数组,坐标为原图/全屏绝对坐标
|
|
66
|
+
* @example
|
|
67
|
+
* const 检查结果数组 = $苹果OCR.识别绝对坐标("screen", 100, 100, 500, 300)
|
|
68
|
+
* if (检查结果数组.length > 0) {
|
|
69
|
+
* $点击(检查结果数组[0].centerX, 检查结果数组[0].centerY)
|
|
70
|
+
* }
|
|
71
|
+
*/
|
|
72
|
+
function 识别绝对坐标(
|
|
73
|
+
输入源: 字符串,
|
|
74
|
+
图片边界框左上角x坐标?: 数字,
|
|
75
|
+
图片边界框左上角y坐标?: 数字,
|
|
76
|
+
图片边界框右下角x坐标?: 数字,
|
|
77
|
+
图片边界框右下角y坐标?: 数字,
|
|
78
|
+
识别语言数组?: Array<字符串>
|
|
79
|
+
): 数组<OCR识别结果>;
|
|
80
|
+
|
|
57
81
|
/**
|
|
58
82
|
* 执行OCR识别(仅识别数字)0-9.,+-
|
|
59
83
|
* @param 输入源 输入源(imageId、URL字符串、文件路径或"screen","screen"表示使用当前屏幕)
|
|
@@ -76,6 +100,28 @@ declare namespace $苹果OCR {
|
|
|
76
100
|
图片边界框右下角y坐标?: 数字
|
|
77
101
|
): 数组<OCR识别结果>;
|
|
78
102
|
|
|
103
|
+
/**
|
|
104
|
+
* 执行数字 OCR 识别,并将结果坐标映射为原图/全屏绝对坐标。
|
|
105
|
+
* @param 输入源 输入源(imageId、URL字符串、文件路径或"screen","screen"表示使用当前屏幕)
|
|
106
|
+
* @param 图片边界框左上角x坐标 默认 0
|
|
107
|
+
* @param 图片边界框左上角y坐标 默认 0
|
|
108
|
+
* @param 图片边界框右下角x坐标 默认 0
|
|
109
|
+
* @param 图片边界框右下角y坐标 默认 0
|
|
110
|
+
* @returns 识别结果数组,坐标为原图/全屏绝对坐标
|
|
111
|
+
* @example
|
|
112
|
+
* const 检查结果数组 = $苹果OCR.识别数字绝对坐标("screen", 100, 100, 500, 300)
|
|
113
|
+
* if (检查结果数组.length > 0) {
|
|
114
|
+
* $点击(检查结果数组[0].centerX, 检查结果数组[0].centerY)
|
|
115
|
+
* }
|
|
116
|
+
*/
|
|
117
|
+
function 识别数字绝对坐标(
|
|
118
|
+
输入源: 字符串,
|
|
119
|
+
图片边界框左上角x坐标?: 数字,
|
|
120
|
+
图片边界框左上角y坐标?: 数字,
|
|
121
|
+
图片边界框右下角x坐标?: 数字,
|
|
122
|
+
图片边界框右下角y坐标?: 数字
|
|
123
|
+
): 数组<OCR识别结果>;
|
|
124
|
+
|
|
79
125
|
/**
|
|
80
126
|
* 执行OCR识别(查找指定文本)
|
|
81
127
|
* @param 输入源 输入源(imageId、URL字符串、文件路径或"screen","screen"表示使用当前屏幕)
|
|
@@ -101,4 +147,30 @@ declare namespace $苹果OCR {
|
|
|
101
147
|
图片边界框右下角y坐标?: 数字,
|
|
102
148
|
识别语言数组?: 数组<字符串>
|
|
103
149
|
): 数组<OCR识别结果>;
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* 查找指定文本,并将结果坐标映射为原图/全屏绝对坐标。
|
|
153
|
+
* @param 输入源 输入源(imageId、URL字符串、文件路径或"screen","screen"表示使用当前屏幕)
|
|
154
|
+
* @param 要查找的文本数组 要查找的文本数组
|
|
155
|
+
* @param 图片边界框左上角x坐标 默认 0
|
|
156
|
+
* @param 图片边界框左上角y坐标 默认 0
|
|
157
|
+
* @param 图片边界框右下角x坐标 默认 0
|
|
158
|
+
* @param 图片边界框右下角y坐标 默认 0
|
|
159
|
+
* @param 识别语言数组 识别语言数组,默认为["zh-Hans", "en-US"]
|
|
160
|
+
* @returns 识别结果数组,坐标为原图/全屏绝对坐标
|
|
161
|
+
* @example
|
|
162
|
+
* const 检查结果数组 = $苹果OCR.查找文本绝对坐标("screen", ["确定"], 100, 100, 500, 400)
|
|
163
|
+
* if (检查结果数组.length > 0) {
|
|
164
|
+
* $点击(检查结果数组[0].centerX, 检查结果数组[0].centerY)
|
|
165
|
+
* }
|
|
166
|
+
*/
|
|
167
|
+
function 查找文本绝对坐标(
|
|
168
|
+
输入源: 字符串,
|
|
169
|
+
要查找的文本数组: 数组<字符串>,
|
|
170
|
+
图片边界框左上角x坐标?: 数字,
|
|
171
|
+
图片边界框左上角y坐标?: 数字,
|
|
172
|
+
图片边界框右下角x坐标?: 数字,
|
|
173
|
+
图片边界框右下角y坐标?: 数字,
|
|
174
|
+
识别语言数组?: 数组<字符串>
|
|
175
|
+
): 数组<OCR识别结果>;
|
|
104
176
|
}
|