首先参考以下几个链接
http://ilovecv.com/a/OPENCV2_xrumen/2011/1105/3.html
http://www.cnblogs.com/tornadomeet/archive/2012/04/29/2476277.html
http://hi.baidu.com/25wensanmu/item/bd8b0718cdbf0e0ee75c3607
对于使用Mat对像素点进行操作,有以下方法:
Mat img2 = imread(".//img//et000.jpg");
对于单通道,如灰度图,有:
for(int i=0;i<img2.rows;i++)
for(int j=0;j<img2.cols;j++)
img2.at<uchar>(i,j)=255; //取得像素或者赋值
对于三通道如RGB图有:
for(int i=0;i<img2.rows;i++)
for(int j=0;j<img2.cols;j++)
for(int n=0;n<img2.channels();n++)
img2.at<uchar>(i,j*img2.channels()+n)=255; //取得像素或者赋值
或者采用模板类的方法
Mat m(Size(3,3), CV_32FC2 );
Vec2f& elem = m.at<Vec2f>( row , col );// or m.at<Vec2f>( Point(col,row) );
elem[0]=1212.0f;
elem[1]=326.0f;
float c1 = m.at<Vec2f>( row , col )[0];// or m.at<Vec2f>( Point(col,row) );
float c2 = m.at<Vec2f>( row , col )[1];
m.at<Vec2f>( row, col )[0]=1986.0f;
m.at<Vec2f>( row, col )[1]=326.0f;