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 相关文章推荐
jQuery的强大选择器小结
Dec 27 Javascript
Jquery跨域获得Json时invalid label错误的解决办法
Jan 11 Javascript
JavaScript高级程序设计(第3版)学习笔记12 js正则表达式
Oct 11 Javascript
JavaScript动态添加style节点的方法
Jun 09 Javascript
JavaScript去除数组里重复值的方法
Jul 13 Javascript
Vue.js中数组变动的检测详解
Oct 12 Javascript
微信小程序  Mustache语法详细介绍
Oct 27 Javascript
ES6概念 ymbol.for()方法
Dec 25 Javascript
MUI 上拉刷新/下拉加载功能实例代码
Apr 13 Javascript
详解在vue-test-utils中mock全局对象
Nov 07 Javascript
如何在项目中使用log4.js的方法步骤
Jul 16 Javascript
详解Nuxt.js中使用Element-UI填坑
Sep 06 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
解析Linux下Varnish缓存的配置优化
2013/06/20 PHP
php不用正则验证真假身份证
2013/11/06 PHP
php中ob_get_length缓冲与获取缓冲长度实例
2014/11/20 PHP
laravel model 两表联查示例
2019/10/24 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
javascript CSS画图之基础篇
2009/07/29 Javascript
jQuery实现鼠标滑过遮罩并高亮显示效果
2013/07/16 Javascript
javascript中直接引用Microsoft的COM生成Word
2014/01/20 Javascript
jQuery is()函数用法3例
2014/05/06 Javascript
jQuery中unwrap()方法用法实例
2015/01/16 Javascript
js实现图片和链接文字同步切换特效的方法
2015/02/20 Javascript
jQuery使用toggleClass方法动态添加删除Class样式的方法
2015/03/26 Javascript
贴近用户体验的Jquery日期、时间选择插件
2015/08/19 Javascript
基于jQuery实现点击弹出层实例代码
2016/01/01 Javascript
Jquery跨域获得Json的简单实例
2016/05/18 Javascript
Form表单按回车自动提交表单的实现方法
2016/11/18 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
2017/02/09 Javascript
jquery表单验证实例仿Toast提示效果
2017/03/03 Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
2017/11/28 Javascript
微信{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
2018/10/12 Javascript
利用原生JS实现data方法示例代码
2019/05/28 Javascript
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
2020/11/04 Javascript
[03:07]2015国际邀请赛选手档案EHOME.rOtK 是什么让他落泪?
2015/07/31 DOTA
[36:14]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第二局
2016/02/28 DOTA
Python高效编程技巧
2013/01/07 Python
Python实现的文本编辑器功能示例
2017/06/30 Python
python3+PyQt5自定义视图详解
2018/04/24 Python
Python之时间和日期使用小结
2019/02/14 Python
AmazeUI 导航条的实现示例
2020/08/14 HTML / CSS
Tory Burch英国官方网站:美国时尚生活品牌
2017/12/06 全球购物
英国最大的LED专业零售商:Led Hut
2018/03/16 全球购物
Under Armour安德玛荷兰官网:美国高端运动科技品牌
2019/07/10 全球购物
医院护士见习期自我鉴定
2014/04/10 职场文书
自主招生自荐信格式
2015/03/04 职场文书
python基础学习之递归函数知识总结
2021/05/26 Python
Vue OpenLayer测距功能的实现
2022/04/20 Vue.js