图片处理
函数:imageBinarization() 图片二值化
函数说明 : 按指定阈值对图片进行二值化处理。
函数方法 : imageBinarization(文本型 picpath, 整数型 number);
返回值 : 无
参数 | 类型 | 说明 |
---|---|---|
picpath | 文本型 | 图片路径, 支持BMP,JPG,PNG格式 |
number | 整数型 | 二值化阈值,范围 0 - 255,作为图像二值化的参照值。 |
示例
function main()
f = "/var/touchelf/a.jpg"
snapshotScreen(f)
imageBinarization(f, 100)
end
注意:二值化后的图片会覆盖原图.
函数:imageFilter() 指定颜色对图片二值化
函数说明 : 按指定颜色对图片进行二值化处理。
函数方法 : imageFilter(文本型 picpath, 数组 table, 整数型 number);
返回值 : 无
参数 | 类型 | 说明 |
---|---|---|
picpath | 文本型 | 图片路径, 支持BMP,JPG,PNG格式 |
table | 数组 | 颜色列表 |
number | 整数型 | 相似度,范围 0 - 100 |
示例
function main()
f = "/var/touchelf/a.jpg"
snapshotScreen(f)
imageFilter(f,{0x007AFF}, 80)
end
示例:匹配多个颜色并配合本地ocr函数实现文字识别
function main()
f = "/var/touchelf/a.jpg"
snapshotScreen(f)
imageFilter(f,{0x007AFF, 0xFFFFFF, 0xFF7AFF}, 80)
local inspect = require('inspect')
code, info = localOcrTextEx("/var/touchelf/tessdata", -- 语言包tessdata目录在设备中的路径
"chi_sim", -- 语言类型为英文
"", -- 白名单为空
f); -- 图片地址
if code == "" then
notifyMessage("识别失败");
else
notifyMessage(string.format("识别成功: %s", code));
logDebug(inspect(info))
end
end
注意:二值化后的图片会覆盖原图.
示例: 配合本地ocr功能实现找字并返回坐标
function main()
x,y = findText("触摸精灵", {0xFFFFFF})
logDebug(x..","..y)
end
function findText(str, color)
local f = "/var/touchelf/a.jpg"
snapshotScreen(f)
imageFilter(f,color, 70)
code, info = localOcrTextEx("/var/touchelf/tessdata", -- 语言包tessdata目录在设备中的路径
"chi_sim", -- 语言类型为中文
"", -- 白名单为空
f); -- 图片地址
if code == "" then
return -1, -1
else
if string.find(code,str) then
local index = 1
local t = {}
for k, v in pairs(info) do
if v.char == str:sub((index-1) * 3 + 1, (index-1) * 3 + 1 + 2) then
if index == 1 then
t = v
end
if index == string.len(str) / 3 then
return t.x, t.y
else
index = index + 1
end
else
index = 1
end
end
return -1, -1
else
return -1, -1
end
end
end
以上示例返回:43,186
使用图片:
二值化以后的图片:
函数:imageResize() 图片缩放
函数说明 : 指定宽高对图片缩放。
函数方法 : imageResize(文本型 path, 整数型 w, 整数型 h);
返回值 : 无
参数 | 类型 | 说明 |
---|---|---|
path | 文本型 | 图片路径, 支持BMP,JPG,PNG格式 |
w | 整数型 | 宽度 |
h | 整数型 | 高度 |
示例
function main()
f = "/var/touchelf/a.jpg"
imageResize(f, 100, 100)
end
注意:缩放后的图片会覆盖原图.
函数:qrCodeEncode 二维码图片生成
函数说明 : 将文本编译成二维码图片。
函数方法 : qrCodeEncode(文本型 path, 文本型 text, 整数型 size);
返回值 : 无
参数 | 类型 | 说明 |
---|---|---|
path | 文本型 | 图片路径, 支持BMP,JPG,PNG格式 |
text | 文本型 | 二维码内容 |
size | 整数型 | 二维码尺寸 |
示例
function main()
f = "/var/touchelf/a.jpg"
qrCodeEncode(f, "http://www.touchelf.com", 200)
end
函数:qrCodeDecode 二维码图片解析
函数说明 : 将二维码图片解析为字符串.
函数方法 : qrCodeDecode(文本型 path);
返回值 : 文本型 text
参数 | 类型 | 说明 |
---|---|---|
path | 文本型 | 图片路径, 支持BMP,JPG,PNG格式 |
返回值 | 类型 | 说明 |
---|---|---|
text | 文本型 | 解析二维码得到的字符串 |
示例
function main()
f = "/var/touchelf/a.jpg"
text = qrCodeDecode(f)
logDebug(text)
end