基于 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
分别显示原始图像和灰度图像。