您的位置:首页 > Web前端 > JavaScript

js实现MAD图像识别算法

2016-07-20 15:50 513 查看
转载请注明出处,附上链接,谢谢。

目前 该代码只正对火狐浏览器

先来看看算法:


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)点开始,取模板图大小的子图,将子图与模板图像素点一一对应,灰度值做绝对差,求平均绝对差和



⑤遍历整个搜索图,平均绝对差和最小的即为最相似的子图

最终结果:



                                    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: