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中难以理解的11个问题
Dec 09 Javascript
javascript得到当前页的来路即前一页地址的方法
Feb 18 Javascript
JavaScript实现基于Cookie的存储类实例
Apr 10 Javascript
JavaScript模块规范之AMD规范和CMD规范
Oct 27 Javascript
js实现页面跳转的五种方法推荐
Mar 10 Javascript
jQuery.ajax实现根据不同的Content-Type做出不同的响应
Nov 03 Javascript
jQuery与JavaScript节点创建方法的对比
Nov 18 Javascript
20行JS代码实现粘贴板复制功能
Feb 06 Javascript
node实现登录图片验证码的示例代码
Apr 20 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
May 04 Javascript
vue-cli3 karma单元测试的实现
Jan 18 Javascript
vue elementUI 表单校验功能之数组多层嵌套
Jun 04 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_xmlhttp 乱码问题解决方法
2009/08/07 PHP
PHP 删除一个目录及目录下的所有文件的函数代码
2010/05/26 PHP
PHP中的str_repeat函数在JavaScript中的实现
2013/09/16 PHP
php使用自定义函数实现汉字分割替换功能示例
2017/01/30 PHP
laravel 查询数据库获取结果实现判断是否为空
2019/10/24 PHP
基于jQuery的前端数据通用验证库
2011/08/08 Javascript
让复选框只能选择一项的方法
2013/10/08 Javascript
jQuery UI插件自定义confirm确认框的方法
2015/03/20 Javascript
jQuery实现文本框输入同步的方法
2015/06/20 Javascript
jQuery实现右侧显示可向左滑动展示的深色QQ客服效果代码
2015/10/23 Javascript
20分钟轻松创建自己的Bootstrap站点
2016/05/12 Javascript
浅谈javascript中的加减时间
2016/07/12 Javascript
原生js封装的一些jquery方法(详解)
2016/09/20 Javascript
一个Vue视频媒体多段裁剪组件的实现示例
2018/08/09 Javascript
如何让node运行es6模块文件及其原理详解
2018/12/11 Javascript
微信小程序 select 下拉框组件功能
2019/09/09 Javascript
公众号SVG动画交互实战代码
2020/05/31 Javascript
vue 导航锚点_点击平滑滚动,导航栏对应变化详解
2020/08/10 Javascript
[13:25]VP vs VICI (BO3)
2018/06/07 DOTA
python中Genarator函数用法分析
2015/04/08 Python
Python读取txt某几列绘图的方法
2018/10/14 Python
python读取图片任意范围区域
2019/01/23 Python
python基于socket实现的UDP及TCP通讯功能示例
2019/11/01 Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
2020/05/27 Python
AE美国鹰美国官方网站:American Eagle Outfitters
2016/08/22 全球购物
Abbacino官网:包、钱包和女士配饰
2019/04/15 全球购物
澳大利亚人信任的清洁平台,您的私人管家:Jarvis
2020/12/25 全球购物
党支部对照检查材料
2014/08/25 职场文书
承兑汇票转让证明怎么写?
2014/11/30 职场文书
2014年网络管理员工作总结
2014/12/01 职场文书
小兵张嘎电影观后感
2015/06/03 职场文书
给校长的建议书作文500字
2015/09/14 职场文书
微软PC Health Check电脑健康状况检查应用下载(Win11配置检测工具)
2021/06/26 数码科技
SQL实现LeetCode(197.上升温度)
2021/08/07 MySQL
Python实现文字pdf转换图片pdf效果
2022/04/03 Python
Spring IOC容器Bean的作用域及生命周期实例
2022/05/30 Java/Android