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和C#的异同
May 31 Javascript
Jquery增加鼠标中间功能mousewheel的实例代码
Sep 05 Javascript
Json和Jsonp理论实例代码详解
Nov 15 Javascript
jQuery获取checkboxlist的value值的方法
Sep 27 Javascript
JavaScript模块化开发之SeaJS
Dec 13 Javascript
KnockoutJs快速入门教程
May 16 Javascript
jQuery前端开发35个小技巧
May 24 Javascript
利用js获取下拉框中所选的值
Dec 01 Javascript
input输入框内容实时监测(附代码)
Aug 15 Javascript
javaScript产生随机数的用法小结
Apr 21 Javascript
15个顶级开源JavaScript框架和库
Oct 10 Javascript
vue实现按钮切换图片
Jan 20 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
中东人咖啡哲学
2021/03/03 咖啡文化
我的论坛源代码(四)
2006/10/09 PHP
php页面缓存ob系列函数介绍
2012/10/18 PHP
PHP面向对象程序设计方法实例详解
2016/12/24 PHP
PHP文件上传、客户端和服务器端加限制、抓取错误信息、完整步骤解析
2017/01/12 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
jcrop基本参数一览
2013/07/16 Javascript
JavaScript阻止浏览器返回按钮的方法
2015/03/18 Javascript
jQuery实现的简单提示信息插件
2015/12/08 Javascript
基于jQuery实现选取月份插件附源码下载
2015/12/28 Javascript
学习javascript面向对象 理解javascript对象
2016/01/04 Javascript
JavaScript如何实现图片懒加载(lazyload) 提高用户体验(增强版)
2016/11/30 Javascript
Angular组件化管理实现方法分析
2017/03/17 Javascript
判断颜色是否合法的正则表达式(详解)
2017/05/03 Javascript
基于vue2.0实现简单轮播图
2017/11/27 Javascript
node puppeteer(headless chrome)实现网站登录
2018/05/09 Javascript
详解使用 Node.js 开发简单的脚手架工具
2018/06/08 Javascript
在vue中获取微信支付code及code被占用问题的解决方法
2019/04/16 Javascript
JS 设计模式之:单例模式定义与实现方法浅析
2020/05/06 Javascript
Python生成随机密码
2015/03/10 Python
Python的Flask框架中实现简单的登录功能的教程
2015/04/20 Python
Python实例一个类背后发生了什么
2016/02/09 Python
Windows下Anaconda的安装和简单使用方法
2018/01/04 Python
Python读取图片为16进制表示简单代码
2018/01/19 Python
Python 窗体(tkinter)按钮 位置实例
2019/06/13 Python
python编写猜数字小游戏
2019/10/06 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
2020/06/29 Python
TripAdvisor德国:全球领先的旅游网站
2017/12/07 全球购物
Nike法国官方网站:Nike.com FR
2018/07/22 全球购物
电子商务专业实习生自我鉴定
2013/09/24 职场文书
董事长职责范文
2013/11/08 职场文书
《春雨》教学反思
2014/04/24 职场文书
技能培训通讯稿
2015/07/18 职场文书
《将心比心》教学反思
2016/02/23 职场文书
《敬重卑微》读后感3篇
2019/11/26 职场文书
Java中Quartz高可用定时任务快速入门
2022/04/03 Java/Android