opencv使用cv::Mat时,如何修改某个像素点的RGB分量

2025-02-23 07:30:07
推荐回答(3个)
回答1:

可以利用vector

#include
#include
using namespace cv;
using namespace std;
int main()
{
Mat m(3, 3, CV_8UC3);//建立一个三行三列3通道像素
Vec3b p;
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
p[0] = i;
p[1] = j;
p[2] = i+j;
m.at(i,j) = p;
}
}
cout <<"数组:"<int a = m.at(2, 2)[2];
Vec3b b = m.at(2, 2)[2];
cout << "访问一个数:" << a <waitKey(0);
return 0;
}

回答2:

操作像素,并非改变像素的颜色

回答3:

vector channels;
split(img,channels);//拆分
channels.at(0) = 255;

channels.at(1) = 0;
channels.at(2) = 0;
merge(channels,img);