在opencv的Core中有一个函数是计算协方差矩阵,这个函数为:calcCovarMatrix
在这里我们就来简单的介绍一些协方差矩阵
方差

方差是各个数据与平均数之差的平方的平均数。在概率论和数理统计中,方差(英文Variance)用来度量随机变量和其数学期望(即均值)之间的偏离程度
我们首先看看方差,对于单个向量,我们称为是方差。比如一个n维的向量   其中 方差我们应该:

标准差 :方差开根号

对于两个向量:还有一个概念,协方差

协方差  :在概率论和统计学中,协方差用于衡量两个变量的总体误差。而方差是协方差的一种特殊情况,即当两个变量是相同的情况。

比如向量:  和    

协方差计算方式:

协方差是描述两个向量直接的关系

我们计算来一个简单的例子:

对于向量:

如何来求解这个来年两个向量的协方差

我们利用协方差的计算公式:

X的均值为:102.5    Y的均值为:151.5

这个地方 * 我们作为当做内积来使用

所以(112-102.5,93-102.5)* (147-151.5,157-151.5)=(9.5,-9.5)*(-3.5,4.5)=-9.5*3.5-9.5*4.5=85.5

协方差矩阵:

对矩阵来说,我们可以看做是n*m (n行,m列)矩阵 ,我们的协方差矩阵 我们可以看成是m 向量之间的相互关联,那么m个向量之间的关联关系,任意的两个向量之间都存在关系,所以我们可以知道协方差矩阵的维度为m*m

那么任意两个向量之间都是存在协方差,,比如一个3*2的矩阵

那么我们可以其协方差矩阵的维度为2*2

     int matSize = 2;Mat covar = new Mat(matSize, matSize, CvType.CV_8UC1);Mat mean = new Mat(1, matSize, CvType.CV_8UC1);Mat src = new Mat(new Size(2,3),CvType.CV_32FC1);src.put(0, 1, new double[] {1,2,3,4,5});       System.out.println(src.dump());Core.calcCovarMatrix(src, covar, mean, Core.COVAR_ROWS | Core.COVAR_NORMAL);System.out.println(covar.dump());

输出协方差矩阵为:

那么到底是否正确:

协方差中矩阵对应的元素

dst(i,j)=

向量X:第i列的所有元素减去第i列元素的均值

向量Y:第j列所有的元素减去第j列所有元素的均值

向量X和向量Y的内积

dst(1,1)=

第一列的均值:(0+2+4)/3=2   第二列均值:(1+3+5)/3=3

向量1=(0-2,2-2,4-2)=(-2,0,2)

向量2=(0-2,2-2,4-2)=(-2,0,2)

向量1和向量2的内积(-2,0,2)*(-2,0,2)=-2*(-2)+0*0+2*2=8

利用同样的方法我们可以计算对应的dst(1,2) dst(2,1),dst(2,2) 最后这些元素按照左边组成矩阵

就是我们上面输出的协方差矩阵了

上面就是对协方差矩阵的简单的理解

希望对你有所帮助!

java opencv calcCovarMatrix 计算协方差矩阵相关推荐

  1. java 计算协方差矩阵_MUSIC算法推导及代码实现

    简介 MUSIC (Multiple Signal Classification)算法,即多信号分类算法,由Schmidt等人于1979年提出.MUSIC算法是一种基于子空间分解的算法,它利用信号子空 ...

  2. java编写计算协方差矩阵_协方差矩阵的实例与意义

    在机器学习中经常需要计算协方差矩阵,本科时没学过这个概念,一直对此非常头疼.现在试图通过实例的计算.图形化的表示来梳理一下什么是协方差矩阵. ###A numerical example 问题: 有一 ...

  3. python 计算协方差矩阵_opencv2学习:计算协方差矩阵

    图像的高级处理中,协方差矩阵计算是必不可少的,但opencv关于这方面的资料却相当少. 首先,利用matlab计算一下,便于比较: >> data=[1,2,3;10,20,30] dat ...

  4. java opencv 实现换脸

    最近碰到个项目,要求是实现人脸交换,即如下图所示,将右边汤唯的脸换成左边鹿晗的脸,变成中间的照片,就是人脸交换. 网上一般都是基于opencv和Dlib来实现,且多为c++或python语言,或app ...

  5. opencv学习---计算图像的水平积分投影和垂直积分投影

    opencv学习---计算图像的水平积分投影和垂直积分投影 标签: opencv水平积分投影垂直积分投影 2016-12-07 18:48 1806人阅读 评论(1) 收藏 举报 分类: opencv ...

  6. Java基础-时间复杂度计算方式

    Java基础-时间复杂度计算方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   时间复杂度通常是衡量算法的优劣的,衡量算法的时间严格来讲是很难衡量的,由于不同的机器性能不用环境 ...

  7. Atitit Java OpenCV 捕获视频

    Atitit Java  OpenCV 捕获视频 ,打开一段视频或默认的摄像头 有两种方法,一种是在定义类的时候,一种是用open()方法. 一. 读取视频序列 OpenCV提供了一个简便易用的框架以 ...

  8. java精确除法计算,四舍五入 Java问题通用解决代码

    java精确除法计算,四舍五入 Java问题通用解决代码 参考文章: (1)java精确除法计算,四舍五入 Java问题通用解决代码 (2)https://www.cnblogs.com/svenne ...

  9. Java判断工作日计算,计算随意2个日期内的工作日

    当前位置:我的异常网» Java Web开发 » 计算随意2个日期内的工作日 计算随意2个日期内的工作日 www.myexceptions.net  网友分享于:2013-08-17  浏览:51次 ...

最新文章

  1. 批处理bat中的脚本
  2. 静态网页使用Node.js跨域代理服务
  3. 如何用UE(UltraEdit)删除重复行?--转
  4. c语言随机产生100个字母,C语言实现产生100以内的随机数做加减运算
  5. ASP.NET页面刷新的几种实现方法
  6. 如何让你的webapp也能跳窗口搜索
  7. android studio cmake opencv_Mac下安装及配置OpenCV环境(Xcode)
  8. Shell函数:Shell函数返回值、删除函数、在终端调用函数
  9. 字符串里解析vue表达式
  10. shell实战之tomcat看门狗
  11. 轉:VB6中将数据导出到Excel提速之法
  12. 感觉自己没有美术天赋,要不要放弃成为艺术生?
  13. 微软发布2016年5月安全补丁 提醒及时修复
  14. (转)Rust:Ownership,Reference和Lifetime详解
  15. Optisystem中器件的学习(1-Visualizer Library、Sensors)
  16. 计算机知识技能大赛总结,计算机技能大赛总结.doc
  17. matlab 判断鼠标按下_如何让MATLAB控制你的鼠标和键盘
  18. openCv4Android之fitLine中各算法总结
  19. torch.Tensor.requires_grad_(requires_grad=True)的使用说明
  20. 基于随机森林、svm、CNN机器学习的风控欺诈识别模型

热门文章

  1. codeigniter配置smarty模板
  2. Leangoo看板工具做敏捷故事地图看板示例
  3. 我又被学弟学妹倒挂了
  4. JAVA那点破事!并发、IO模型、集合、线程池、死锁、非阻塞、AQS....
  5. 大厂程序员和北京户口教师女友买房分歧,要求分配产权怕离婚扯皮
  6. 一次非常有意思的 SQL 优化经历!
  7. 如何用两个小时入门 Docker?
  8. 微软新员工吐槽:技术含量一般,好后悔拒绝了阿里,感觉要废掉
  9. 推荐8个令人骄傲的国产软件,改变你对国产的认知
  10. 如何有效落地企业目标管理方法论?