在opencv中,使用垫子类型计算马氏距离太慢了。如何提高效率?
In opencv,It's too slow by use Mat type to calculate the Mahalanobis distance. How can i improve the efficiency?
Mat imv;
Mat_<double>end(1, 1);
double distance;
Mat_<double>Point(1, 3);
...
imv = Point.t();
end = Point*inv[m]*imv;
distance = sqrt(end(0, 0));
有变量类型的定义和Mahalanobis距离的计算过程。
我很抱歉表达不清楚。我试图遍历图像中的每个像素,计算它们与颜色模型之间的玛哈拉诺比斯距离,并且太慢了。我总是认为应该从矩阵乘法的效率中进行优化。TODAYI通过使用多线程来提高循环速度提高效率,并且很有用。
#pragma omp parallel for num_threads(6)
for (int m = 0; m < k_num; m++) {
Mat_<double>end(1, 1);
double distance = 1000;
Mat_<double>Point(1, 3);
Point(0, 0) = double(data3[j * 3]) - mean1[m].at<double>(0, 0);
Point(0, 1) = double(data3[j * 3 + 1]) - mean1[m].at<double>(0, 1);
Point(0, 2) = double(data3[j * 3 + 2]) - mean1[m].at<double>(0, 2);
end = Point * inv[m] * Point.t();
distance = sqrt(end(0, 0));
}
}
相关文章:
- 如何提高该函数的运行效率?
- 如何提高BST的搜索操作效率?
- 提高基于组件的游戏引擎的效率
- 在SQLITE数据库中写入记录需要花费大量时间.如何提高刀片操作效率?
- 寻求提高Microsoft密封库计算效率的方法
- 做对了一个类似竞争的问题,但需要帮助来提高效率
- 提高驱动程序程序的时间效率
- rvalue参考vector :: push_back函数如何提高效率
- LVALUE和RVALUE返回类型以提高效率
- 在opencv中,使用垫子类型计算马氏距离太慢了。如何提高效率?
- 多线程计算均值和std并不能提高效率
- 将密钥哈希存储在类中以提高效率
- 斯特劳斯特鲁普 第 4 章 练习 6:提高效率
- C++压缩两个for循环以提高效率
- 气泡---提高效率
- 通过引用传递基本类型而不是通过值返回,可以提高效率
- 使用友字提高效率
- 应该在返回语句中使用std::move来提高效率吗?
- 有人只使用引用变量来提高效率和减小大小吗?
- 如何在涉及浮点运算的特定代码中优化和提高效率