基于 OpenCV 的图像处理
一、实验背景
OpenCV 是一个开源的计算机视觉库,广泛应用于图像处理、视频分析、目标检测等领域。通过学习 OpenCV,可以快速实现图像和视频的处理功能,为复杂的应用开发
奠定基础。本实验旨在通过实际代码示例,掌握 OpenCV 的基本功能和使用方法。
二、实验目的
-
学习如何使用 OpenCV 进行图像处理。
-
掌握 OpenCV 的视频读取和播放功能。
-
实现视频录制功能,并理解视频流的处理逻辑。
三、实验内容
-
创建一个代码文件夹 code ,并在其中创建 test.cpp 文件。
-
将以下代码复制到 test.cpp 文件中:
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;int main(int argc, char** argv) {// 加载图像Mat image = imread("lena.jpg", IMREAD_COLOR); // 默认加载彩色图像// 检查图像是否成功加载if (image.empty()) {cout << "无法加载图像!请检查文件路径。" << endl;return -1;}// 创建一个用于存储灰度图像的 Mat 对象Mat gray_image;// 使用 OpenCV 的 cvtColor 函数将彩色图像转换为灰度图像cvtColor(image, gray_image, COLOR_BGR2GRAY);// 保存灰度图像imwrite("gray_image.png", gray_image);// 显示原始图像和灰度图像namedWindow("Original Image", WINDOW_AUTOSIZE);imshow("Original Image", image);namedWindow("Gray Image", WINDOW_AUTOSIZE);imshow("Gray Image", gray_image);// 等待用户按键后关闭窗口waitKey(0);return 0;
}
3.编译代码
g++ test1.cpp -o test1 `pkg-config --cflags --libs opencv`
4.准备一张名为lena.jpg
的图片,与代码文件放在同一目录下。
5.运行程序
./test
四、实验结果
- 程序读取
lena.jpg
图片,对图片进行径向渐变处理后,生成新的图片gray_image.png
。
- 定义一个
Mat
对象gray_image
,用于存储转换后的灰度图像。- 使用
cvtColor
函数将彩色图像转换为灰度图像。- 参数
COLOR_BGR2GRAY
表示从 BGR 颜色空间转换到灰度颜色空间。- 使用
namedWindow
和imshow
分别显示原始图像和灰度图像。
COLOR_BGR2GRAY
表示从 BGR 颜色空间转换到灰度颜色空间。
- 使用
namedWindow
和imshow
分别显示原始图像和灰度图像。