opencv现在主要用两种语言,一个是C语言和C++语言
1c语言直接访问像素的方法是
1)IplImage img;
uchar* pdata; //声明一个指针
img=cvLoadImage(...);
pdata=(uchar *)img->imageData; //这就获得指向第一个像素的指针
pdata+row*img->widthStep+col即为你想要指向的行数和列数的像素
2)pixval32f( img, r, c )
r为行,c为列
这个函数其实就是上面取得的那个指针
2c++版本的
有好几个方法
1)
Mat image;
image.at<Vec3b>(x,y)[c]即为像素值
x为行,y为列,c为通道 (rgb依次通道)
2)
uchar* data= image.ptr<uchar>(j);//可以先获得每一行的第一个像素的指针下面你懂的,就跟指针操作一样
3)其实第一种和第二种可以归为一类
下面这种是纯指针了,我觉得这种方便
下面指向坐标为(j,i)的像素的指针
data= image.data+j*image.step+i*image.elemSize();