现在的位置: 首页 > 综合 > 正文

初学opencv小记-对像素的操作

2014年01月08日 ⁄ 综合 ⁄ 共 473字 ⁄ 字号 评论关闭

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();  

抱歉!评论已关闭.