[JavaScript] 纯文本查看 复制代码 .版本 2
.支持库 eImgConverter
.子程序 图片匹配并返回缺口坐标
.参数 背景图片路径, 文本型
.参数 缺口图片路径, 文本型
.参数 输出图片路径, 文本型
.局部变量 bg_img, 字节集
.局部变量 tp_img, 字节集
.局部变量 bg_edge, 字节集
.局部变量 tp_edge, 字节集
.局部变量 bg_pic, 字节集
.局部变量 tp_pic, 字节集
.局部变量 res, 字节集
.局部变量 min_val, 双精度小数型
.局部变量 max_val, 双精度小数型
.局部变量 min_loc, 整数型
.局部变量 max_loc, 整数型
.局部变量 th, 整数型
.局部变量 tw, 整数型
.局部变量 tl, 整数型
.局部变量 br, 整数型
bg_img = 读入文件 (背景图片路径)
tp_img = 读入文件 (缺口图片路径)
' 使用图片转换支持库将字节集转换为易图片对象
bg_img 对象 = 转换为易图片 (bg_img)
tp_img 对象 = 转换为易图片 (tp_img)
' 使用画板进行图像处理
画板1.初始化 (bg_img 对象.取宽度 (), bg_img 对象.取高度 ())
画板1.画图片 (bg_img 对象, 0, 0)
画板2.初始化 (tp_img 对象.取宽度 (), tp_img 对象.取高度 ())
画板2.画图片 (tp_img 对象, 0, 0)
' 识别图片边缘
bg_edge 对象 = 画板1.取图片 ().灰度化 ().边缘检测 (8, 15)
tp_edge 对象 = 画板2.取图片 ().灰度化 ().边缘检测 (8, 15)
' 转换图片格式
bg_pic 对象 = bg_edge 对象.取图片 ().转换颜色 (#颜色_RGB)
bg_pic = 转换为字节集 (bg_pic 对象)
tp_pic 对象 = tp_edge 对象.取图片 ().转换颜色 (#颜色_RGB)
tp_pic = 转换为字节集 (tp_pic 对象)
' 缺口匹配
res 对象 = 图片匹配 (bg_pic 对象.取图片 (), tp_pic 对象.取图片 (), #相似度算法_TM_CCOEFF_NORMED)
res = 转换为字节集 (res 对象.取图片 ())
取图片相似度值 (res 对象.取图片 (), min_val, max_val, min_loc, max_loc)
' 绘制方框
th = tp_pic 对象.取高度 ()
tw = tp_pic 对象.取宽度 ()
tl = max_loc
br = tl + tw + (th × 65536)
画板1.画矩形 (tl % 65536, tl ÷ 65536, br % 65536, br ÷ 65536, #红色, 2)
bg_img 对象 = 画板1.取图片 ()
转换为字节集 (bg_img 对象, bg_img)
写到文件 (输出图片路径, bg_img)
' 返回缺口的 X 坐标
返回 tl % 65536 |