使用ptr指针对Mat中的元素进行操作:
for(int j=0;j<nr;j++)
{
uchar* data=src.ptr<uchar>(j);
for(int i=0;i<nc;i++)
{ //src.at(j,i);
int value=data[i];
}
}
要对某块元素进行运算,如果这样写的话就会出现问题:
for(int j=0;j<nr;j++)
{
uchar* data=src.ptr<uchar>(j);
for(int i=0;i<nc;i++)
{ //src.at(j,i);
int value=data[i];
int value2=(data+1)[i];//src.at(j+1,i);
}
}
由于大部分Mat都是连续存储的,导致(data+1)[i]取得值不是第j行i列的元素,而是第j行的i+1个元素。