C++ 指向opencv/c+中垫子中的最后一个元素+;

C++ 指向opencv/c+中垫子中的最后一个元素+;,c++,opencv,mat,C++,Opencv,Mat,如何在opencv中指向Mat中的最后一个元素 这是我到目前为止所做的…似乎不正确:( Mat-Bdst; pToLastValue=Bdst.ptr(0);//指向第0行的指针 std::vectorvec(pToLastValue,pToLastValue+Bdst.cols);//构造一个向量 float*pToLastValue=&vec.back(); 提前感谢!这将为您提供指向最后一个元素的指针 Mat Bdst(20, 6, CV_32FC1, data); float* pTo

如何在opencv中指向Mat中的最后一个元素

这是我到目前为止所做的…似乎不正确:(

Mat-Bdst;
pToLastValue=Bdst.ptr(0);//指向第0行的指针
std::vectorvec(pToLastValue,pToLastValue+Bdst.cols);//构造一个向量
float*pToLastValue=&vec.back();

提前感谢!

这将为您提供指向最后一个元素的指针

Mat Bdst(20, 6, CV_32FC1, data);
float* pToLastValue = reinterpret_cast<float*>((--Bdst.end<float>()).ptr); 

需要注意的一点是,Mat存储并不总是连续的。例如,如果您的Mat只是较大Mat的子矩阵,则行之间会有间隙。

您想做什么?指向最后一个元素的指针可以这样访问。
float*pToLastValue=static_cast(Bdst.end().ptr)
谢谢你的帮助。我试过了,但是我得到了一个错误,静态类型无效!我的错,没有测试代码。像这样使用C样式的类型转换:
float*pToLastValue=(float*)(Bdst.end().ptr);
那么,你的意思是我不需要将它转换为向量,然后指向向量中的最后一个元素。。是吗?
Mat Bdst(20, 6, CV_32FC1, data);
float* pToLastValue = reinterpret_cast<float*>((--Bdst.end<float>()).ptr); 
pToLastValue = Bdst.ptr<float>(Bdst.rows - 1) + Bdst.cols - 1;