OpenCV是C++中图像处理最常用且功能强大的库,支持读取、修改和保存图像。1. 安装配置:Windows用户可用vcpkg或预编译库,Linux用sudo apt install libopencv-dev,macOS用brew install opencv;包含头文件#include 并使用命名空间cv。2. 读取图像:用imread()函数加载PNG、JPEG等格式,支持IMREAD_COLOR、IMREAD_GRAYSCALE、IMREAD_UNCHANGED参数,需检查Mat是否为空。3. 修改图像:图像为Mat对象,可遍历像素或调用函数操作,如cvtColor转灰度图,convertTo调亮度,line画线,或通过img.at(i,j)逐像素修改通道值。4. 保存图像:用imwrite()将Mat保存为文件,自动根据扩展名选择格式,返回bool表示成功与否。掌握这四步可实现基本图像处理,OpenCV还支持滤波、边缘检测、人脸识别等高级功能。

在C++中进行图像处理,最常用且功能强大的库是OpenCV。它提供了丰富的函数来读取、修改和保存图像,适用于各种计算机视觉任务。下面介绍如何使用OpenCV在C++中实现基本的图像操作。
1. 安装与配置OpenCV
要使用OpenCV,首先需要安装并配置环境:
- Windows用户可使用vcpkg或预编译的OpenCV库,配合Visual Studio使用。
- Linux用户可通过包管理器安装,例如:sudo apt install libopencv-dev。
- macOS用户可使用Homebrew:brew install opencv。
配置好项目后,在代码中包含头文件:
#includeusing namespace cv;
2. 读取图像
使用imread()函数可以加载图像文件。支持格式包括PNG、JPEG、BMP等。
立即学习“C++免费学习笔记(深入)”;
示例代码:
Mat img = imread("input.jpg");
if (img.empty()) {
std::cout << "无法读取图像!检查路径是否正确。" << std::endl;
return -1;
}
参数说明:
- IMREAD_COLOR:以彩色模式读取(默认)。
- IMREAD_GRAYSCALE:转为灰度图。
- IMREAD_UNCHANGED:包含Alpha通道。
3. 修改图像
图像本质是矩阵(Mat对象),可以通过遍历像素或调用函数进行修改。
常见操作示例:
-
转为灰度图:
Mat gray; cvtColor(img, gray, COLOR_BGR2GRAY); - 调整亮度:使用convertTo()或逐像素操作。
-
绘制图形:如画线:
line(img, Point(0,0), Point(100,100), Scalar(0,0,255), 2);
遍历像素修改亮度的例子:
for (int i = 0; i < img.rows; i++) {
for (int j = 0; j < img.cols; j++) {
img.at(i,j)[0] += 50; // 蓝色通道加50
img.at(i,j)[1] += 50; // 绿色通道
img.at(i,j)[2] += 50; // 红色通道
}
}
4. 保存图像
使用imwrite()将Mat对象保存为文件。
示例:
bool success = imwrite("output.png", img);
if (success) {
std::cout << "图像已成功保存!" << std::endl;
} else {
std::cout << "保存失败!" << std::endl;
}
支持自动根据扩展名选择格式(如.png、.jpg)。
基本上就这些。掌握读取、修改和保存三步,就能在C++中灵活处理图像。OpenCV还支持滤波、边缘检测、人脸识别等高级功能,适合深入学习。










