首页 > 其他分享 >小波变换及示例

小波变换及示例

时间:2024-09-22 17:01:10浏览次数:9  
标签:frac 示例 变换 Haar 低频 高频 分量

在二维 Haar 小波中,输入数据分解为低频和高频分量的计算公式源自 Haar 小波的特性,以及对输入矩阵的行和列进行逐步分解的方式。

### Haar 小波变换的基本思想

Haar 小波是最简单的小波变换,它基于二进制分解。对于二维数据(如图像),通常先对行进行一维变换,然后对列进行一维变换,得到四个不同的子带:低频-低频 (LL)、低频-高频 (LH)、高频-低频 (HL) 和高频-高频 (HH)。

### 一维 Haar 小波变换

首先,我们回顾一下**一维** Haar 小波的基本运算。对于两个相邻的数据点 \( x_1 \) 和 \( x_2 \),Haar 小波变换的输出包括**低频分量**和**高频分量**,分别由以下公式计算:

\[
\text{Low} = \frac{x_1 + x_2}{2}
\]
\[
\text{High} = \frac{x_1 - x_2}{2}
\]

- **低频分量 (Low)** 代表平滑信息(信号的平均值)。
- **高频分量 (High)** 代表细节信息(相邻数据之间的差异)。

### 二维 Haar 小波变换

对于二维数据(如图像),我们可以看作是对矩阵进行变换,分为两步:

1. **对行进行一维 Haar 小波变换**。
2. **对列进行一维 Haar 小波变换**。

假设我们有一个 \( 2 \times 2 \) 的矩阵块:
\[
\begin{bmatrix}
x_1 & x_2 \\
x_3 & x_4
\end{bmatrix}
\]
每个元素代表一个像素值。

### 第一步:对行进行一维 Haar 变换

先对矩阵的每一行进行一维 Haar 小波变换:

\[
\text{Row 1: } \frac{x_1 + x_2}{2} \quad \frac{x_1 - x_2}{2}
\]
\[
\text{Row 2: } \frac{x_3 + x_4}{2} \quad \frac{x_3 - x_4}{2}
\]

结果是:
\[
\begin{bmatrix}
\frac{x_1 + x_2}{2} & \frac{x_1 - x_2}{2} \\
\frac{x_3 + x_4}{2} & \frac{x_3 - x_4}{2}
\end{bmatrix}
\]

### 第二步:对列进行一维 Haar 变换

现在对结果矩阵的列进行一维 Haar 变换:

1. 对第一列 \( \left[\frac{x_1 + x_2}{2}, \frac{x_3 + x_4}{2} \right] \) 进行变换:
\[
\frac{\frac{x_1 + x_2}{2} + \frac{x_3 + x_4}{2}}{2} = \frac{x_1 + x_2 + x_3 + x_4}{4}
\]
\[
\frac{\frac{x_1 + x_2}{2} - \frac{x_3 + x_4}{2}}{2} = \frac{x_1 + x_2 - x_3 - x_4}{4}
\]

2. 对第二列 \( \left[\frac{x_1 - x_2}{2}, \frac{x_3 - x_4}{2} \right] \) 进行变换:
\[
\frac{\frac{x_1 - x_2}{2} + \frac{x_3 - x_4}{2}}{2} = \frac{x_1 - x_2 + x_3 - x_4}{4}
\]
\[
\frac{\frac{x_1 - x_2}{2} - \frac{x_3 - x_4}{2}}{2} = \frac{x_1 - x_2 - x_3 + x_4}{4}
\]

### 最终结果

将上面的计算结果整理,我们可以得到 4 个分量:

1. **LL 分量**(低频-低频):表示整体的平均值(平滑信息):
\[
LL = \frac{x_1 + x_2 + x_3 + x_4}{4}
\]

2. **HL 分量**(高频-低频):表示行的高频分量,列的低频分量:
\[
HL = \frac{x_1 - x_2 + x_3 - x_4}{4}
\]

3. **LH 分量**(低频-高频):表示行的低频分量,列的高频分量:
\[
LH = \frac{x_1 + x_2 - x_3 - x_4}{4}
\]

4. **HH 分量**(高频-高频):表示行和列的高频分量(细节信息):
\[
HH = \frac{x_1 - x_2 - x_3 + x_4}{4}
\]

这些公式通过逐步对行和列进行一维 Haar 小波变换得出,表示图像块在不同频率下的分量,分别捕捉了不同方向上的细节信息。

### 总结

- **LL 分量**:反映了低频的平滑信息,是图像的整体轮廓。
- **HL 分量**:捕捉了水平方向的细节(高频)和垂直方向的平滑(低频)。
- **LH 分量**:捕捉了垂直方向的细节(高频)和水平方向的平滑(低频)。
- **HH 分量**:捕捉了水平和垂直方向的细节(高频),通常对应于图像中的边缘信息。

通过这些分量,二维 Haar 小波变换能够有效地分解图像的细节和整体结构,并为图像处理、压缩等任务提供了有用的信息。

标签:frac,示例,变换,Haar,低频,高频,分量
From: https://www.cnblogs.com/xingtong-liuliu/p/18425529

相关文章

  • 第31次CCF-CSP认证考试 第一题 坐标变换(其一)满分题解
    第31次CCF-CSP认证考试第一题坐标变换(其一)写在前面的话这道题偏简单,我们废话不多说,直接上代码。老系统的链接:旧系统(不过只有第三十二次以及之前的,第三十三及以后的只能在新系统里提交查看分数)。代码#include<iostream>usingnamespacestd;intmain(){ intn,m; ......
  • 2024.09.22 力扣刷题 Z字形变换
    题目:将一个给定字符串s根据给定的行数numRows,以从上往下、从左到右进行Z字形排列。比如输入字符串为"PAYPALISHIRING"行数为3时,排列如下:PAHNAPLSIIGYIR之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNAPLSIIGYIR"。请你实......
  • 在 Laravel 项目中使用 SCSS 和 TailwindCSS 代码示例
    在编码领域,人们经常意识到什么有效,什么无效,以及尽管是新事物,但什么可以带来明确的改变。在这个小教程中,我将向您展示将scsstailwindcss一起用于无数web应用程序的最简单的事情。这个强大的组合可以显着增强您的web开发工作流程并创建更易于维护的样式表。所以在开始之前先......
  • 动态编程变得简单:带有 JavaScript 示例的初学者指南
    通过javascript中的动态编程释放高效解决问题的能力。介绍您想提高编程中解决问题的能力吗?动态规划(dp)是一种强大的技术,可以帮助您高效地解决复杂问题。本初学者指南将通过javascript示例向您介绍动态编程,使其易于掌握并应用于实际场景。您将学到什么:动态规划的基本概念......
  • 使用 KMeans 聚类算法 对鸢尾花数据集进行无监督学习的简单示例
    代码功能主要功能:加载数据集:代码使用load_iris()函数加载了鸢尾花数据集(Irisdataset)。这个数据集包含150条样本,每条样本有4个特征,对应于3种不同的鸢尾花。KMeans聚类:使用KMeans聚类算法将样本数据分为3个聚类(即3类),尝试发现数据中的自然分组,而不使用标签......
  • 第二百四十一节 JPA教程 - JPA一对一主键连接列示例、JPA一对一映射级联示例
    JPA教程-JPA一对一主键连接列示例例子下面的代码来自Person.java。packagecn.w3cschool.common;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.GenerationType;importjavax.persistence.Id;importjavax.pe......
  • Typescript 中的泛型是什么 - 为什么使用它们,它们如何与代码示例一起使用
    介绍什么是泛型?typescript中的泛型提供了一种创建可以使用多种类型而不是单一类型的组件的方法。它们允许您定义针对不同数据类型灵活且可重用的函数、类或接口,同时保持强大的类型安全性。本质上,泛型使您能够编写能够适应不同类型的代码,而不会失去typescript类型系统的优......
  • SOLID 原则使用一些有趣的类比与车辆示例
    solid是计算机编程中五个良好原则(规则)的缩写。solid允许程序员编写更易于理解和稍后更改的代码。solid通常与使用面向对象设计的系统一起使用。让我们使用车辆示例来解释solid原理。想象一下,我们正在设计一个系统来管理不同类型的车辆,例如汽车和电动汽车,以提供运输服务。......
  • React 与 React (RC):主要区别和迁移技巧与示例
    react是用于构建用户界面的流行javascript库,随着每个新版本的发布而不断发展。在这篇博文中,我们将探讨react18和即将推出的react19(目前处于候选发布阶段)之间的主要区别,提供新功能示例,并为使用react和vite的开发人员提供迁移技巧。目录简介react19的当前状态与......
  • <<编码>> 第 16 章 存储器组织(1)--比特锁存器 示例电路
    1比特锁存器info::操作说明鼠标单击逻辑输入切换0|1状态就是前面的电平触发的D型锁存器.写入(Write)就是时钟信号primary::在线交互操作链接https://cc.xiaogd.net/?startCircuitLink=https://book.xiaogd.net/code-hlchs-examples/assets/circuit/code-hlc......