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 相关文章推荐
url 编码 js url传参中文乱码解决方案
Apr 11 Javascript
JQuery index()方法使用代码
Jun 02 Javascript
javascript中length属性的探索
Jul 31 Javascript
IE不支持getElementsByClassName最终完美解决方案
Dec 17 Javascript
javascript变量声明实例分析
Apr 25 Javascript
Spring Boot+AngularJS+BootStrap实现进度条示例代码
Mar 02 Javascript
基于vue+ bootstrap实现图片上传图片展示功能
May 17 Javascript
微信小程序实现导航栏选项卡效果
Jun 19 Javascript
微信小程序使用canvas的画图操作示例
Jan 18 Javascript
vue进入页面时不在顶部,检测滚动返回顶部按钮问题及解决方法
Oct 30 Javascript
javascript绘制简单钟表效果
Apr 07 Javascript
JavaScript点击按钮生成4位随机验证码
Jan 28 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获取指定日期之间的各个周和月的起止时间
2014/11/24 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
JavaScript闭包 懂不懂由你反正我是懂了
2011/10/21 Javascript
JavaScript实现可拖拽的拖动层Div实例
2015/08/05 Javascript
JavaScript代码生成PDF文件的方法
2016/02/26 Javascript
ionic实现可滑动的tab选项卡切换效果
2020/04/15 Javascript
Vue2.0 vue-source jsonp 跨域请求
2017/08/04 Javascript
如何去除vue项目中的#及其ie9兼容性
2018/01/11 Javascript
js实现轮播图效果 纯js实现图片自动切换
2020/08/09 Javascript
vue插件--仿微信小程序showModel实现模态提示窗功能
2020/08/19 Javascript
Vue实现简单购物车功能
2020/12/13 Vue.js
Python3中的真除和Floor除法用法分析
2016/03/16 Python
Python selenium 三种等待方式详解(必会)
2016/09/15 Python
Python下调用Linux的Shell命令的方法
2018/06/12 Python
python清除字符串前后空格函数的方法
2018/10/21 Python
python实现网页自动签到功能
2019/01/21 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
2019/08/15 Python
python用类实现文章敏感词的过滤方法示例
2019/10/27 Python
Python实现结构体代码实例
2020/02/10 Python
秘鲁购物网站:Linio秘鲁
2017/04/07 全球购物
Farfetch中文官网:奢侈品牌时尚购物平台
2020/03/15 全球购物
毕业生求职简历的自我评价
2013/10/23 职场文书
资料员岗位职责
2013/11/17 职场文书
护理专业求职信
2014/06/15 职场文书
村党支部群众路线教育实践活动对照检查材料
2014/09/26 职场文书
无财产离婚协议书范本
2014/10/28 职场文书
成绩报告单家长评语
2014/12/30 职场文书
故意杀人案辩护词
2015/05/21 职场文书
二十年同学聚会感言
2015/07/30 职场文书
少先队大队委竞选口号
2015/12/25 职场文书
《灰雀》教学反思
2016/02/19 职场文书
同学聚会开幕词
2019/04/02 职场文书
Nginx反向代理配置的全过程记录
2021/06/22 Servers
MySql 缓存查询原理与缓存监控和索引监控介绍
2021/07/02 MySQL
画错魏国疆域啦!《派对咖孔明》动画因作画失误于官网致歉
2022/04/07 日漫
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技