輸入參數說明:
基於opencv
_src 一共兩行,每行是一個樣本數據。
如果兩個樣本如下: A = {1 2 3 4 5 6} ; B = {7 8 9 4 5 6}
則_src應該是:
1 2 3 4 5 6
7 8 9 4 5 6
double covRowTwoVec(cv::Mat _src)
{
CV_Assert(_src.rows == 2);
cv::Mat src;
_src.convertTo(src, CV_64FC1);
std::vector<double> means(2);
means[0] = (cv::mean(src.row(0))).val[0];
means[1] = (cv::mean(src.row(1))).val[1];
std::vector<double> stdiffs;
cv::Mat temp = src.row(0) - means[0]*cv::Mat::ones(1, src.cols, CV_64FC1);
cv::Mat temp2 = src.row(1) - means[1] * cv::Mat::ones(1, src.cols, CV_64FC1);
cv::Mat res = temp*temp2.t();
return res.at<double>(0)/src.cols;
}