Mat img1(image); //IplImage转Mat
怎么理解OpenCV的这句 p = I.ptr(i); ?
以下是有关程序段:
int i,j;
uchar* p;
for( i = 0; i < nRows; ++i)
{
p = I.ptr(i);
for ( j = 0; j < nCols; ++j)
{
p[j] = table[p[j]];
}
}
图像第i行的头指针,通过这个指针结合列的位置(就是你代码中的j)可以很轻松操作图像改行的每一列。uchar是根据你图像数据的类型来的。。。
追问: 那p = I.ptr(i);中的可不可以不要呢?的作用是什么呢?
追答: 肯定不可以不要的,这个就像是模板,需要通过它来指定你当前mat中图像的数据类型,这样才能跟你外面定义的uchar* p吻合,这样才能正确的访问数据。。。