java opencv calcCovarMatrix 计算协方差矩阵

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

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

标准差 :方差开根号

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

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

比如向量:X=\left ( {x_{1},x_{2},x_{3}\cdot \cdot \cdot \cdot,x_{n}}} \right )^{T}  和    Y=\left ( {y_{1},y_{2},y_{3}\cdot \cdot \cdot \cdot,x_{n}}} \right )^{T}

协方差计算方式:

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

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

对于向量:

X=\left ( {112,93} \right )^{T}

Y=\left ( {147,156} \right )^{T}

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

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

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的矩阵

\begin{bmatrix} 0,1 & \\ 2,3& \\ 4,5& \end{bmatrix}

那么我们可以其协方差矩阵的维度为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());

输出协方差矩阵为:

\begin{bmatrix} 8,8 & \\ 8,8& \end{bmatrix}

那么到底是否正确:

协方差中矩阵对应的元素

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) 最后这些元素按照左边组成矩阵

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

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

希望对你有所帮助!


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值