OpenCV 图像操作基础
1. 图像的输入与输出
1.1 从文件加载图像
使用 imread 函数从文件加载图像。在 C++ 中,返回类型为 cv::Mat。
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
// 默认创建 3 通道 BGR 图像
Mat img = imread("image.jpg");
// 如果读取 jpg 文件,默认创建一个 3 通道图像
// 如果需要灰度图像,请指定 IMREAD_GRAYSCALE 标志
Mat grayImg = imread("image.jpg", IMREAD_GRAYSCALE);
if (img.empty()) {
std::cerr << "无法加载图像" << std::endl;
return -1;
}
return 0;
}
注意: 文件的格式由其内容(前几个字节)决定,但保存时通常由扩展名决定。
1.2 将图像保存到文件
使用 imwrite 函数将图像写入文件。
// 将图像保存到文件
imwrite("output.png", img);
注意: 文件的格式由其扩展名决定(如 .jpg, .png, .bmp)。
1.3 从内存读取和写入
OpenCV 提供了从内存缓冲区而不是文件读取和写入图像的功能,常用于网络传输或处理流数据。
2. 图像的基本操作
2.1 访问像素强度值
为了获得像素强度值,您必须知道图像的类型和通道数。以下是单通道灰度图像(类型 8UC1)和像素坐标 x 和 y 的示例:
// 获取像素值
unsigned char intensity = img.at<unsigned >(y, x);


