【问题标题】:OpenCV calculate covariance matrix with only one sampleOpenCV仅用一个样本计算协方差矩阵
【发布时间】:2014-05-03 18:02:49
【问题描述】:

我想计算样本的均值和协方差矩阵。即使样本的大小只有 1,这是否可能?因为当我这样做时:

calcCovarMatrix(descriptor, covar, mean, CV_COVAR_ROWS, CV_32F);

执行后,covar 矩阵只有 1x1 大,并且只包含 0,而 descriptor 是一个包含 390 个不同浮点元素的行向量。

【问题讨论】:

    标签: c++ opencv matrix covariance


    【解决方案1】:

    想想在这种情况下 平均值协方差 的含义。如果您只有一个样本,那么:

    1. 平均值是您唯一的样本

    2. 在与平均值的非零距离处没有样本,因此协方差为零。

    编辑请注意,如果要计算 390 个浮点值的平均值和方差,则需要使用 CV_COVAR_COLUMNS 而不是 CV_COVAR_ROWS

    【讨论】:

    • CV_COVAR_COLUMNS,你确定吗?即使我的描述符是行向量?
    • @user3236180 正如我所说,你应该做什么取决于你对结果的期望......你究竟想从什么计算(协)方差?
    • 我想从描述符矩阵中计算它,它有时可以包含一个样本,有时甚至是 100 个样本。但是所有样本都以行的形式存储在矩阵中。
    • @user3236180 所以你想计算 1x390 描述符向量的平均值和协方差矩阵,而不是 390 个浮点值,因此正确的标志是 CV_COVAR_ROWS
    猜你喜欢
    • 2015-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-13
    • 2018-08-25
    • 2011-11-25
    • 2011-05-23
    • 1970-01-01
    相关资源
    最近更新 更多