【发布时间】:2014-05-24 22:55:19
【问题描述】:
我正在尝试将某个像素的新颜色值设置为 cv::Mat 图像,我的代码如下:
Mat image = img;
for(int y=0;y<img.rows;y++)
{
for(int x=0;x<img.cols;x++)
{
Vec3b color = image.at<Vec3b>(Point(x,y));
if(color[0] > 150 && color[1] > 150 && color[2] > 150)
{
color[0] = 0;
color[1] = 0;
color[2] = 0;
cout << "Pixel >200 :" << x << "," << y << endl;
}
else
{
color.val[0] = 255;
color.val[1] = 255;
color.val[2] = 255;
}
}
imwrite("../images/imgopti"+to_string(i)+".tiff",image);
似乎在输出(使用 cout)中获得了良好的像素,但是在输出图像(使用 imwrite)中,相关像素没有被修改。我已经尝试过使用 color.val[0].. 我仍然无法弄清楚为什么输出图像中的像素颜色不会改变。 谢谢
【问题讨论】:
标签: c++ opencv image-processing pixel mat