小波变换及示例

在二维 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 小波变换能够有效地分解图像的细节和整体结构,并为图像处理、压缩等任务提供了有用的信息。

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

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

相关文章

放开那代码让我来!——Cursor帮你写代码的奇妙之旅

让我们开门见山:编程很酷,但也很折磨人。那些长时间盯着屏幕,debug无休止的日子,只有程序员懂得它的酸爽。而就在这个编程焦虑的世界中,Cursor横空出世,带着一系列魔法功能,如同你手中的一根智能魔杖,让写代码变得像煮速冻面一样简单。 Cursor,一款基于AI的编程助手,…

Mathtype公式相关:在mathtype中添加任意维数矩阵的方法以及矩阵中省略号的问题;输入空格;输入花体字母;输入空心字母;输入空心数字

一、在mathtype中添加任意维数矩阵的方法以及矩阵中省略号的问题 使用mathtype创建任意维数的矩阵: 打开mathtype后可点击矩阵工具栏,再点击右下角的图形,具体情况如下图所示。点击之后会弹出一个对话框如下图所示,可在行列处输入自己想要的行数和列数。使用此方法创建的矩…

GIS转码的秋招历程与踩坑经历

本文介绍地理信息科学(GIS)专业的2024届应届生,在研三上学期期间,寻找后端研发、软件开发等IT方向工作的非科班转码秋招情况~本文介绍地理信息科学(GIS)专业的2024届应届生,在研三上学期期间,寻找后端研发、软件开发等IT方向工作的非科班转码秋招情况。首先,这篇文章一…

树状数组浅谈

什么是树状数组 树状数组是一种码量小,常数小,支持单点修改和区间查询的数据结构。 树状数组维护的信息和运算需要满足结合律并且可差分 注意gcd和max操作虽然满足结合律,但不可差分,因此不能使用树状数组维护 其实,树状数组能做的,线段树都能做,线段树能做的,树状数组…

Filebeat

Filebeat 简介 Filebeat用于转发和集中日志数据的轻量级传送程序。作为服务器上的代理安装,Filebeat监视指定的位置文件或位置,收集日志事件,并将他们转发到Elasticsearch 或Logstash进行索引。 架构图安装Filebeat 下载并安装 wget https://artifacts.elastic.co/download…

Tarjan算法及其应用 总结+详细讲解+详细代码注释

\(\text{Tarjan}\) 1.引入概念 1.强连通分量 1.定义 在有向图 \(G\) 中,强连通分量就是满足以下条件的 \(G\) 的子图:从任意一点出发,都有到达另一个点的路径。 不存在一个或者几个点,使得这个子图加入这些点后,这个子图还满足上一个性质。为什么要限定”在有向图中“而不…

三级数据库技术笔记

数据库应用系统开发方法 数据库应用系统生命周期 软件工程与软件开发方法 瀑布模型 快速原型模型 螺旋模型 DBAS生命周期 DBAS生命周期:项目规划、需求分析、系统设计、实现与部署、运行与维护 规划与分析 可行性分析:经济可行性、技术可行性、操作可行性、开发方案选择 需求…

洛谷P5683 [CSP-J2019 江西] 道路拆除

立下flag:今天一定AC这道题! 题目意思: 思路: 然而并没有分。。 输出-1,祈求CCF的施舍( 30% 的数据,有 \(s_1 = s_2\) 求 1 号点到 \(s_1\) 最短路,再计算不需要的路径。 SPFA,启动! #include<bits/stdc++.h>using namespace std;const int maxn=3010; const i…

golang 项目引入私有仓库包

场景: 当你多个项目,都需要使用一个或者多个方法,那么可以将公共方法,抽成一个包,进行管理(类似Log模块等)。这时候可以将你的包上传到私有的仓库,其他项目引入该包即可。下面来介绍下,如何引用私有仓库的包。 1. 创建一个新的 Git 标签 假设你已经在你的私有 GitLab …

设计模式之——装饰者模式

前言: 装饰者模式是结构性设计模式之一,其在不必改变类文件及不适用继承的情况下,动态的扩展一个对象的功能。它通过创建一个包装对象(即装饰)来包裹真实的对象。 一.定义 动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。 装饰者模式的…

解决vsc中文乱码

关于vs code使用code runner运行python代码出现中文乱码的解决办法_code runner 运行乱码-CSDN博客 Code Runner插件设置 "set PYTHONIOENCODING=utf8 && python -u"

CSP-S 2024 提高组初赛第一轮初赛试题及答案解析

CSP-S 2024 提高组初赛第一轮初赛试题及答案解析 一、 单项选择题(共15题,每题2分,共计30分:每题有且仅有一个正确选项) 1 在 Linux 系统中,如果你想显示当前工作目录的路径,应该使用哪个命令?( ) A pwd B cd C ls D echo 答案 A 解析 A pwd:这个命令是“prin…