OpenCV从mat中检索值为整数

时间:2015-02-17 06:24:37

标签: opencv

我想创建一个精确100个值的一维数组,并在每个索引存储另一个数组的索引。如果我要使用std::vector<int16_t> someVector,我如何确保someVector只有100个值,并且可能会在位置48添加第一个值,如someVector[48] = 29322,依此类推。

作为替代方案,我尝试创建Mat someArray(1,100,CV_16UC1,Scalar(9999))的1-D垫。现在,当我尝试使用int retrievedValue = someArray.row(0).col(48)检索索引48处的值时,它表示无法从Mat转换为int

我意识到我为一件非常简单的事情做了一些疯狂的事情,但请帮忙。

1 个答案:

答案 0 :(得分:1)

初始化矢量时,您可以设置其大小:

std::vector<int16_t> someVector(100);

这种方式将使用100个元素的数组创建。但是不要忘记矢量的大小可能会在以后改变。

至于Mat,像row()或col()这样的运算符给出了初始矩阵的子矩阵。因此,您创建的代码将返回1x1矩阵,而不是短。如果要访问矩阵中的元素,则应为:

int retrievedValue = someArray.at<ushort>(0,48);