为什么选这门课:做一套可跨平台的视频编辑器,而不是看 demo

市面上讲 OpenCV 的课很多,但大多数停留在“调参演示”阶段,讲完几个函数就结束了,离实际项目很远。这门课不一样,它直接带你做一个基于 Qt 的视频编辑器。它没有把 OpenCV 当成死记硬背的 API 手册来教,而是把它当成工具库,去解决视频采集、编码解码、图像处理这些真实工程问题。对于想从“看书”转向“写代码”的开发者,这门课最大的价值在于它教你如何把 C++、Qt 和视频处理库组合起来,解决跨平台编译、新旧接口切换以及深度学习库难以直接用于底层视频处理的痛点。它不兜售“速成”的幻想,而是给你一套能落地到实际项目中的技术栈。

学完能独立做什么:基于 C++ 的视频处理工具开发能力

如果你对 Python 的脚本处理很熟,但想往 C++ 方向走,或者在公司里需要做高性能的视频应用,这门课能帮你补上关键一块。学完之后,你不再只是会调用 `cv::imread`,而是能独立开发出具备以下能力的产品:一是能够搭建跨平台(Windows/ Linux)的编译环境,熟练处理 Qt5 与 OpenCV3.2 的混合开发;二是能深入理解视频编解码原理,利用 FFmpeg 和 OpenCV 实现视频的读写、格式转换和流处理;三是具备一定的底层代码分析能力,能够看懂 OpenCV 的源码实现,甚至针对特定需求自己封装底层函数。最终,你将拥有一套属于自己的、包含完整源码的视频编辑器项目,这本身就是一块非常有分量的实战履历。

资料怎么用:按实战项目顺序切入,拒绝目录式阅读

这份资料包不是为了让你先学“文件结构”再学“代码逻辑”,而是为了让你直接进入项目开发。建议你不要从目录最前面开始看,而是直接打开项目代码,对照着视频教程,从最核心的视频采集模块开始看起。遇到不懂的函数,先去视频里找对应的讲解,如果视频没讲深,再去查阅 OpenCV 官方文档,而不是死记硬背。对于初学者,建议先看环境搭建部分,确保在 Windows 下能用 VS2013、在 Linux 下能用 Qt Creator 成功编译出第一个“Hello World”级别的工程,这是跨平台开发的基础。练习时,不要只跑通代码,建议尝试修改代码中的参数,比如改变视频的帧率、分辨率,或者尝试自己实现视频教程中提到的一些底层函数,以此来加深对 C++ 和图像处理逻辑的理解。

课程目录

下.png (24.

58 KB,  ) 2024-7-9 12:

51 上传 课程介绍 课程基于最新版3.2讲解,全部使用最新的c++接口,旧的接口会逐步被opencv抛弃,所以我们学习还是尽量学习新的接口,QT使用最新的5.8版本,课程中会跨平台演示,所有代码都可以在windows和linux中编译,在windows中使用vs2013,linux中使用qtcreator,课程会提供全部源码和最新opencv和QT版本的下载。 课程中讲解的opencv知识点,不追求全(要全不如看手册),但求完整,讲解我们实战项目用到的函数方法,但凡是讲到的都要有一定的深度,分析其函数的实现、源码,有些我们自己也作出实现,课程的目标不是只能作出demo,而是要你能将opencv投入到实际项目中去。 现在深度学习和人工智能热门,大量的技术涌现,单opencv作为老牌的图像视频库,一直是在大量的生产环境(包括嵌入式设备)中应用,不管你用什么深度学习的平台,opencv都是作为图像图像领域及佳的选择,可以很方便的与第三方深度学习框架结合 ,我公司项目中也一直在应用。 课程中会讲解到基于opencv视频和摄像机录制、播放和播放进度控制,多视频图像合并、多视频图像融合、剪切、视频亮度、对比度、尺寸(近邻插值(手动实现),双线性插值,高斯金字塔,拉普拉斯金字塔)、颜色格式(灰度图,二值化(阈值)),旋转镜像,视频裁剪(ROI),视频水印(ROI+weight),导出处理后的视频(包含音频,使用ffmpeg工具对音频进行抽取、剪切和最终于opencv处理的视频合并)。 课程中会讲解最热门的跨平台界面库QT5.8,用过或者学习过QT的人都知道这是c++程序员必须掌握的技能,包括现在热门的Python也是在大量的应用QT来做界面,QT的设计及其精美,他的信号槽机制很好的将界面与业务隔离开来,并且界面可以使用类似CSS的设置做得很炫(参考下图),不会像MFC一样自动生成的代码和你手写的代码融合在一起。当然我们也会仔细分析一下他的信号槽机制,你不理解他的机制会有很多坑等着你。 课程中的实战视频编辑器会详细相机项目的设计架构图,提供全部源码,对实现进行迭代式讲解,就像你自己在做一个项目一样,最终完成所有的功能。 课程目录: ├──1-1、课程介绍_ev.mp4
 33.36M ├──1-2、opencv源码在windows下载编译安装_ev.mp4
 15.04M ├──1-3、Ubuntu下编译opencv源码_ev.mp4
 20.21M ├──1-4、windows 上创建opencv示例项目编译并执行._ev_ev.mp4
 21.90M ├──1-5、ubuntu上创建opencv示例项目makefile编译并执行_ev_ev.mp4
 14.94M ├──1-6、QT开发环境下载、项目创建、代码结构介绍_ev_ev.mp4
 25.71M ├──1-7、课程代码下载说明_ev_ev.mp4
 4.55M ├──2-1、OpenCV Mat类型分析源码介绍、空间创建和释放_ev_ev.mp4
 19.66M ├──2-2、遍历和修改连续的OpenCV Mat图像空间_ev_ev.mp4
 20.07M ├──2-3、使用opencv接口实现运行记时函数用来分析执行效率_ev_ev.mp4
 17.35M ├──2-4、遍历不连续的OpenCV Mat空间_ev_ev.mp4
 12.10M ├──2-5、通过OpenCV ptr模板函数遍历Mat并测试其性能_ev_ev.mp4
 16.75M ├──2-6、通过OpenCV at函数遍历Mat并捕获异常_ev_ev.mp4
 17.02M ├──2-7、通过迭代器遍历Mat并总结遍历方法_ev_ev.mp4
 10.70M ├──2-8、QT自定义opengl的Widget绘制Mat_ev_ev.mp4
 41.26M ├──3-10、实现两幅图像混合blending_ev_ev.mp4
 15.44M ├──3-11、图像旋转和镜像_ev_ev.mp4
 12.44M ├──3-12、通过ROI实现图像并排合并_ev_ev.mp4
 29.70M ├──3-1、通过ROI感兴趣区域来裁剪图像_ev_ev.mp4
 14.16M ├──3-2、RGB、YUV、GRAY像素格式介绍opencv像素格式转换cvtColor接口讲解_ev_ev.mp4
 10.03M ├──3-3、手动实现转换灰度图并与opencv提供的函数做性能对比_ev_ev.mp4
 34.75M ├──3-4、通过OpenCV阈值函数threshold实现图像的二值化_ev_ev.mp4
 18.62M ├──3-5、通过对Mat遍历修改图像亮度和对比度与convertTo性能对比_ev_ev.mp4
 31.27M ├──3-6、图像尺寸调整算法介绍并手动实现近邻算法_ev_ev.mp4
 31.23M ├──3-7、调用opencv的resize使用近邻算法并与自定义算法比较_ev_ev.mp4
 13.43M ├──3-8、图像尺寸调整双线程插值算法讲解和性能测试_ev_ev.mp4
 24.14M ├──3-9、高斯金字塔和拉普拉斯金字塔调整图像尺寸详解_ev_ev.mp4
 22.03M ├──4-10、以h264格式录制并预览摄像机视频代码演示_ev_ev.mp4
 24.11M ├──4-1、OpenCV VideoCapture打开摄像头接口讲解和源码分析_ev_ev.mp4
 12.09M ├──4-2、OpenCV VideoCapture打开视频流接口讲解和源码分析_ev_ev.mp4
 15.35M ├──4-3、VideoCapture release关闭和空间释放源码分析_ev_ev.mp4
 8.20M ├──4-4、OpenCV read读取一帧视频接口讲解和源码分析_ev_ev.mp4
 18.58M ├──4-5、使用OpenCV VideoCapture播放视频示例_ev_ev.mp4
 28.35M ├──4-6、获取视频和相机的属性并分析获取视频属性的源码_ev_ev.mp4
 29.55M ├──4-7、使用opencv实现视频播放位置跳转_ev_ev.mp4
 21.37M ├──4-8、通过VideoWrite的open创建视频文件并分析源码_ev_ev.mp4
 33.38M ├──4-9、通过VideoWrite的write写入视频文件并分析源码_ev_ev.mp4
 22.97M ├──5-1、使用ffmpeg工具实现音频抽取、剪切和与视频合并_ev_ev.mp4
 25.56M ├──6-10、视频播放器进度条(QSlider)显示播放进度_ev_ev.mp4
 40.74M ├──6-11、通过QSlider滑动条拖动完成视频播放位置跳转_ev_ev.mp4
 38.66M ├──6-12、调整视频亮度对比度1完成XImagePro类_ev_ev.mp4
 30.51M ├──6-13、调整视频亮度对比度2完成XFilter类_ev_ev.mp4
 36.50M ├──6-14、调整视频亮度对比度3完成界视频结果显示_ev_ev.mp4
 49.19M ├──6-15、视频的导出1接口调用搭建和界面实现完成_ev_ev.mp4
 41.65M ├──6-16、视频导出2功能实现_ev_ev.mp4
 55.39M ├──6-17、完成播放暂停并使用qss设置播放暂停按钮样式效果_ev_ev.mp4
 44.36M ├──6-18、视频图像旋转并导出_ev_ev.mp4
 39.02M ├──6-19、视频上下左右镜像_ev_ev.mp4
 18.01M ├──6-1、编辑器的需求分析和最终实现的功能介绍_ev_ev.mp4
 15.67M ├──6-20、视频图像旋转并导出_ev_ev.mp4
 39.66M ├──6-21、通过图像金字塔调整视频尺寸_ev_ev.mp4
 43.23M ├──6-22、通过ROI裁剪视频画面_ev_ev.mp4
 46.06M ├──6-23、转换为灰度图视频并导出_ev_ev.mp4
 47.47M ├──6-24、视频添加水印_ev_ev.mp4
 63.65M ├──6-25、视频融合1-完成了打开第二个视频源_ev_ev.mp4
 39.22M ├──6-26、视频融合2-完成了融合和导出._ev_ev.mp4
 36.66M ├──6-27、两路视频的横向合并为一个视频_ev_ev.mp4
 49.35M ├──6-28 音频类的抽取接口开发和测试_ev.mp4
 23.02M ├──6-29、完成视频中音频的的合并导出_ev_ev.mp4
 43.33M ├──6-2、项目类图介绍和类功能讲解_ev_ev.mp4
 9.30M ├──6-30、完成了视频的开始结束位置剪辑音频未处理_ev_ev.mp4
 50.27M ├──6-31、完成了视频剪辑包含音频剪辑_ev_ev.mp4
 37.84M ├──6-3、基于QT系统界面设计详解_ev_ev.mp4
 10.41M ├──6-4、实战项目环境搭建、项目创建和配置_ev_ev.mp4
 18.41M ├──6-5、完成视频编辑器播放界面并完成绘制视频widget重载_ev_ev.mp4
 32.12M ├──6-6、详解通过qss完成界面风格设置,设置按钮圆角和渐变颜色_ev_ev.mp4
 11.71M ├──6-7、通过qt界面打开外部视频并完成打开失败的界面提示_ev_ev.mp4
 52.71M ├──6-8、使用opencv读取并解码视频通过信号槽机制发出绘制信号_ev_ev.mp4
 32.24M ├──6-9、解码并使用播放视频,分析并解决QImage图像数据不连续问题_ev_ev.mp4
 65.49M └──【夏曹俊】c 实战学习OpenCV3.2 QT5 ffmpeg实战开发视频编辑器视频教程.zip
 56.83M