OpenCV - 访问Mat时出错

时间:2013-11-17 18:21:07

标签: c++ opencv mat

简单地说,我想在Mat矩阵中总结值。现在我有一个256乘1 Mat(实际上是一个向量,但Mat格式稍后会很重要)。为了看看会发生什么,我试图在循环中打印它

`
calcFractile(Mat* in){

cout << "Input = " << *in << endl;
cout << "?!?! ";
for(int k = 0; k<in->rows; k++){
    cout << static_cast<int>(in->at<uint8_t>(0,k)) << ", ";
    sum += (int)in->at<uint8_t>(0,k);
}
cout <<endl;
}

`

我完全不明白为什么,但是cout&lt;&lt; “输入[...]行产生正确的结果,但访问单个元素的循环无法给出不同的结果 这不仅仅是价值问题,也是数组中的位置。

我传递的Mat是图像的直方图,直方图是单通道,256个bin。

1 个答案:

答案 0 :(得分:0)

问题来自于类型转换,或者说缺少。 我一写了

的static_cast(IN-&GT;(0,k)的

它有效。 也是 (int)(in-&gt; at(0,k)似乎也能正常工作。

我学到的课程 - * 总是检查类型转换* 而不是它是新的东西,但也许有人会受益