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 相关文章推荐
用正则xmlHttp实现的偷(转)
Jan 22 Javascript
Web层改进II-用xmlhttp 无声息提交复杂表单
Jan 22 Javascript
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
Aug 13 Javascript
javascript下操作css的float属性的特殊写法
Aug 22 Javascript
jquery ajax提交表单数据的两种方式
Nov 24 Javascript
详解jQuery Mobile自定义标签
Jan 06 Javascript
jQuery on()方法绑定动态元素的点击事件无响应的解决办法
Jul 07 Javascript
Javascript中字符串相关常用的使用方法总结
Mar 13 Javascript
javascript实现动态显示颜色块的报表效果
Apr 10 Javascript
ES6中javascript实现函数绑定及类的事件绑定功能详解
Nov 08 Javascript
小程序开发之模态框组件封装
Apr 23 Javascript
从0搭建vue-cli4脚手架
Jun 17 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中长文章分页显示实现代码
2012/09/29 PHP
php中的mongodb select常用操作代码示例
2014/09/06 PHP
php中array_unshift()修改数组key注意事项分析
2016/05/16 PHP
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
利用JS实现浏览器的title闪烁
2013/07/08 Javascript
jquery对元素拖动排序示例
2014/01/16 Javascript
js实现的GridView即表头固定表体有滚动条且可滚动
2014/02/19 Javascript
JavaScript获取table中某一列的值的方法
2014/05/06 Javascript
js动态删除div元素基本思路及实现代码
2014/05/08 Javascript
js中的内部属性与delete操作符介绍
2015/08/10 Javascript
chrome浏览器当表单自动填充时如何去除浏览器自动添加的默认样式
2015/10/09 Javascript
node.js入门实例helloworld详解
2015/12/23 Javascript
第二次聊一聊JS require.js模块化工具的基础知识
2016/04/17 Javascript
JavaScript生成验证码并实现验证功能
2016/09/24 Javascript
jQuery Ztree行政地区树状展示(点击加载)
2016/11/09 Javascript
js实现前端图片上传即时预览功能
2017/08/02 Javascript
详解html-webpack-plugin用法全解
2018/01/22 Javascript
Vue使用json-server进行后端数据模拟功能
2018/04/17 Javascript
ES6使用export和import实现模块化的方法
2018/09/10 Javascript
详解如何探测小程序返回到webview页面
2019/05/14 Javascript
基于JavaScript 实现拖放功能
2019/09/12 Javascript
浅谈layui数据表格判断问题(加入表单元素),设置单元格样式
2019/10/26 Javascript
简单了解vue 插值表达式Mustache
2020/07/22 Javascript
[03:35]2018年度DOTA2最佳辅助位选手5号位-完美盛典
2018/12/17 DOTA
[56:57]LGD vs VP 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第一场 8.20.mp4
2019/08/22 DOTA
[01:05:07]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第一场2月1日
2021/03/11 DOTA
python定向爬取淘宝商品价格
2018/02/27 Python
用python写测试数据文件过程解析
2019/09/25 Python
python单例设计模式实现解析
2020/01/07 Python
日本PLST在线商店:日本时尚杂志刊载的人气服装
2016/12/10 全球购物
Kneipp克奈圃美国官网:德国百年精油配方的传承
2018/02/07 全球购物
大学生专业个人学习的自我评价
2013/10/26 职场文书
应届护士求职信范文
2014/01/26 职场文书
社会实践活动总结报告
2014/04/29 职场文书
个人总结怎么写
2015/02/26 职场文书
解决redis sentinel 频繁主备切换的问题
2021/04/12 Redis