Windows 下实验视频降噪算法 MeshFlow 详细教程

MeshFlow视频降噪算法

  1. Meshflow 视频降噪算法来自于 2017 年电子科技大学一篇高质量论文。

  2. 该论文提出了一个新的运动模型MeshFlow,它是一个空间平滑的稀疏运动场 (spatially smooth sparse motion field),其运动矢量 (motion vectors) 仅在网格顶点 (mesh vertexes) 处定义,它可被视为一个下采样的dense flow。具体来说,我们在视频帧上放置一个2D网格,然后跟踪连续帧之间的图像角点 (image corners),从而在每个特征位置生成运动矢量,然后将这些运动矢量转移到其对应的附近网格顶点,以使每个顶点从其周围特征中累积几个运动。MeshFlow是一个稀疏的运动矢量2D数组,其包含所有网格顶点处的运动。

  3. 该模型具有轻量级、非参数化、空间变形体等内在特征,能够有效地实现多帧图像的去噪。具体来说,meshflow是在相邻帧之间进行估计的,这些帧用于在一个滑动时间窗口内对齐帧。一个去噪的帧是由几帧在空间和时间的方式与离群拒绝融合产生的。各种具有挑战性的例子证明了该方法的有效性和实用性。

  4. 关于算法原理详细介绍可参考:视频降噪算法 Meshflow 介绍

  • 项目地址:http://www.liushuaicheng.org/ICIP/2017/index.html
  • 论文下载地址:https://download.csdn.net/download/yanceyxin/89273166
  • git 地址:https://github.com/AlbusPeter/MeshFlow_Video_Denoising

Windows环境实验过程

  1. 源码下载:git clone https://github.com/AlbusPeter/MeshFlow_Video_Denoising.git
  2. README.md查看项说明
MeshFlow_Video_Denoising
Source Code for MeshFlow Video DenoisingOpenCV Version:2.4.11This source code may not have the same processing speed as the paper illustrated. Because I replace the original matching algorithm into a simple one. This may also influence the quality of the denoising result a little. For more project detail, including the academic paper, project abstract and test data, please visiting the project page at http://www.liushuaicheng.org/ICIP/2017/index.html.Usage
Create a new folder build
Inside the folder, using the code below for cmake to build the project files:
cmake DCMAKE_BUILD_TYPE=Release ..
Move the test video into this new folder and run this project.For Visual Studio users, when run the project file, you should change the single startup project option in the solution property into the correct one (not the ALLBUILD.EXE).For Windows users, using Cmakelists.txt as the cmakelist. (Remember to change the path for the OpenCV build folder.)
For Linux users, using Cmakelists_Linux.txt as the cmakelist.For further questions, feel free to contact me at albuspeter.rzh@gmail.com.
Thanks Guo Heng who helped me on the Cmake lists.Citation
If you find this useful in your research, please cite our paper "Meshflow Video Denoising" (PDF):@inproceedings{ren2017meshflow,title={Meshflow video denoising},author={Ren, Zhihang and Li, Jiajia and Liu, Shuaicheng and Zeng, Bing},booktitle={2017 IEEE International Conference on Image Processing (ICIP)},pages={2966--2970},year={2017},organization={IEEE}
}
  1. 查看本机openCV版本和安装路径:C:\opencv\build
    在这里插入图片描述
  2. 查看项目中Cmakelists.txt文件,修改OpenCV依赖路径;
    在这里插入图片描述
  3. 由于编译依赖cmake,因此查看本设备cmake安装情况,PowerShell输入命令:cmake,有输出表示本机已经配置了cmake环境,否则需要实现配置cmake环境;
    在这里插入图片描述
  4. 在项目中新建build目录,cd到该build目录,输入编译命令:cmake DCMAKE_BUILD_TYPE=Release ..一段时间后完成项目构建;【本设备已经事先安装好了VS2022】
    在这里插入图片描述
  5. 在build目录发现生成了VS工程文件;
    在这里插入图片描述
  6. 利用VS2022打开项目,项目结构如下;讲VideoDenoiser_EXE配置成启动项目,并设置成Release编译环境;
    在这里插入图片描述
  7. 直接编译会一堆报错,因为项目依赖的OpenCV版本是2.4.11版本,而本设备的OpenCV版本是4.10.0版本,许多原有的变量都废弃或者更新变化了,因此需要在编译过程中修改相应的报错;主要修改如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  8. 编译成功,在项目build\Release目录中生成了对应的exe可执行文件;
    在这里插入图片描述
    在这里插入图片描述
  9. 在mian函数中修改测试视频路径;

在这里插入图片描述
12. 运行,一段时间后,回车↩︎,视频降噪处理结束;

在这里插入图片描述
13. 查看降噪前后对比图,整体效果还不错。
在这里插入图片描述
在这里插入图片描述
14. 实验项目中其他一些噪声视频;
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
15. 整体降噪效果还不错,比 hqdn3d 强不少,但耗时也多不少;看源码未做汇编加速,后续深入研究源码分析原理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/462574.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ --- 多线程的使用

目录 一.什么是线程? 线程的特点: 线程的组成: 二.什么是进程? 进程的特点: 进程的组成: 三.线程与进程的关系: 四.C的Thread方法的使用: 1.创建线程: 2.join(…

区块链底层协议比较#DAPP开发

区块链技术在近年来迅速发展,作为一种去中心化的分布式账本技术,区块链在各个领域展现出了巨大的潜力。随着需求的不断增加,各种区块链层级(L0、L1、L2)应运而生。本文将对这三种层级进行深入的介绍和对比。 一、区块链…

【资调实习报告】华中农业大学资源调查与评价实习报告

一、前言 1.1实验目的与要求 1)理论和实践相结合,培养野外独立工作能力:通过将课堂上所学的理论知识与在贺胜桥研究区域的实地调查相结合,帮助学生培养在野外独立工作的能力,包括计划制定、采集数据、观察现象、分析…

《华为工作法》读书摘记

无论做什么事情,首先要明确的就是做事的目标。目标是引导行动的关键,也是证明行动所具备的价值的前提,所以目标管理成了企业与个人管理的重要组成部分。 很多时候,勤奋、努力并不意味着就一定能把工作做好,也并不意味…

异步4位计数器(Quartus与Modelsim联合仿真)

异步计数器(也称为ripple-through counter)的特点是每一位触发器的输出作为下一位触发器的时钟输入,因此计数速度会因为级联触发器的传播延迟而受到限制。这种计数器的最大工作频率通常低于同步计数器。 一、电路符号 输入信号:时…

TIA 中用 GSD 方式组态 ET200SP 安全模块时如何用 S7-FCT 分配安全目标地址

1 概述 用 GSD 方式组态的 ET200SP 的分布式从站上,现在可以使用安全模块(早期 是无法支持),这种用法对 ET200SP 接口模块的版本和编程软件的版本都有要求。 ET200SP 故障安全模块可通过 GSD 文件用于以下接口模块: …

git 入门作业

任务1: 破冰活动:自我介绍任务2: 实践项目:构建个人项目 git使用流程: 1.将本项目直接fork到自己的账号下,这样就可以直接在自己的账号下进行修改和提交。 这里插一条我遇到的问题,在fork的时候没有将那个only camp4的…

C++右值引用

一、右值引用的定义 1、什么是左值和左值引用? 左值指的是可以出现在等号左边,可以被赋值(非const),可以取地址的值。 左值引用就是左值的引用,给左值取别名。(int& lr a) 2、什么是右值和右值引用? 右值指的是不…

【深度学习】时间序列预测、分类、异常检测、概率预测项目实战案例

说明:本专栏内容来自于个人学习笔记、以及相关项目的实践与总结。写作目的是为了让读者体会深度学习的独特魅力与无限潜力,以及在各行各业之中的应用与实践。因作者时间精力有限,难免有疏漏之处,期待与读者共同进步。 前言 在当今…

【重生之我要苦学C语言】深入理解指针2

深入理解指针2 const修饰指针 当const修饰变量时&#xff0c;是无法更该该变量的值的 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() {const int a 10;//const常属性&#xff0c;不能改变的属性a 1;printf("%d\n", a);return 0; }报错&…

WPF+MVVM案例实战(十八)- 自定义字体图标按钮的封装与实现(ABD类)

文章目录 1、案例效果1、按钮分类2、ABD类按钮实现描述1.文件创建与代码实现2、样式引用与控件封装3、按钮案例演示1、页面实现与文件创建2、运行效果如下3、总结4、源代码获取1、案例效果 1、按钮分类 在WPF开发中,最常见的就是按钮的使用,这里我们总结以下大概的按钮种类,…

ARM base instruction -- mneg

Multiply-Negate multiplies two register values, negates the product, and writes the result to the destination register. 乘法-求反&#xff0c;将两个寄存器值相乘&#xff0c;对乘积求反&#xff0c;并将结果写入目标寄存器。 32-bit variant Applies when sf 0…

【鸿蒙新闻】10月29日警用鸿蒙开发者大会在北京胜利召开,开启智慧应用新时代!

10月29日&#xff0c;在公安部科技信息化局、公安部装备财务局指导下&#xff0c;由公安部第一研究所主办&#xff0c;鼎桥通信技术有限公司、OpenHarmony生态委员会及公共安全专委会协办的警用鸿蒙开发者大会在北京胜利召开。会议以“拥抱警鸿创新生态 开启智慧应用新时代”为…

架构师备考-软件工程相关补充

软件开发生命周期 按照传统的软件生命周期方法学&#xff0c;可以把软件生命周期划分为软件定义、软件开发、软件运行与维护三个阶段。 软件定义&#xff1a;软件定义包括可行性研究和详细需求分析过程&#xff0c;任务是确定软件开发工程必须完成的目标。具体可分为问题定义、…

OpenGL入门003——使用Factory设计模式简化渲染流程

前面两节已经学会了如何使用opengl创建窗口并绘制三角形&#xff0c;我们可以看出有些步骤是固定的&#xff0c;而且都写在main.cpp&#xff0c;这一节我们将了解如何使用Factroy设计模型。将模型渲染逻辑封装在一个单独的类中&#xff0c;简化开发流程&#xff0c;且提高代码复…

音频中sample rate是什么意思?

‌sample rate‌在数字信号处理中&#xff0c;指的是‌采样频率‌&#xff0c;即每秒钟从连续信号中抽取的样本数量。采样频率越高&#xff0c;信号的还原度越高&#xff0c;但同时也会增加计算负担和存储需求‌。 实际应用场景 在音频处理中&#xff0c;设置合适的采样率可以…

分享一下面试中常用的10 个面试点全解析,面试成功的秘诀

大家好&#xff0c;我是一颗甜苞谷&#xff0c;今天分享一下面试中常用的10 个面试点全解析,助你面试中脱颖而出 问题1&#xff1a;微服务架构和传统架构有什么区别&#xff0c;现在市场上的微服务架构有哪些? 答&#xff1a;传统的单体架构可维护性、可读性低&#xff0c;维…

构建品牌影响力:知识库工具在市场营销中的创新应用

在当今这个信息爆炸的时代&#xff0c;品牌影响力成为了企业市场竞争力的核心要素。为了有效提升品牌影响力&#xff0c;企业不仅需要精准的市场定位和优质的产品服务&#xff0c;还需要借助高效、智能的知识库工具来优化其市场营销策略。本文将探讨知识库工具在市场营销中的创…

Python Matplotlib 子图绘制

Python 中的子图绘制 在数据可视化中&#xff0c;展示多个图表在同一个画布上是常见的需求&#xff0c;这样可以更直观地比较不同数据集之间的关系。Python 中的 Matplotlib 库为我们提供了强大的功能来实现这一点。在本篇文章中&#xff0c;我们将详细介绍如何使用 Matplotli…