如何在opencv中指向Mat中的最后一个元素?
这是我到目前为止所做的......似乎不正确:(
Mat Bdst;
pToLastValue = Bdst.ptr<float>(0); // pointer to row 0
std::vector< float > vec(pToLastValue, pToLastValue+Bdst.cols); // construct a vector
float* pToLastValue = &vec.back();
提前致谢!
这将为您提供指向最后一个元素的指针。
Mat Bdst(20, 6, CV_32FC1, data);
float* pToLastValue = reinterpret_cast<float*>((--Bdst.end<float>()).ptr);
请记住,它end()
返回一个超过最后一个元素的迭代器,因此您需要递减以获取最后一个元素。
这也将起作用(只需指向最后一行的最后一个元素):
pToLastValue = Bdst.ptr<float>(Bdst.rows - 1) + Bdst.cols - 1;
需要注意的一件事是,Mat 存储并不总是连续的。例如,如果您的 Mat 只是较大 Mat 的子矩阵,则行之间会有间隙。