当前位置: 首页 > news >正文

基于 OpenCV 的图像与视频处理

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

相关文章:

  • Kubernetes(k8s)学习笔记(二)--k8s 集群安装
  • React+TS编写轮播图
  • 计算机视觉cv入门之Haarcascade的基本使用方法(人脸识别为例)
  • 【后端】【Django】Django 模型中的 `clean()` 方法详解:数据校验的最后防线
  • 【人工智能】推荐开源企业级OCR大模型InternVL3
  • css3新特性第四章(渐变)
  • 【条形码识别改名工具】如何批量识别图片条形码,并以条码内容批量重命名,基于WPF和Zxing的开发总结
  • 【iOS】alloc init new底层原理
  • 嵌入式---零点漂移(Zero Drift)
  • 网络设备基础运维全攻略:华为/思科核心操作与巡检指南
  • IDEA多环节实现优雅配置
  • IDEA在Git提交时添加.ignore忽略文件,解决为什么Git中有时候使用.gitignore也无法忽略一些文件
  • 国际数据加密算法(IDEA)详解
  • 按字符串长度升序,长度相同则按字典序
  • 【Linux系统】Linux基础指令(详解Linux命令行常用指令,每一个指令都有示例演示)
  • 30天开发操作系统 第26天 -- 为窗口移动提速
  • 实现AWS Data Pipeline安全地请求企业内部API返回数据
  • 2026《数据结构》考研复习笔记四(第一章)
  • 蓝桥杯 二进制问题 刷题笔记
  • Linux操作系统简介:从开源内核到技术生态
  • “你是做什么的?”——人们能否对工作说不?
  • 闲置书换蔬菜,浙江嘉善启动全民阅读系列活动
  • 人民日报读者点题·共同关注:今天,我们需要什么样的企业家?
  • 老人在健身中心晕倒获AED急救,上海检察机关为何被感谢?
  • 季度市场叙事|时间已不在美国那边
  • 为震慑违法违规行为,市监总局发布一批直播电商领域典型案例