常规方法获取像素值:
cv::Mat cvImg = imread("E:\\Test,jpg");
for(int i = 0;i < cvImg.rows; i++){
for(int j = 0;j < img.cols;j++){
s = cvGet2D(img,i,j); // get the (i,j) pixel value
s.val[0]=100;
s.val[1]=200;
s.val[2]=100;
cvSet2D(img,i,j,s);//set the (i,j) pixel value
}
}
快速的方法获取像素值:
cv::Mat cvImg = imread ("E:\\Test.jpg");
for (int i = 0;i !=cvImg.rows;i++){
for (int j = 0;j !=cvImg.cols;j++){
sum += ((uchar *)(cvImg->imageData + cvImg->widthStep * i))[j];//get the(i,j)pixel value
}
}
如果载入图像比较大(3007x1000),那么采取快速的方法获取像素值比较明智选择。