请利用OpenCV编程实现C++语言图像的读入、像素值访问和改写操作,并保存成另一幅.jpg格式新图像。
时间: 2024-05-04 16:17:50 浏览: 80
OpenCV实现图像的载入,显示和输出(C++实现).zip
以下是一个简单的示例代码,演示如何使用OpenCV来读取、修改和保存图像文件:
```c
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv)
{
// 读取图像
Mat image = imread("input.jpg");
// 访问像素
for (int y = 0; y < image.rows; y++) {
for (int x = 0; x < image.cols; x++) {
Vec3b color = image.at<Vec3b>(Point(x, y));
// 修改像素
color[0] = 255 - color[0];
color[1] = 255 - color[1];
color[2] = 255 - color[2];
image.at<Vec3b>(Point(x, y)) = color;
}
}
// 保存图像
imwrite("output.jpg", image);
return 0;
}
```
在这个例子中,我们首先使用`imread()`函数读取了名为“input.jpg”的图像文件,并将其存储在一个`Mat`对象中。然后,我们使用两个嵌套循环来访问每个像素,并使用`at()`函数获取其颜色值。在这个例子中,我们将颜色值取反,然后使用`at()`函数将修改后的颜色值写回原图像。最后,我们使用`imwrite()`函数将修改后的图像保存为名为“output.jpg”的文件。
阅读全文