基于 OpenCV 的图像与视频处理

发布于:2025-04-21 ⋅ 阅读:(15) ⋅ 点赞:(0)

基于 OpenCV 的图像处理

一、实验背景

OpenCV 是一个开源的计算机视觉库,广泛应用于图像处理、视频分析、目标检测等领域。通过学习 OpenCV,可以快速实现图像和视频的处理功能,为复杂的应用开发

奠定基础。本实验旨在通过实际代码示例,掌握 OpenCV 的基本功能和使用方法。

二、实验目的

  1. 学习如何使用 OpenCV 进行图像处理。

  2. 掌握 OpenCV 的视频读取和播放功能。

  3. 实现视频录制功能,并理解视频流的处理逻辑。

三、实验内容

  1. 创建一个代码文件夹 code ,并在其中创建 test.cpp 文件。

    image-20250417000404966

  2. 将以下代码复制到 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

image-20250420173251379

image-20250420173303059

  • 定义一个 Mat 对象 gray_image,用于存储转换后的灰度图像。
  • 使用 cvtColor 函数将彩色图像转换为灰度图像。
  • 参数 COLOR_BGR2GRAY 表示从 BGR 颜色空间转换到灰度颜色空间。
  • 使用 namedWindowimshow 分别显示原始图像和灰度图像。

COLOR_BGR2GRAY 表示从 BGR 颜色空间转换到灰度颜色空间。

  • 使用 namedWindowimshow 分别显示原始图像和灰度图像。

网站公告

今日签到

点亮在社区的每一天
去签到