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

news2024/11/27 16:35:39

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 Denoising

OpenCV Version:2.4.11


This 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.coloradmin.cn/o/2227853.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

随机采样方法之逆变换采样

抽样或采样是指从目标总体中抽取出部分个体也就是样本,通过对样本的属性或特征进行分析,以此对总体进行评估。采样作为一种重要的数据分析方法,在深度学习、渲染等诸多方面具有广泛的应用。本文将回顾一种基本的采样方法即逆变换采样。 一、…

国自然地学部立项名单(2021-2023年)和标书范本(2007-2017年33份)-最新出炉 附下载链接

国自然地学部立项名单(2021-2023年)和标书范本(2007-2017年33份) 下载链接-点它👉👉👉: 国自然地学部立项名单(2021-2023年)和标书范本(2007-201…

C++之多态的深度剖析

目录 前言 1.多态的概念 2.多态的定义及实现 2.1多态的构成条件 2.1.1重要条件 2.1.2 虚函数 2.1.3 虚函数的重写/覆盖 2.1.4 选择题 2.1.5 虚函数其他知识 协变(了解) 析构函数的重写 override 和 final关键字 3. 重载,重写&…

信息安全数学基础(34)正规子群和商群

正规子群详述 定义: 设G是一个群,H是G的子群。若H的左陪集与右陪集总是相等(即对任何的a∈G,都有aHHa),则称H是G的正规子群或不变子群,记为H⊴G。 性质: 平凡性:任何群G…

日期选择简化版今日、本周、本月、本季度、本年

function 未来之窗_时间_现在() {let date new Date(),year date.getFullYear(), //获取完整的年份(4位)month date.getMonth() 1, //获取当前月份(0-11,0代表1月)strDate date.getDate() // 获取当前日(1-31),小时 date.getHours(),分钟 date.getMinutes();if (month &…

C语言笔记(指针题目)例题+图解

本文分为两部分 ,第一部分为数组、字符串、字符指针在sizeof和strlen中的辨析,第二部分是一些笔试题目。若有错误,请批评指正。 目录 1.第一部分 1.1.数组名的使用 1.1.1一维整型数组在sizeof中的使用 1.1.2一维字符数组在sizeof中的使用…

Android Input的流程和原理

Android Input事件机制 Android系统是由事件驱动的,而Input是最常见的事件之一,用户的点击、滑动、长按等操作,都属于Input事件驱动,其中的核心就是InputReader和InputDispatcher。InputReader和InputDispatcher是跑在system_serv…

Manus在虚拟现实仿真模拟中的应用案例分享

Manus虚拟现实手套作为一种高精度的人机交互设备,在仿真模拟领域展现出了巨大的应用潜力。通过提供实时、准确的手指动作捕捉数据,Manus手套为多个行业带来了前所未有的仿真体验,推动了技术发展和应用创新。 技术特点 1. 高精度手指跟踪 Manu…

windows 驱动实例分析系列: NDIS 6.0的Filter 驱动改造(四)

驱动的测试代码解读 1. 打开设备对象: // 1. 打开底层设备对象HANDLE hDevice CreateFile(L"\\\\.\\NDISFilter", // 设备名称GENERIC_READ | GENERIC_WRITE, // 访问权限0, // 不共享NULL, // 默认安全属性OPEN_EXISTING, // 打开现有设备0, // 无特殊标志NULL /…

加强版 第四节联通组件分析与演示

得到二值图像的目的是为了后面的分析 基本概念解释 -图像联通组件 -四邻域与八邻域联通 ccl联通组件标记 通过四邻域和八邻域来对图像进行边缘寻找与噪声处理的功能 常见算法来寻找联通组件 -基于像素扫描方法 -基于块扫描的方法 -两步法扫描 API: OpenCV中支持连通组件…

闯关leetcode——232. Implement Queue using Stacks

大纲 题目地址内容 解题代码地址 题目 地址 https://leetcode.com/problems/implement-queue-using-stacks/description/ 内容 Implement a first in first out (FIFO) queue using only two stacks. The implemented queue should support all the functions of a normal …

【Unity基础】初识UI Toolkit - 编辑器UI

(本文所需图片在文章上面的资源中,点击“立即下载”。) 本文介绍了如何通过UI工具包(UI Toolkit)来创建一个编辑器UI。 一、创建项目 1. 打开Unity创建一个空项目(任意模板),这里我…

什么?Flutter 又要凉了? Flock 是什么东西?

今天突然看到这个消息,突然又有一种熟悉的味道,看来这个月 Flutter “又要凉一次了”: 起因 flutter foundation 决定 fork Flutter 并推出 Flock 分支用于自建维护,理由是: foundation 推测 Flutter 团队的劳动力短缺…

windows文件实时同步

在现今这个高效运转的工作时代,数据同步与备份的重要性愈发凸显。特别是对于Windows用户,实现文件在不同设备间的实时流转,不仅能够显著提升工作效率,更是数据安全的一道重要防线。接下来,我们将深入剖析Windows文件实…

全桥PFC电路及MATLAB仿真

一、PFC电路原理概述 PFC全称“Power Factor Correction”(功率因数校正),PFC电路即能对功率因数进行校正,或者说是能提高功率因数的电路。是开关电源中很常见的电路。功率因数是用来描述电力系统中有功功率(实际使用…

rom定制系列------红米note8_miui14安卓13定制修改固件 带面具root权限 刷写以及界面预览

💝💝💝红米note8机型代码:ginkgo。高通芯片。此固件官方最终版为稳定版12.5.5安卓11的版本。目前很多工作室需要高安卓版本的固件来适应他们的软件。并且需要root权限。根据客户要求。修改固件为完全root。并且修改为可批量刷写的…

【传知代码】图像处理解决种子计数方法

文章目录 一、背景及意义介绍研究背景农业考种需求传统计数方法的局限性人工计数仪器设备计数 研究意义提高育种效率提高计数准确性广泛的适用性数据存档与分析便利 二、概述三、材料与数据准备以及方法介绍整体流程图像采集图像预处理形态学操作腐蚀运算开运算 图像二值化种子…

【鸿蒙HarmonyOS实战:通过华为应用市场上架测试版App实现HBuilder X打包的UniApp项目的app转hap教程(邀请码)方式教程详解】

鸿蒙HarmonyOS实战:通过华为应用市场上架测试版App实现HBuilder X打包的UniApp项目的app转hap教程(邀请码)方式详解 在使用uniapp打包的鸿蒙项目的过程中,由于生成的是app文件,而hdc传给鸿蒙HarmonyOS系统需要的是hap文…

2025选题|基于协同推荐的黔醉酒业白酒销售系统

作者主页:编程指南针 作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参…

从0开始学python-day17-数据结构2

2.3 队列 队列(Queue),它是一种运算受限的线性表,先进先出(FIFO First In First Out) 队列是一种受限的线性结构 受限之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作 P…