js实现MAD图像识别算法
2016-07-20 15:50
513 查看
转载请注明出处,附上链接,谢谢。
目前 该代码只正对火狐浏览器
先来看看算法:
在搜索图S中,以(i,j)为左上角,取MxN大小的子图,计算其与模板的相似度;遍历整个搜索图,在所有能够取到的子图中
4000
,找到与模板图最相似的子图作为最终匹配结果。
MAD算法的相似性测度公式如下。显然,平均绝对差D(i,j)越小,表明越相似,故只需找到最小的D(i,j)即可确定能匹配的子图位置:
其中:
算法评价:
优点:
①思路简单,容易理解(子图与模板图对应位置上,灰度值之差的绝对值总和,再求平均,实质:是计算的是子图与模板图的L1距离的平均值)。
②运算过程简单,匹配精度高。
缺点:
①运算量偏大。
②对噪声非常敏感。
好了上代码
①首先在canvas画布上绘制搜索图和模板图
②获得搜索图和模板图的像素数据
③将RGB转灰度值(这部分可以参考我的另一篇博客点击打开链接)
④从搜索图的(0,0)点开始,取模板图大小的子图,将子图与模板图像素点一一对应,灰度值做绝对差,求平均绝对差和
⑤遍历整个搜索图,平均绝对差和最小的即为最相似的子图
最终结果:
目前 该代码只正对火狐浏览器
先来看看算法:
MAD算法:平均绝对差算法(Mean Absolute Differences,简称MAD算法),它是Leese在1971年提出的一种匹配算法。是模式识别中常用方法,该算法的思想简单,具有较高的匹配精度,广泛用于图像匹配。设S(x,y)是大小为mxn的搜索图像,T(x,y)是MxN的模板图像,分别如下图(a)、(b)所示,我们的目的是:在(a)中找到与(b)匹配的区域(红框所示)。
算法思路
在搜索图S中,以(i,j)为左上角,取MxN大小的子图,计算其与模板的相似度;遍历整个搜索图,在所有能够取到的子图中4000
,找到与模板图最相似的子图作为最终匹配结果。
MAD算法的相似性测度公式如下。显然,平均绝对差D(i,j)越小,表明越相似,故只需找到最小的D(i,j)即可确定能匹配的子图位置:
其中:
算法评价:
优点:
①思路简单,容易理解(子图与模板图对应位置上,灰度值之差的绝对值总和,再求平均,实质:是计算的是子图与模板图的L1距离的平均值)。
②运算过程简单,匹配精度高。
缺点:
①运算量偏大。
②对噪声非常敏感。
好了上代码
①首先在canvas画布上绘制搜索图和模板图
②获得搜索图和模板图的像素数据
③将RGB转灰度值(这部分可以参考我的另一篇博客点击打开链接)
④从搜索图的(0,0)点开始,取模板图大小的子图,将子图与模板图像素点一一对应,灰度值做绝对差,求平均绝对差和
⑤遍历整个搜索图,平均绝对差和最小的即为最相似的子图
最终结果:
相关文章推荐
- TypeToken 是google提供的一个解析Json数据的类库中一个类
- jsp中获取properties文件内容
- JSON
- 用jsonp解决ajax跨域请求
- Dijstra算法代码描述
- js 判断各种数据类型
- js 文本框只能输入数字和点
- js:通过正则匹配获取页面的url中的参数
- Javascript-网页编程-DHTML-表单验证技术(正则表达式)
- js 控制父子页面的加载顺序
- Javascript 基础之Number对象
- Javascript 基础之Date对象
- javascript Date() 浏览器兼容问题解决
- 用JS判断两个数字的大小
- 12个JavaScript技巧
- create a 2D map
- JS获取GET参数
- js 插件 弹出deom 自身属性值
- ajax请求json数据
- js的btoa 、atob