【Matlab代码】图像的小波分解和重构实现

2023-10-31

一、原理

MATLAB中实现图像分解和重构的命令主要有dwt2(idwt2)和 wavedec2( waverec2)。其中,进行一层小波分解的命令为dwt2,对应的小波重构命令为idwt2;进行多层分解的命令为wavedec2,对应的重构命令为 wavered2。

1.1 一层小波分解与重构

[CA,CH,CV,CD] = dwt2(X,‘wname’);

其中,dwt2表示离散小波变换;X为输入参数,是图像;wname是小波名字;输出变量CA为低低频分解信息,刻画原始图像的逼近信息;CH为低高频分解信息,刻画原始图像的横向细节;CⅤ为高低频分解信息,刻画原始图像的垂直细节;CD为高高频分解信息,刻画原始图像的对角线上的细节。

[CA,CH,CV,CD] = dwt2(X,Lo_D,Hi_D);

为另一种离散小波变换,输入参数为分解的低通滤波器和高通滤波器。

[CA,CH,CV,CD] = dwt2(X,Lo_D,Hi_D, 'mode, MODE);

为不同形式边界延拓的离散小波变换,其中,MODE表示不同的延拓方式,具体有对称延拓’sym’或者’symh’(半点对称),‘symw’ (全点对称),反对称延拓’asym’或者 ‘asymh’(半点反对称), ‘asymw’(全点反对称),零延拓’zpd’,一阶光滑延拓’spd’或者’spl’(边界保持导数一致进行延拓),常数延拓’sp0’,周期延拓’ppd’或者’per’。

对应的小波重构实现:
X = idwt2(CA,CH,CV,CD, ‘wname’);
X = idwt2(CA,CH,CV,CD, Lo_D,Hi_D);
X = idwt2(CA,CH,CV,CD, 'mode, MODE);

1.2 多层小波分解与重构

[C,S] = wavedec2(X, N, ‘wname’);

其中, Wavedec2为多层小波分解函数;X为输入参数,是图像;N为分解层数; 'wname’是小波名字;输出变量C为所有分解信息的组合,具体为C=[A(N)|H(N)V(N)D(N)|…H(N-1)V(N-1)|D(N-1)…|H(1)V(1)D(1)],C为行向量;S为分解后各个频段图像的尺寸大小。

[C,S] = wavedec2(X, N, Lo_D,Hi_D);

为另一种离散小波变换。其中,输入参数N为分解层数;Lo_D和Hi_D分别为分解的低通滤波器和高通滤波器。由于C表达的是行向量,函数 appcoef2和 detcoef2分别能够返回二维表达的逼近图像的系数和高频各通道的图像系数,具体形式为

A=appcoef2(C,S, ‘wname’,N);
D= detcoef2(O,C,S,N);
O可以取’h’, ‘v’,‘d’, ‘all’,返回分解的水平高频,垂直高频和对角高频图像系数。
当O参数选all时,返回值是三个高通图像系数,即
[H,V,D]= detcoef(‘all’,C,S,N);
小波的多层重构命令为完全重构命令 waverec2和部分重构命令wrcoef2,具体为:
在这里插入图片描述
wrcoef2用于实现由二维小波分解提取出的不同频段的信息重构图像。
'type’为a,h,v,d分别对应的是低频信息、水平高频、垂直高频和对角高频信息

二、实例分析

2.1 dwt2一层小波分解与重构实例

用 MATLAB的dwt2命令对图像Lena进行分解重构,得到分解的低频和高频4个通道的图像,如图1所示。

在这里插入图片描述

图 1 小波分解的4个通道图像

用idwt2对分解图像进行重构,第一层分解的各个频率通道图像进行重构,如图2所示。

在这里插入图片描述

图 2 显示原始图像和由第一层各个频率通道重构的图像

2.2 wavedec2多层小波分解与重构实例

用 wavedec2命令、 detcoef2命令和 appcoe2f命令得到分解的各个层次的低频和高频图像,第二层分解的各通道图像如图3所示,第一第二层分解的各通道图像如图4所示。各分解图像拼接图和原图的对比如图5所示。

在这里插入图片描述

图 3 第二层小波分解的各个通道图像

在这里插入图片描述

图 4 第一第二层分解的各通道图像

在这里插入图片描述

图 5 原始图像和所有系数拼接后的图像

用 wavered2命令进行多层图像重构,由第二层各个频率通道图像进行重构的结果如图6所示。可以看出图像只由高层低通信号重构的结果为信号的概貌,而细节信息可由各层次的高频信息进行重构,从而实现信号的分层次分解和重构。

在这里插入图片描述

图 6 第二层各个频率通道图像进行重构的结果

三、资源获取

演示实例可从以下链接处获取:

https://download.csdn.net/download/m0_70745318/85384637

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Matlab代码】图像的小波分解和重构实现 的相关文章

  • 在 MATLAB 中用两个值替换向量值

    我必须创建一个以向量作为输入的函数v和三个标量a b and c 该函数替换了的每个元素v等于a有一个二元素数组 b c 例如 给定v 1 2 3 4 and a 2 b 5 c 5 输出将是 out 1 5 5 3 4 我的第一次尝试是尝
  • 估算缺失数据,同时强制相关系数保持不变

    考虑以下 excel 数据集 m r 2 0 3 3 0 8 4 0 1 3 2 1 5 2 2 3 1 9 2 5 1 2 3 0 2 0 2 6 我的目标是使用以下条件填充缺失值 将上述两列之间的成对相关性表示为 R 大约 0 68 将
  • 在 Matlab 中快速加载大块二进制文件

    我有一些相当大的 int16 格式的数据文件 256 个通道 大约 75 1 亿个样本 每个文件约 40 50 GB 左右 它以平面二进制格式编写 因此结构类似于 CH1S1 CH2S1 CH3S1 CH256S1 CH1S2 CH2S2
  • 整数的十进制表示形式中的分隔数字

    例如 我想将用户输入作为整数输入 45697 并将前两位数字存储在数组 向量或其他内容中 例如 4 5 6 9 7 这样我就可以使用一些函数调用来检查前两个值 4 5 并对它们进行计算 问题 我不知道如何存储恢复前两个值 有没有简单的函数调
  • 傅里叶变换定理 matlab

    我目前正在尝试理解二维傅里叶位移定理 根据我到目前为止所了解到的情况 图像空间中的平移会导致相位差异 但不会导致频率空间中的幅度差异 我试图用一个小例子来演示这一点 但它只适用于行的移位 而不适用于列的移位 这是一个小演示 我只在这里显示幅
  • 在 MATLAB 中创建共享库

    一位研究人员在 MATLAB 中创建了一个小型仿真 我们希望其他人也能使用它 我的计划是进行模拟 清理一些东西并将其变成一组函数 然后我打算将其编译成C库并使用SWIG https en wikipedia org wiki SWIG创建一
  • 单元格的 Fieldnames 函数的等效项

    正如标题所说 只是想知道是否有一个函数可以用作字段名 http www mathworks co uk help matlab ref fieldnames html 但适用于单元格 所以如果我有类似的东西 a imread redsqua
  • 如何在Matlab中将世界坐标转换为像素索引

    我有 512x512x313 体积的 dicom 图像 并且我有一个以世界坐标表示的点 57 7475 63 4184 83 1515 我如何在 Matlab 中获得该世界坐标的相应像素坐标 我不想戳破你的幻想 但你所要求的是不可能的 我能
  • 定义自定义 Mupad 程序的一般相对搜索路径

    假设我有一个 mupad 笔记本myMupadNotebook mn在路径上 C projectFolder ABC abc 它调用程序MyMupadProcedure mu它位于 C DEF GHI 现在我有一个 Matlab 脚本mai
  • 垂直子图的单一颜色条

    我想让下面的 MATLAB 图有一个沿着两个子图延伸的颜色条 像这样的事情 使用图形编辑器手动完成 Note 这与提出的问题不同here https stackoverflow com questions 39950229 matlab t
  • 检查图像中是否有太薄的区域

    我正在尝试验证雕刻机的黑白图像 更多的是剪贴画图像 不是照片 我需要考虑的主要事情之一是区域的大小 或线条的宽度 因为机器无法处理太细的线条 所以我需要找到比给定阈值更细的区域 以此图为例 竖琴的琴弦可能太细而无法雕刻 我正在阅读有关 Ma
  • 平衡两轮机器人而不使其向前/向后漂移

    我正在尝试设计一个控制器来平衡 2 轮机器人 约 13 公斤 并使其能够抵抗外力 例如 如果有人踢它 它不应该掉落 也不应该无限期地向前 向后漂移 我对大多数控制技术 LQR 滑模控制 PID 等 都很有经验 但我在网上看到大多数人使用 L
  • 如何在向量中的所有点之间绘制线?

    我有一个包含二维空间中一些点的向量 我希望 MATLAB 用从每个点到每个其他点绘制的线来绘制这些点 基本上 我想要一个所有顶点都连接的图 你能用情节来做到这一点吗 如果可以 怎么做 一种解决方案是使用该函数为每个点组合创建一组索引MESH
  • 我如何编写一个名为 dedbi 的 MATLAB 函数,它将输入 xtx 作为字符串并返回另一个字符串 xtxx 作为输出。

    dedbi 反转单词 即 a 将被 z 替换 b 将被 y 替换 c 将被 x 替换 依此类推 dedbi 将对大写字母执行相同的操作 即将字符串 A 替换为 Z 将 B 替换为 Y 将 C 替换为 X 依此类推 如果我给函数这个字符串 a
  • 如何正确从表中删除 NaN 值

    在 Matlab 中阅读 Excel 电子表格后 不幸的是 我的结果表中包含了 NaN 例如这个 Excel 表格 将产生此表 其中出现额外的 NaN 列 我尝试使用以下代码片段删除 NaN measurementCells readtab
  • Numpy 相当于 MATLAB 的 hist [重复]

    这个问题在这里已经有答案了 由于某种原因 Numpy 的 hist 总是返回比 MATLAB 的 hist 少 1 个 bin 例如在 MATLAB 中 x 1 2 2 2 1 4 4 2 3 3 3 3 Rep Val hist x un
  • Matlab的导入函数的范围是什么?

    我正在尝试将一些用 Matlab 编写的代码转换为独立的 编译的 Matlab 应用程序 然而 在出现一些奇怪的错误之后 我意识到代码大量使用了从路径中添加和删除的操作 以避免多次使用多个具有相同名称 但结果 计算不同 的函数这一事实 环顾
  • FMINCON 的替代方案

    除了 fmincon 之外还有其他更快 更高效的求解器吗 我正在使用 fmincon 来解决特定问题 但对于中等大小的向量变量来说 我的内存不足 我也没有任何超级计算机或云计算选项可供使用 我知道任何替代解决方案仍然会耗尽内存 但我只是想看
  • 图像梯度角计算

    我实际上是按照论文的说明进行操作的 输入应该是二进制 边缘 图像 输出应该是一个新图像 并根据论文中的说明进行了修改 我对指令的理解是 获取边缘图像的梯度图像并对其进行修改 并使用修改后的梯度创建一个新图像 因此 在 MATLAB Open
  • Deploytool for MATLAB R2013b 不起作用,发生了什么变化?

    多年来我一直在使用集成deploytool为我的同事创建易于分发的 exe 文件 我几天前安装了R2013b 但无法使用deploytool不再了 尝试打包时的日志文件给出了以下内容 ant

随机推荐

  • matlab练习程序(圆柱投影)

    圆柱投影就是将一张二维的图像投影到三维的圆柱体上 不过在显示图像的时候依然是以二维的形式给出 投影最重要的步骤就是计算投影变换公式 和图像旋转类似 只要得到变换公式 再依照公式进行代码编写就很容易了 这里就不写投影变换公式的推导过程了 直接
  • 区块链在金融领域的应用案例

    区块链这一颠覆性的技术作为当下多种热门概念的交集 将在可预见的未来深刻地影响包括金融业在内的多个行业 制造跨领 域合作的机会 提高资源配置效率 助力产业转型升级 对区块链技术的积极应对或是被动接受 也将导致各行业内部的重新洗牌 在金融领域
  • vs2010main.cpp不能检测到main.h

    今天想更改在github找到的人脸识别代码 主要想添加一个main h在原有代码中 并且把main cpp的一些东西挪到 h中 出现问题 在解决方案中添加了main h 但是在 cpp中添加 include main h 时出现错误 系统找
  • QT窗体禁止拖动缩放:使用setFixedSize方法

    QT窗体禁止拖动缩放 使用setFixedSize方法 需求 我想实现窗体在正常状态 Qt WindowNoState 边框不能通过鼠标拖动改变窗体大小 不影响窗体的正常最大化和还原状态 1024 768 屏幕的初始大小是可使用屏幕的大小
  • Qt5 安装教程

    Qt 是一个支持windows linux android等系统平台的集成开发环境 可以作为C 软件开发界面设计及代码编写的开发工具 并且其具有诸多基于C 底层封装的类库 对于新手程序猿来说 使用起来比较友好 1 官网下载需要安装的版本 h
  • vue 显示txt显示到页面_CDR页面“外”的内容在每个页面外都显示的方法

    前言 正常情况下 CDR软件中页面外的为 桌面 在哪个页面可以看到的 但是有粉丝反应 在CDR 2019版本中 将第一页的内容拖出页面以外时 在第二页面是看不到这些内容的 X4版有时也会这样 今天小编给大家分享CDR X4和2019版页面
  • snprintf函数使用

    int snprintf char restrict buf size t n const char restrict format 函数说明 最多从源串中拷贝n 1个字符到目标串中 然后再在后面加一个0 函数返回值 若成功则返回写入的字符
  • redis set zset key 常用命令

    list 可以重复 set不可以 list 有序 set元素位置无序 key常用命令 1 存储数据 sadd key member member 获取的结果是无序的 2 获取数据 获取全部数据 smembers key 3 随机获取一个数据
  • 书剑宠物疫苗接种管理软件操作教程

    软件简介 书剑宠物疫苗接种管理软件是一款宠物疫苗接种管理的工具 适合宠物诊所使用 具有动物主人建档 宠物疫苗接种登记管理 每日提醒 打印疫苗接种通知卡 自定义短信提醒模板等完善的功能 另外本软件的特色是同时具有手机网页版功能 手机扫一扫即能
  • 神经网络:多层感知机-MLP

    参考别人的 别看了 我自己做笔记玩的 最基本的神经网络 MLP 相应的变种的神经网络 误差反向传播 Back Propagation BP 神经网路 概率神经网络 卷积神经网络 Convolutional Neural Network CN
  • 有一行电文,已按以下规律译成密码: A-Z a-z B-Y b-y C-X c-x,即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,非字母字符不变。要求编程将密码译回原文,并

    有一行电文 已按以下规律译成密码 A Z a z B Y b y C X c x 即第一个字母变成第26个字母 第i个字母变成第 26 i 1 个字母 非字母字符不变 要求编程将密码译回原文 并输出密码和原文 include
  • requests中header的介绍及使用

    文章目录 在我们的学习工作中 写代码做一个简单的接口测试的时候 就会发现 即使是发送了一个post或get请求 但是系统提示我非法参数 无效请求 为什么呢 因为有一些系统或者网站对于请求做出一系列的反爬虫机制 他会效验你的header 是不
  • 多线程伪共享(false sharing)问题分析

    include
  • JUC AQS ReentrantLock源码分析(一)

    Java的内置锁一直都是备受争议的 在JDK 1 6之前 synchronized这个重量级锁其性能一直都是较为低下 虽然在1 6后 进行大量的锁优化策略 但是与Lock相比synchronized还是存在一些缺陷的 虽然synchroni
  • 区块链技术是未来的必选项?

    现如今 区块链技术为人类提供了一个可能的应对方案 我们不能禁止谁去创造什么样的人工智能 但是我们可以通过区块链技术对发展的进度进行追踪与评估 它们可能是全心全意要做造福人类的事情 但问题是很多的过程会出错 如果能够要求大家把制造AI的方法和
  • Linux(三):系统启动、目录结构与文件属性

    目录 系统启动 内核引导 运行 init 运行级别 系统初始化 建立终端 图形模式与文字模式 系统目录结构 运行 指令集合 外部文件管理 系统启动 扩展 临时文件 账户 文件基本属性 更改属性 chgrp 更改属组 chown 更改属主 属
  • 【软件工程基础复习整理】第四章需求分析(4)IDEF1X数据建模

    IDEF1X数据建模 实体时具有相同属性或特征的显示或抽象事实的结合 这个集合的一个元素便称为实体的一个实例 在一张IDEF1X图中 一个实体只能在图中出现一次 可标定联系 子实体的存在依赖于父实体的存在 不完全分类联系 可能存在一个实例属
  • 字典的使用

    文章目录 字典 新建 方法一 方法二 dict 增 方法一 dict key value 方法二 setdefault key value 删 方法一 pop 方法二 popitem 方法三 clear 改 方法一 dict key val
  • 5个可以网上赚钱的副业,聪明人早就开始做了,现在了解也不迟!

    大家好 我是项目小编 每天给大家分享网上赚钱项目和互联网干货 随着互联网发展越来越快 很多的人都想在网络上赚钱 那么网络上有哪些靠谱的赚钱方法呢 下面小编就给大家分享几个网络上常见的正规靠谱的赚钱方法 一 玩游戏赚钱 很多人听到玩游戏都会说
  • 【Matlab代码】图像的小波分解和重构实现

    一 原理 MATLAB中实现图像分解和重构的命令主要有dwt2 idwt2 和 wavedec2 waverec2 其中 进行一层小波分解的命令为dwt2 对应的小波重构命令为idwt2 进行多层分解的命令为wavedec2 对应的重构命令