函数: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 获取的屏幕宽高相反,获取到的宽度实际为屏幕高度,获取的高度实际为屏幕宽度,其他模拟器获取的屏幕宽高为实际屏幕宽高。

Copyright 北京帮你玩科技有限公司 2023 all right reserved,powered by Gitbook该文章修订时间: 2024-03-06 17:50:18

results matching ""

    No results matching ""