#include<iostream>
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main() {
Mat pImg = imread("C:\\Users\\Lijian\\Desktop\\Lena.jpg");
//第一种方法
for (int i = 0; i < pImg.rows; ++i)
{
for (int j = 0; j < pImg.cols; ++j)
{
Vec3b pixel;
pixel[0] = i % 255;
pixel[1] = j % 255;
pixel[2] = 0;
pImg.at<Vec3b>(i, j) = pixel;
}
}
imshow("pimg2", pImg);
//第二种方法
MatIterator_<Vec3b>colorit, colorend;
for (colorit= pImg.begin<Vec3b>(), colorend = pImg.end<Vec3b>(); colorit!=colorend;++colorit)
{
(*colorit)[0] = rand() % 255;
(*colorit)[1] = rand() % 255;
(*colorit)[2] = rand() % 255;
}
//cout << "Roi" << endl << pImg << endl;
imshow("pimg", pImg);
waitKey();
}
像素值的读写
#include<iostream>
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main() {
Mat pImg = imread("C:\\Users\\Lijian\\Desktop\\Lena.jpg");
//读取像素值
Vec3b intensity = pImg.at < Vec3b >(10,25);
uint blue = intensity.val[0];
uint green = intensity.val[1];
uint red = intensity.val[2];
cout << blue << endl<<green<<endl<<red<<endl ;
//修改像素值
pImg.at<Vec3b>(10, 25) = 128;
Vec3b intensity1 = pImg.at < Vec3b >(10, 25);
uint blue1 = intensity1.val[0];
uint green1 = intensity1.val[1];
uint red1=intensity1.val[2];
cout << blue1 << endl << green1 << endl << red1 << endl;
waitKey();
}
103
127
223
128
0
0