摘自opencv2 codebook
1. at方式,如image.at<uchar>(i,j) =255或image.at<Vec3b>(i,j)[0] =255
此方式的效率比较低,建议只在随机读取时使用,在图片或矩阵轮询时不要使用。
2. 指针方式如 uchar* data= image.ptr<uchar>(j),data[i] =elem;
指针操作的效率最高,尤其是经过优化后的,一个优化的方法就是用短的循环代替长的循环,一个循环内多做些操作
3. 迭代器的方式如cv::Mat_<cv::Vec3b>::iterator it= image.begin<cv::Vec3b>();
他的主要好处就是不会越界,是面向对象编程里经常用到的STL的方法,但他的效率也不是很高
所以平时编程还是用指针的方法。