javascript图片相似度算法实现 js实现直方图和向量算法


Posted in Javascript onJanuary 14, 2014
function getHistogram(imageData) {
    var arr = [];
    for (var i = 0; i < 64; i++) {
        arr[i] = 0;
    }
    var data = imageData.data;
    var pow4 = Math.pow(4, 2);
    for (var i = 0, len = data.length; i < len; i += 4) {
        var red = (data[i] / 64) | 0;
        var green = (data[i + 1] / 64) | 0;
        var blue = (data[i + 2] / 64) | 0;
        var index = red * pow4 + green * 4 + blue;
        arr[index]++;
    }
    return arr;
}
function cosine(arr1, arr2) {
    var axb = 0,
        a = 0,
        b = 0;
    for (var i = 0, len = arr1.length; i < len; i++) {
        axb += arr1[i] * arr2[i];
        a += arr1[i] * arr1[i];
        b += arr2[i] * arr2[i];
    }
    return axb / (Math.sqrt(a) * Math.sqrt(b));
}
function gray(imgData) {
    var data = imgData.data;
    for (var i = 0, len = data.length; i < len; i += 4) {
        var gray = parseInt((data[i] + data[i + 1] + data[i + 2]) / 3);
        data[i + 2] = data[i + 1] = data[i] = gray;
    }
    return imgData;
}

有个问题,假如图片是灰色的跟原图进行比较,那么要比较相似度,需要将图片都转成灰色的,即使用上面代码的gray函数来处理

Javascript 相关文章推荐
js每次Title显示不同的名言
Sep 25 Javascript
jquery png 透明解决方案(推荐)
Aug 21 Javascript
JS操作JSON要领详细总结
Aug 25 Javascript
用javascript关闭本窗口技巧小结
Sep 05 Javascript
js实现获取焦点后光标在字符串后
Sep 17 Javascript
如何提高javascript加载速度
Dec 26 Javascript
微信小程序图片自适应支持多图实例详解
Jun 21 Javascript
jQuery实现的鼠标滚轮控制图片缩放功能实例
Oct 14 jQuery
vue生成token保存在客户端localStorage中的方法
Oct 25 Javascript
Vue.js做select下拉列表的实例(ul-li标签仿select标签)
Mar 02 Javascript
详解Vue项目中出现Loading chunk {n} failed问题的解决方法
Sep 14 Javascript
微信小程序如何再次获取用户授权的方法
May 10 Javascript
js动画效果制件让图片组成动画代码分享
Jan 14 #Javascript
利用JQuery制作符合Web标准的QQ弹出消息
Jan 14 #Javascript
js中opener与parent的区别详细解析
Jan 14 #Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
Jan 14 #Javascript
IE与FF下javascript获取网页及窗口大小的区别详解
Jan 14 #Javascript
JavaScript自定义日期格式化函数详细解析
Jan 14 #Javascript
javascript日期对象格式化为字符串的实现方法
Jan 14 #Javascript
You might like
php设计模式 Prototype (原型模式)代码
2011/06/26 PHP
分享常见的几种页面静态化的方法
2015/01/08 PHP
为你总结一些php信息函数
2015/10/21 PHP
JQuery 操作Javascript对象和数组的工具函数小结
2010/01/22 Javascript
jquery中ajax调用json数据的使用说明
2011/03/17 Javascript
Jquery中对数组的操作代码
2011/08/12 Javascript
jQuery EasyUI API 中文文档 DateTimeBox日期时间框
2011/10/16 Javascript
js屏蔽鼠标键盘(右键/Ctrl+N/Shift+F10/F11/F5刷新/退格键)
2013/01/24 Javascript
利用JavaScript检测CPU使用率自己写的
2014/03/22 Javascript
ie 7/8不支持trim的属性的解决方案
2014/05/23 Javascript
浏览器环境下JavaScript脚本加载与执行探析之defer与async特性
2016/01/14 Javascript
javascript实现图片轮播效果
2016/01/20 Javascript
nodejs实现bigpipe异步加载页面方案
2016/01/26 NodeJs
探讨:JavaScript ECAMScript5 新特性之get/set访问器
2016/05/05 Javascript
原生js仿jquery animate动画效果
2016/07/13 Javascript
js事件驱动机制 浏览器兼容处理方法
2016/07/23 Javascript
JavaScript常用正则函数用法示例
2017/01/23 Javascript
js实现年月日表单三级联动
2020/04/17 Javascript
JQueryMiniUI按照时间进行查询的实现方法
2017/06/07 jQuery
JS获取url参数,JS发送json格式的POST请求方法
2018/03/29 Javascript
vue中的$emit 与$on父子组件与兄弟组件的之间通信方式
2018/05/13 Javascript
快速解决处理后台返回json数据格式的问题
2018/08/07 Javascript
JavaScrip如果基于url实现图片下载
2020/07/03 Javascript
python解决汉字编码问题:Unicode Decode Error
2017/01/19 Python
Python字符串逆序输出的实例讲解
2019/02/16 Python
在Qt中正确的设置窗体的背景图片的几种方法总结
2019/06/19 Python
使用Python3 poplib模块删除服务器多天前的邮件实现代码
2020/04/24 Python
详解使用Python写一个向数据库填充数据的小工具(推荐)
2020/09/11 Python
Paradox London官方网站:英国新娘鞋婚礼鞋品牌
2019/08/29 全球购物
学生自我鉴定
2013/12/18 职场文书
《桃花心木》教学反思
2014/02/17 职场文书
学习决心书范文
2014/03/11 职场文书
个人遵守党的政治纪律情况对照检查材料思想汇报
2014/09/25 职场文书
党员批评与自我批评思想汇报
2014/10/08 职场文书
质量保证书
2015/01/17 职场文书
校园环境卫生倡议书
2015/04/29 职场文书