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 相关文章推荐
实用javaScript技术-屏蔽类
Aug 15 Javascript
不间断滚动JS打包类,基本可以实现所有的滚动效果,太强了
Dec 08 Javascript
JavaScript入门教程(6) Window窗口对象
Jan 31 Javascript
16个最流行的JavaScript框架[推荐]
May 29 Javascript
javascript页面倒计时实例
Jul 25 Javascript
基于Javascript实现返回顶部按钮
Feb 29 Javascript
js仿百度登录页实现拖动窗口效果
Mar 11 Javascript
JS中双击和单击事件冲突的解决方法
Apr 09 Javascript
Vue实现搜索结果高亮显示关键字
May 28 Javascript
vue webpack重写cookie路径的方法
Jul 10 Javascript
微信小程序之导航滑块视图容器功能的实现代码(简单两步)
Jun 19 Javascript
使用vue判断当前环境是安卓还是IOS
Apr 12 Vue.js
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 分库分表hash算法
2009/11/12 PHP
php XMLWriter类的简单示例代码(RSS输出)
2011/09/30 PHP
如何在symfony中导出为CSV文件中的数据
2011/10/06 PHP
PHP使用MPDF类生成PDF的方法
2015/12/08 PHP
PHP实现linux命令tail -f
2016/02/22 PHP
php验证码生成器
2017/05/24 PHP
php对象工厂类完整示例
2018/08/09 PHP
3Z版基于jquery的图片复选框(asp.net+jquery)
2010/04/12 Javascript
JS将所有对象s的属性复制给对象r(原生js+jquery)
2014/01/25 Javascript
jquery ajax 局部刷新小案例
2014/02/08 Javascript
在jquery中的ajax方法怎样通过JSONP进行远程调用
2014/04/04 Javascript
jQuery动态背景图片效果实现方法
2015/07/03 Javascript
JS实现HTML表格排序功能
2016/08/05 Javascript
详解Jquery 遍历数组之$().each方法与$.each()方法介绍
2017/01/09 Javascript
vue.js树形组件之删除双击增加分支实例代码
2017/02/28 Javascript
vue+mockjs模拟数据实现前后端分离开发的实例代码
2017/08/08 Javascript
js array数组对象操作方法汇总
2019/03/18 Javascript
javascript使用substring实现的展开与收缩文字功能示例
2019/06/17 Javascript
基于jQuery实现挂号平台首页源码
2020/01/06 jQuery
用VsCode编辑TypeScript的实现方法
2020/05/07 Javascript
JS实现联想、自动补齐国家或地区名称的功能
2020/07/07 Javascript
vue-cli中实现响应式布局的方法
2021/03/02 Vue.js
python连接mongodb操作数据示例(mongodb数据库配置类)
2013/12/31 Python
Python简易版停车管理系统
2019/08/12 Python
Python jieba库用法及实例解析
2019/11/04 Python
wxPython实现列表增删改查功能
2019/11/19 Python
Python实现加密接口测试方法步骤详解
2020/06/05 Python
推荐一些比较有用的css3新属性
2014/11/11 HTML / CSS
瑞士图书网站:Weltbild.ch
2019/09/17 全球购物
String这个类型的class为何定义成final?
2012/11/13 面试题
大学四年的个人自我评价
2014/01/14 职场文书
继承公证书样本
2014/04/04 职场文书
个人安全生产责任书
2014/07/28 职场文书
2014年残联工作总结
2014/11/21 职场文书
先进党支部事迹材料2016
2016/02/26 职场文书
MySQL七种JOIN类型小结
2021/10/24 MySQL