【多维定向滤波器组和表面波】表面变换:用于高效表示多维 s 的多分辨率变换(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

文献来源:

1992年,班贝格和史密斯提出了定向滤波器组(DFB),用于2D信号的有效定向分解。由于系统的不可分离性,将DFB扩展到更高的维度,同时仍保留其吸引人的功能是一个具有挑战性且以前未解决的问题。我们提出了一个名为NDFB的新滤波器组系列,它可以通过简单高效的树形结构实现任意N维(Nges2)信号的定向分解。在三维中,所提出的NDFB的理想通带是基于矩形的金字塔,从原点向不同方向辐射并平铺整个频率空间。所提出的NDFB通过N-D冗余因子为N的迭代滤波器组实现了完美的重构。所提出的NDFB的角分辨率可以通过简单的展开规则调用更多级别的分解来迭代细化。通过将NDFB与新的多尺度金字塔相结合,我们提出了表面变换,可用于在多维数据中有效地捕获和表示类似表面的奇点 

原文摘要:

Abstract:

In 1992, Bamberger and Smith proposed the directional filter bank (DFB) for an efficient directional decomposition of 2-D signals. Due to the nonseparable nature of the system, extending the DFB to higher dimensions while still retaining its attractive features is a challenging and previously unsolved problem. We propose a new family of filter banks, named NDFB, that can achieve the directional decomposition of arbitrary N-dimensional (Nges2) signals with a simple and efficient tree-structured construction. In 3-D, the ideal passbands of the proposed NDFB are rectangular-based pyramids radiating out from the origin at different orientations and tiling the entire frequency space. The proposed NDFB achieves perfect reconstruction via an iterated filter bank with a redundancy factor of N in N-D. The angular resolution of the proposed NDFB can be iteratively refined by invoking more levels of decomposition through a simple expansion rule. By combining the NDFB with a new multiscale pyramid, we propose the surfacelet transform, which can be used to efficiently capture and represent surface-like singularities in multidimensional data

随着现代计算机和成像设备功能的增长,高分辨率 3D 甚至更高维度的体积数据越来越多地用于广泛的应用,包括生物医学成像、地震成像、河外天文学、计算机视觉以及视频处理和压缩。为了有效地分析和表示如此大量的数据,我们需要创建和使用来自各个工程领域的新工具,包括信号处理。在本文中,我们提出了一套新的工具,即N-维度定向滤波器组 (NDFB) 和表面,可以捕获和表示位于光滑表面上的信号奇异点。这种奇点通常在3D医学图像中观察到,其中图像大多是平滑的,除了在某些边界表面上,以及在视频信号中,移动物体在3-D空间/时间空间中雕刻出光滑的表面。

对于2-D信号,沿着平滑曲线捕获奇点的类似问题已经得到了广泛的研究。在不声称详尽无遗的情况下,我们想举几个例子,包括可操纵金字塔 [1]、定向滤波器组 [2]、二维定向小波 [2]、曲线 [3]、复杂小波 [4]、[5]、轮廓 [6]、带状 [7] 和剪切 [8]。在所有这些二维表示中,我们特别感兴趣的一种方法是定向滤波器组(DFB),它最初由班贝格和史密斯[2]提出,随后由几位作者[2]-[10]改进。德国足协通过l-级树结构分解,导致2l具有楔形频率分区的子带,如图1(a)所示。同时,DFB是一种非冗余变换,并提供完美的重建,即原始信号可以从其抽取的通道中精确重建。DFB的方向选择性和高效结构使其成为许多图像处理应用的有吸引力的候选者。通过将DFB与拉普拉斯金字塔相结合,Do和Vetterli [7]构建了轮廓,为稀疏图像表示提供了定向多分辨率变换。

📚2 运行结果

 

 部分代码:

%% We add Gaussian noise to the video sequence
disp(' ');
disp('Step 2: Add white Gaussian noise to the sequence.');
sigma = 20; % standard deviation
Xn = double(X) + sigma * randn(size(X));
r = input('Press <enter> to play the noisy sequence ...');
PlayImageSequence(uint8(Xn));

%% Surfacelet Denoising
disp(' ');
disp('Step 3: Apply surfacelet transform on the noisy sequence and hard-threshold the coefficients');
r = input('Press <enter> to continue ...');

disp(' ');
disp('Processing ...');

Pyr_mode = 1.5; % For better performance, choose Pyr_mode = 1. However, this setting requires more RAMs.
Xd = surfacelet_denoising_3D(Xn, Pyr_mode, sigma);
Xd(Xd > 255) = 255;
Xd(Xd < 0) = 0;


disp('Done!');
disp(' ');
r = input('Press <enter> to show the denoised sequence ...');
skip = 10; % To exclude the boundary effect
PlayImageSequence(uint8(Xd(:,:, skip+1 : end - skip)));

% Plot the frame-by-frame PSNR values
PSNR_surf = zeros(size(Xd, 3) - 2 * skip, 1);
for n = skip+1 : size(Xd, 3) - skip
   PSNR_surf(n - skip) = PSNR(double(X(:,:, n)), Xd(:,:,n)); 
end

figure
plot([(skip+1) : (size(Xd, 3) - skip)], PSNR_surf);
axis tight;
title(['Average PSNR = ' num2str(mean(PSNR_surf))], 'FontSize', 12);
xlabel('Frame Number', 'FontSize', 12);
ylabel('PSNR (dB)', 'FontSize', 12);

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

 Multidimensional Directional Filter Banks and Surfacelets | IEEE Journals & Magazine | IEEE Xplore

🌈4 Matlab代码实现

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

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

相关文章

mysql基础之触发器的简单使用

1.建立学生信息表 -- 触发器 -- 建立学生信息表 create table s1(id int unsigned auto_increment,name varchar(30),score tinyint unsigned,dept varchar(50),primary key(id) );2.建立学生补考信息表 -- 建立学生补考信息表 create table s2 like s1;3.建立触发器&#xf…

linux文件I/O之 close()、lseek()、read()、write() 函数用法

1. close() 函数 头文件和函数声明 #include <unistd.h> int close(int fd); 函数功能 关闭一个文件描述符 返回值 成功时返回 0。失败则返回 -1&#xff0c;并设置 errno 为相应的错误标志。 参数 fd&#xff1a;文件描述符 说明 像其它所有系统调用一样&…

二级python和二级c哪个简单,二级c语言和二级python

大家好&#xff0c;小编为大家解答二级c语言和二级office一起报可以吗的问题。很多人还不知道计算机二级c语言和python哪个好考&#xff0c;现在让我们一起来看看吧&#xff01; 介绍Python有很多库和使用Qt编写的接口,这自然创建c调用Python的需求。一路摸索,充满艰辛的添加头…

创建型模式-原型模式

文章目录 一、原型模式1. 概述2. 结构3. 实现4. 案例1.5 使用场景1.6 扩展&#xff08;深克隆&#xff09; 一、原型模式 1. 概述 用一个已经创建的实例作为原型&#xff0c;通过复制该原型对象来创建一个和原型对象相同的新对象。 2. 结构 原型模式包含如下角色&#xff1a; …

8月10日上课内容 Tomacat部署及优化

tomcat 开放源代码的web应用服务器。基于java代码开发的。 Tomcat介绍 tomcat就是处理动态请求和基于java代码的页面开发 可以在html当中写入java代码&#xff0c;tomcat可以解析html页面当中的java,执行动态请求&#xff0c;动态页面。缺点是机制有问题:不对tomcat进行优化&…

Hello,SpringBoot!

一、回顾什么是Spring Spring是一个开源框架&#xff0c;2003 年兴起的一个轻量级的Java 开发框架&#xff0c;作者&#xff1a;Rod Johnson Spring是为了解决企业级应用开发的复杂性而创建的&#xff0c;简化开发。 Spring是如何简化Java开发的 为了降低Java开发的复杂性…

mac安装nvm管理工具遇到的问题和解决方法

nvm 是一款可以管理多版本node的工具&#xff0c;因为是刚买没多久的电脑之前用的都是windows&#xff0c;昨天折腾了一下午终于倒腾好了 第一步&#xff1a; 卸载电脑已有的node&#xff1b;访问nvm脚本网址&#xff0c;另存为到电脑上任何目录&#xff0c;我是放在桌面上的…

【pinia】Pinia入门和基本使用:

文章目录 一、 什么是pinia二、 创建空Vue项目并安装Pinia1. 创建空Vue项目2. 安装Pinia并注册 三、 实现counter四、 实现getters五、 异步action六、 storeToRefs保持响应式解构七、基本使用&#xff1a;【1】main.js【2】store》index.js【3】member.ts 一、 什么是pinia P…

使用一个python脚本抓取大量网站【2/3】

一、说明 我如何使用一个 Python 脚本抓取大量网站&#xff0c;在第 2 部分使用 Docker &#xff0c;“我如何使用一个python脚本抓取大量网站”统计数据。在本文中&#xff0c;我将与您分享&#xff1a; Github存储库&#xff0c;您可以从中克隆它;链接到 docker 容器&#xf…

【Docker】Windows下docker环境搭建及解决使用非官方终端时的连接问题

目录 背景 Windows Docker 安装 安装docker toolbox cmder 解决cmder 连接失败问题 资料获取方法 背景 时常有容器方面的需求&#xff0c;经常构建调试导致测试环境有些混乱&#xff0c;所以想在本地构建一套环境&#xff0c;镜像调试稳定后再放到测试环境中。 Windows …

缓存平均的两种算法

引言 线边库存物料的合理性问题是物流仿真中研究的重要问题之一,如果线边库存量过多,则会对生产现场的布局产生负面影响,增加成本,降低效益。 写在前面 仿真分析后对线边Buffer的使用情况进行合理的评估就是一个非常重要的事情。比较关心的参数包括:缓存位最大值…

k8s-----集群调度

目录 一&#xff1a;调度约束 二&#xff1a;Pod 启动创建过程 三&#xff1a;k8s调度过程 1、Predicate 有一系列的常见的算法 2、常见优先级选项 3、指定调度节点 &#xff08;1&#xff09;nodeName指定 &#xff08;2&#xff09;nodeSelector指定 四&#xff1a;亲和…

基于金融行业的软件测试分析

随着银行业务不断增加&#xff0c;业务模式不断复杂化&#xff0c;对我们的银行软件也要求越来越高&#xff0c;产出高质量的产品也非常重要&#xff0c;下面对银行软件测试进行分析总结。 银行软件集中度高&#xff0c;规模庞大&#xff0c;往往是以系统群的方式存在&#xff…

【算法篇C++实现】五大常规算法

文章目录 &#x1f680;一、分治法⛳&#xff08;一&#xff09;算法思想⛳&#xff08;二&#xff09;相关代码 &#x1f680;二、动态规划算法⛳&#xff08;一&#xff09;算法思想⛳&#xff08;二&#xff09;相关代码 &#x1f680;三、回溯算法⛳&#xff08;一&#xf…

ELK 将数据流转换回常规索引

ELK 将数据流转换回常规索引 现象&#xff1a;创建索引模板是打开了数据流&#xff0c;导致不能创建常规索引&#xff0c;并且手动修改、删除索引模板失败 "reason" : "composable template [logs_template] with index patterns [new-pattern*], priority [2…

微服务Ribbon-负载均衡策略和饥饿加载

目录 一、负载均衡策略 1.1 负载均衡策略介绍 1.2 自定义负载均衡策略 二、饥饿加载 &#xff08;笔记整理自bilibili黑马程序员课程&#xff09; 一、负载均衡策略 1.1 负载均衡策略介绍 负载均衡的规则都定义在IRule接口中&#xff0c;而IRule有很多不同的实现类&…

uniapp 格式化时间刚刚,几分钟前,几小时前,几天前…

效果如图&#xff1a; 根目录下新建utils文件夹&#xff0c;文件夹下新增js文件&#xff0c;文件内容&#xff1a; export const filters {dateTimeSub(data) {if (data undefined) {return;}// 传进来的data必须是日期格式&#xff0c;不能是时间戳//将字符串转换成时间格式…

Vue3使用wangEditor

那么这一节我们在编辑公司信息的弹窗中使用富文本插件wangEditor官网 Vue3使用wangEditor 安装wangEditor在弹窗中引入wangEditor结构api接口部分editor组件script部分怎么去修改富文本的编辑器&#xff1f; 案例内效果&#xff1a; 安装wangEditor npm install wangeditor/…

RabbitMQ学习——发布订阅/fanout模式 topic模式 rabbitmq回调确认 延迟队列(死信)设计

目录 引出点对点(simple)Work queues 一对多发布订阅/fanout模式以登陆验证码为例pom文件导包application.yml文件rabbitmq的配置生产者生成验证码&#xff0c;发送给交换机消费者消费验证码 topic模式配置类增加配置生产者发送信息进行发送控制台查看 rabbitmq回调确认配置类验…

MySQL 存储过程、函数、触发器、事件

​ 目录 存储过程 创建存储过程 调用存储过程 查看存储过程 删除存储过程 进阶 变量 if条件判断 传递参数 case结构 while循环 repeat结构 loop语句 leave语句 游标/光标 存储函数 触发器 创建触发器 删除触发器 查看触发器 事件 查看事件调度器是否开启…