c++ - c++类与OpenCV矩阵运算之间的转换

标签 c++ opencv for-loop matrix type-conversion

我正在尝试将以下 c++ 行转换为 OpenCV 矩阵运算(也是 c++):

double myCode::calculate ( int i, int au )
{
    double k;
    for ( int j = 0; i < N; i ++ );
    {
         k += fabs(data[i][j] - means[au][j]);            
    }
}

我想将“data”和“means”定义为 openCV 矩阵类型,例如:

cv::Mat data ( NUMBER_OF_OBSERVATIONS, N, CV_8UC3 );
cv::Mat means = cv::Mat.zeros ( 5, N, CV_8UC3 );

然后为这个 cvMat 类型“data”和“means”重复上面的类。我怎样才能做到这一点?特别是我不知道该怎么做:

k += fabs(data[i][j] - means[au][j]); 

非常感谢。

最佳答案

你可以简单地写

double myCode::calculate ( int i, int au )
{
    cv::Scalar res = sum(avg(data(RowRange(i)) - means(RowRange(au))));
    return res[0] + res[1] + res[2]; // sum all the channels together
}

请注意,RowRange() 实际上不是正确的语法 - 查看 OpenCV 文档以了解 Range() 的正确用法,但这就是想法。

关于c++ - c++类与OpenCV矩阵运算之间的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12694055/

相关文章:

c++ - 获取使用 std::chrono 花费的平均时间

OpenCV 2.3.1 : how to tell if haartraining is stuck or still working (on TINY example)

python - 苹果操作系统 : Using python to capture screenshots of a specific window

python - 求重叠椭圆的直径和面积(OpenCV,Python)

javascript - 我该如何解决? DOM javascript 渐变不起作用?

python - 如何从字典创建数据框

c++ - 使用自定义分配器及其替代方案重载基本类型

枚举类的 c++ typedef/type 替换

python - swig c++ 到 python 通过引用返回 unsigned char*

javascript - for 循环无意中中断 if 语句