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 setTimeout 参数传递使用介绍
Aug 13 Javascript
理解 JavaScript Scoping &amp; Hoisting(二)
Nov 18 Javascript
node.js+express制作网页计算器
Jan 17 Javascript
使用jQuery Rotare实现微信大转盘抽奖功能
Jun 20 Javascript
Bootstrap弹出带合法性检查的登录框实例代码【推荐】
Jun 23 Javascript
基于jQuery实现淡入淡出效果轮播图
Jul 31 Javascript
Ajax跨域实现代码(后台jsp)
Jan 21 Javascript
javascript基础练习之翻转字符串与回文
Feb 20 Javascript
Angular.js中angular-ui-router的简单实践
Jul 18 Javascript
vue使用ajax获取后台数据进行显示的示例
Aug 09 Javascript
微信实现自动跳转到用其他浏览器打开指定APP下载
Feb 15 Javascript
小程序云开发实现数据库异步操作同步化
May 18 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中实现图片的锐化
2006/10/09 PHP
php 中文和编码判断代码
2010/05/16 PHP
PHP IF ELSE简化/三元一次式的使用
2011/08/22 PHP
基于initPHP的框架介绍
2013/04/18 PHP
PHP实现微信退款的方法示例
2019/03/26 PHP
JavaScript 事件冒泡简介及应用
2010/01/11 Javascript
JavaScript 事件系统
2010/07/22 Javascript
javascript和jquery实现设置和移除文本框默认值效果代码
2015/01/13 Javascript
纯js实现无限空间大小的本地存储
2015/06/18 Javascript
js+css实现文字散开重组动画特效代码分享
2015/08/21 Javascript
使用jQuery的easydrag插件实现可拖动的DIV弹出框
2016/02/19 Javascript
jQuery解决$符号命名冲突
2016/06/18 Javascript
xtemplate node.js 的使用方法实例解析
2016/08/22 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
2016/09/19 Javascript
Bootstrap table使用方法详细介绍
2016/12/09 Javascript
Bootstrap实现各种进度条样式详解
2017/04/13 Javascript
vue2.x+webpack快速搭建前端项目框架详解
2017/11/30 Javascript
js实现鼠标拖拽div左右滑动
2020/01/15 Javascript
微信小程序实现签到弹窗动画
2020/09/21 Javascript
微信小程序淘宝首页双排图片布局排版代码(推荐)
2020/10/29 Javascript
es5 类与es6中class的区别小结
2020/11/09 Javascript
[01:10]DOTA2次级职业联赛 - U5战队宣传片
2014/12/01 DOTA
[01:27:30]LGD vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python实现的批量下载RFC文档
2015/03/10 Python
简单了解OpenCV是个什么东西
2017/11/10 Python
Python中extend和append的区别讲解
2019/01/24 Python
python将字符串list写入excel和txt的实例
2019/07/20 Python
python删除某个目录文件夹的方法
2020/05/26 Python
python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警
2021/01/30 Python
Adobe Html5 Extension开发初体验图文教程
2017/11/14 HTML / CSS
伦敦香水公司:The London Perfume Company
2019/11/13 全球购物
新闻传媒系求职信范文
2014/04/19 职场文书
2014党员学习兰辉先进事迹思想汇报
2014/09/17 职场文书
2014年最新学校运动会广播稿
2014/09/17 职场文书
实习单位指导教师评语
2014/12/30 职场文书
公司辞职信模板
2015/05/13 职场文书