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 个人笔记(没有整理,很乱)
Jul 07 Javascript
datagrid框架的删除添加与修改
Apr 08 Javascript
JavaScript 浏览器兼容性总结及常用浏览器兼容性分析
Mar 30 Javascript
JS、jQuery中select的用法详解
Apr 21 Javascript
Vue之Watcher源码解析(1)
Jul 19 Javascript
利用Javascript实现一套自定义事件机制
Dec 14 Javascript
在Vue中使用highCharts绘制3d饼图的方法
Feb 08 Javascript
解决vue this.$forceUpdate() 处理页面刷新问题(v-for循环值刷新等)
Jul 26 Javascript
Vue实现商品飞入购物车效果(电商项目)
Nov 26 Javascript
JS判断数组是否包含某元素实现方法汇总
Jun 24 Javascript
vue动态设置页面title的方法实例
Aug 23 Javascript
浅谈JavaScript 声明提升
Sep 14 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 购物车的例子
2009/05/04 PHP
phpinfo 系统查看参数函数代码
2009/06/05 PHP
PHP采集相关教程之一 CURL函数库
2010/02/15 PHP
php提交表单发送邮件的方法
2015/03/20 PHP
jQuery 使用手册(一)
2009/09/23 Javascript
Kibo 用于处理键盘事件的Javascript工具库
2011/10/28 Javascript
IE下Ajax缓存问题的快速解决方法(get方式)
2014/01/09 Javascript
HTML,CSS,JavaScript速查表推荐
2014/12/02 Javascript
快速掌握Node.js模块封装及使用
2016/03/21 Javascript
Javascript基础回顾之(一) 类型
2017/01/31 Javascript
JavaScript数组和对象的复制
2017/03/21 Javascript
基于bootstrap写的一点localStorage本地储存
2017/11/21 Javascript
浅谈用Webpack路径压缩图片上传尺寸获取的问题
2018/02/22 Javascript
详解webpack的proxyTable无效的解决方案
2018/06/15 Javascript
文章或博客自动生成章节目录索引(支持三级)的实现代码
2020/05/10 Javascript
Python中运行并行任务技巧
2015/02/26 Python
整理Python最基本的操作字典的方法
2015/04/24 Python
理解Python垃圾回收机制
2016/02/12 Python
python中map()与zip()操作方法
2016/02/27 Python
Python实现新浪博客备份的方法
2016/04/27 Python
Python贪吃蛇游戏编写代码
2020/10/26 Python
python爬虫实战之爬取京东商城实例教程
2017/04/24 Python
简单谈谈python中的lambda表达式
2018/01/19 Python
Python迭代器和生成器定义与用法示例
2018/02/10 Python
Python 读写文件的操作代码
2018/09/20 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
2020/10/16 Python
英国设计的甲板鞋和船鞋:Chatham
2018/12/06 全球购物
英国奢侈品概念店:Base Blu
2019/05/16 全球购物
Juice Beauty官网:有机美容产品,护肤与化妆品
2020/06/13 全球购物
恶意软件的定义
2014/11/12 面试题
物流仓管员岗位职责
2013/12/04 职场文书
汽车专业人才自我鉴定范文
2013/12/29 职场文书
室内趣味活动方案
2014/08/24 职场文书
优秀志愿者感言
2015/08/01 职场文书
Django给表单添加honeypot验证增加安全性
2021/05/06 Python
javascript代码简写的几种常用方式汇总
2021/08/23 Javascript