函数:ts.imgFindColor 二值化图片区域多点找色(仅支持 iOS)
函数名称:二值化多点找色,图片多点找色
函数功能:在图片的指定区域,根据颜色以及其周边点的颜色,寻找符合条件的点的坐标
ts.so 版本:仅支持 v1.2.4 及以上版本
函数方法
point = ts.imgFindColor(path,color,posandcolors,x1, y1, x2, y2);
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 待找色的图片路径 |
color | number | 是 | 欲寻找的参照点颜色,0 - 黑色,255 - 白色 |
posandcolors | string | 是 | 周边点颜色参数 |
x1 | number | 是 | 找色区域相对图片左上角顶点横坐标 |
y1 | number | 是 | 找色区域相对图片左上角顶点纵坐标 |
x2 | number | 是 | 找色区域相对图片右下角顶点横坐标 |
y2 | number | 是 | 找色区域相对图片右下角顶点纵坐标 |
posandcolors 参数介绍:
需要先对图片进行二值化,得到黑白的图片,然后使用抓色器对二值化的图片进行取色,
找到 1 个点坐标是(255,339)),颜色值是 0xffffff,
找到第 2 个点坐标是(278,349,颜色值是 0xffffff,
找到第 3 个点坐标是(267,340),颜色值是 0xffffff,
其中 0x000000 = 0,0xfffffff = 255
序号 | 颜色值 | 坐标 | 相对坐标 |
---|---|---|---|
1 | 0xfffffff | (255,339) | (0, 0) |
2 | 0xfffffff | (278,349) | (23,10) |
3 | 0xfffffff | (267,340) | (12,1) |
返回值 | 类型 | 说明 |
---|---|---|
point | table | 以 table 形式返回符合条件的参照点的坐标,如未找到则返回的 table 为空 |
返回的 table 为以下形式:
table = {
{x = 100,y = 110},
}
函数用例
local ts = require("ts")
point = ts.imgFindColor(userPath().."/res/tmp.jpg",255,"23|10|255,12|1|255",204,292,340,387)
if type(point) == "table" and #point ~=0 then
dialog(point[1].x)
else
dialog("未找到")
end
注意事项
图片路径:
iOS 资源路径:/var/mobile/Media/TouchSprite/res/(更多 - 文件管理 -资源)
安卓资源路径:/mnt/sdcard/TouchSprite/res/(我的账号 - 文件管理 -资源)
雷电 9 系统模拟器分辨率为平板版时使用函数:getScreenSize 获取的屏幕宽高相反,获取到的宽度实际为屏幕高度,获取的高度实际为屏幕宽度,其他模拟器获取的屏幕宽高为实际屏幕宽高。