当需要访问矩阵第m行的第n个数值时,首先需要计算那一行开头的指针值
如我们定义矩阵CvMat* mat=cvCreateMat(M,N,CV_32FC1);
如果此时需定义指针float* ptr=(float*)(mat->data.ptr+(m-1)*mat->step);
那么*(ptr+n-1)就是我们要访问的数值
切记不可以以矩阵的头指针为基准计算偏移量
如我们定义指针float* ptrHead=(float*)(mat->data.ptr);
则*(ptrHead+(m-1)*mat->step+n-1)不是我们想要访问的数值,除非m=1,即m-1=0。
本文介绍了如何正确访问矩阵中特定元素的方法,给出了使用OpenCV创建的矩阵CvMat*mat的示例,并强调了直接通过矩阵头部指针计算偏移量访问元素的错误方式。
606

被折叠的 条评论
为什么被折叠?



