基于 OpenCV 的图像与视频处理

基于 OpenCV 的图像处理

一、实验背景

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

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

二、实验目的

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

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

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

三、实验内容

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

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

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

  • 使用 namedWindowimshow 分别显示原始图像和灰度图像。
相关推荐
YJlio18 小时前
ZoomIt 学习笔记(11.11):休息计时器与演讲节奏控制——倒计时、番茄钟与现场掌控力
数据库·笔记·学习
山土成旧客18 小时前
【Python学习打卡-Day23】从重复到重用:用Pipeline和ColumnTransformer重构你的机器学习工作流
python·学习·重构
TL滕18 小时前
从0开始学算法——第十九天(并查集)
笔记·学习·算法
中年程序员一枚18 小时前
cv2.sqrBoxFilter 是 OpenCV 中用于计算像素邻域平方和的盒式滤波函数
人工智能·opencv·计算机视觉
Cuby!18 小时前
IEEE Wireless Communications 2025年论文整理2(中英文摘要)
论文阅读·学习·信息与通信
棒棒的皮皮18 小时前
【OpenCV】Python图像处理之平滑处理
图像处理·python·opencv·计算机视觉
白帽子黑客杰哥18 小时前
零基础学习网络安全,如何安排每天的学习计划?需要重点攻克哪些核心技能点?
学习·安全·web安全·渗透测试·人才培养·网络安全培训
YJlio18 小时前
ZoomIt 学习笔记(11.10):键入模式——在桌面上直接打字讲解的最佳实践
服务器·笔记·学习
小智RE0-走在路上19 小时前
Python学习笔记(5)--函数
笔记·python·学习
棒棒的皮皮19 小时前
【OpenCV】Python图像处理之重映射
图像处理·python·opencv·计算机视觉