二维小波变换——wrcoef2、upcoef2、detcoef2、appcoef2(转)

article/2025/10/16 14:10:01

二维离散小波变换的函数同样可分为3大功能:

(1)分解与重构/恢复信号:

  • 1级分解重构原始信号函数为:dwt2idwt2

  • 多级(包括1级)分解重构原始信号函数为:wavedec2waverec2

(2)系数重构:

  • 1级分解的系数重构用函数的是:upcoef2

  • 多级分解的系数重构用函数的是: wrcoef2

(3)系数提取:

  • 多级分解低频近似系数提取:appcoef2

  • 多解分解高频细节系数提取:detcoef2

说明:相关注意与说明和一维下是完全一样的!

链接:https://www.jianshu.com/p/fbbc8573f7ed

1.wrcoef2

功能:从二维小波系数重构单分支

用法:

  • X = wrcoef2(‘type’,C,S,wname,N)

  • 根据小波分解结构[C,S],计算N级重构系数矩阵。wname是包含小波名称的字符向量或字符串标量(有关详细信息,请参阅wfilters)。如果‘type’=‘a’,则重构近似系数;如果’type’=‘h’(‘v’或’d’,则分别重建水平(垂直或对角线)细节系数。级别N必须是整数,使得如果’type’=‘a’,则满足0≤ N≤ size(S,1)-2;如果’type”=“h”、“v”或“d”,则满足1≤ N≤ size’(S,1)-2 。可以给出滤波器,而不是给出小波的名字。

  • X = wrcoef2(‘type’,C,S,Lo_R,Hi_R,N)

  • Lo_R是重构低通滤波器,Hi_R是重构高通滤波器

  • X = wrcoef2(‘type’,C,S,wname)

  • X = wrcoef2(‘type’,C,S,Lo_R,Hi_R)

  • X = wrcoef2(‘type’,C,S,wname) 与 X = wrcoef2(‘type’,C,S,Lo_R,Hi_R)重构最大水平N= size(S,1)-2的系数。

代码示例:

load woman;% Load an image,X contains the loaded image.
[c,s] = wavedec2(X,2,'sym5');%在2级执行分解,使用sym5的X
%在1级和2级重建近似值,从小波分解结构[c,s]
a1 = wrcoef2('a',c,s,'sym5',1);
a2 = wrcoef2('a',c,s,'sym5',2);
%在第二层重建细节,从小波分解结构[c,s].
hd2 = wrcoef2('h',c,s,'sym5',2);% 'h' is for horizontal, 
vd2 = wrcoef2('v',c,s ,'sym5',2);% 'v' is for vertical, 
dd2 = wrcoef2('d',c,s ,'sym5',2);% 'd' is for diagonal.
%所有这些图像的大小都相同。
sX = size(X)
sa1 = size(a1)
shd2 = size(hd2)subplot(321)
imagesc(a1); title('1层重构近似值');
subplot(322); 
imagesc(a2);title('2层重构近似值');
subplot(323)
imagesc(hd2);title('水平方向的高频分量');
subplot(324)
imagesc(vd2);title('垂直方向的高频分量');
subplot(325)
imagesc(dd2);title('对角线方向的高频分量');
% xlabel('小波变换各分量二维重构示意图');
print('-djpeg','-r600','F:\01-测试\分析图.jpg');

2.upcoef2

功能:从二维小波系数重构单分支

用法:

  • Y = upcoef2(O,X,wname,N,S)

  • 计算矩阵X的N步重构系数并取大小S的中心部分。wname是指定小波的字符向量或字符串标量。如果O=‘a’,则重构近似系数;如果O=‘h’(‘v’或’d’,分别),则重构水平(垂直或对角线,分别)细节系数。N必须是严格的正整数。

  • Y = upcoef2(O,X,Lo_R,Hi_R,N,S)

  • Y = upcoef2(O,X,wname,N) or Y = upcoef2(O,X,Lo_R,Hi_R,N)

  • 返回计算结果而不进行任何截断

  • Y = upcoef2(O,X,wname) or Y = upcoef2(O,X,wname,1)

  • Y = upcoef2(O,X,Lo_R,Hi_R) or Y = upcoef2(O,X,Lo_R,Hi_R,1)

代码示例:

load woman; % Load original image.,X contains the loaded image. 
[c,s] = wavedec2(X,2,'db4');% 在2级执行分解,使用db4的X. 
% 从系数重建1级的近似值和细节。 
% 这可以使用wrcoef2完成,或等效地使用; 
% Step 1: 从分解结构中提取系数[c,s].
% Step 2: 使用upcoef2重建. 
siz = s(size(s,1),:); 
ca1 = appcoef2(c,s,'db4',1); 
a1 = upcoef2('a',ca1,'db4',1,siz);
chd1 = detcoef2('h',c,s,1); 
hd1 = upcoef2('h',chd1,'db4',1,siz); 
cvd1 = detcoef2('v',c,s,1); 
vd1 = upcoef2('v',cvd1,'db4',1,siz);
cdd1 = detcoef2('d',c,s,1); 
dd1 = upcoef2('d',cdd1,'db4',1,siz);

运行结果:

3.detcoef2

功能: 二维细节系数

用法:

  • y = detcoef2(o,c,s,n)

  • 从小波分解结构[c,s]中提取n层方向o的细节系数。

  • [h,v,d] = detcoef2(‘all’,c,s,n)

  • 以级别n返回处的水平h、垂直v和对角线d细节系数。等价于detcoef2(‘a’,c,s,n)。

  • y = detcoef2(‘compact’,c,s,n)

  • 返回按行存储的所有细节系数。等价于detcoef2(‘c’,c,s,n)。

  • 这个例子展示了如何从图像的离散小波分析中提取细节系数。本例使用零填充。

代码如下(示例):

%将扩展模式设置为零填充。
origmode = dwtmode('status','nodisplay');
dwtmode('zpd','nodisplay');
%加载并显示图像。
load woman
subplot(131);
imagesc(X)
colormap(gray); title('原始图片');
%利用Haar小波对图像进行二级小波分解。
[c,s] = wavedec2(X,2,'haar');
size(X)
size(c)
s
%从小波分解结构[c,s]中提取每个方向第2层的细节系数。显示对角线细节系数。
[chd2,cvd2,cdd2] = detcoef2('all',c,s,2);
size(cdd2)
subplot(132);
imagesc(cdd2);title('对角线方向的高频分量');
colormap(gray)
%在每个方向的第1层提取细节系数。显示垂直细节系数。
[chd1,cvd1,cdd1] = detcoef2('all',c,s,1);
size(cvd1)
subplot(133);
imagesc(cvd1);title('垂直方向的高频分量');
colormap(gray)
%恢复原始扩展模式。
dwtmode(origmode,'nodisplay')
print('-djpeg','-r600','F:\01-测试\分析图.jpg');

运行结果:

4.appcoef2

功能: 二维近似系数

用法:

  • A = appcoef2(C,S,wname)

使用二维信号的小波分解结构[C,S]和wname指定的小波返回最粗尺度上的近似系数。

  • A = appcoef2(C,S,LoR,HiR)

使用低通重建滤波器LoR和高通重建滤波器HiR。

  • A = appcoef2(…,N)

返回N级的近似系数。如果[C,S]是二维信号的M级小波分解结构,则0≤ N≤ M。

代码如下(示例):

origmode = dwtmode('status','nodisplay');
dwtmode('zpd','nodisp')
load woman
subplot(131)
image(X)
colormap(map)
title('Original')
size(X)
%使用db1小波对图像执行三级小波分解。
%显示系数数组cfs中的元素数,以及记账矩阵inds的内容。
%请注意,cfs的元素数与X相同。
wv = 'db1';
[cfs,inds] = wavedec2(X,3,wv);
numel(X)
numel(cfs)
inds
%提取并显示第2级的近似系数。
cfs2 = appcoef2(cfs,inds,wv,2);
subplot(132)
imagesc(cfs2)
colormap('gray')
title('Level 2 Approximation Coefficients')
size(cfs2)
%提取并显示第3级的近似系数。
cfs3 = appcoef2(cfs,inds,wv,3);
subplot(133)
imagesc(cfs3)
colormap('gray')
title('Level 3 Approximation Coefficients')
size(cfs3)
dwtmode(origmode,'nodisplay') 
print('-djpeg','-r600','F:\01-测试\分析图.jpg');

运行结果:

————————————————

版权声明:本文为CSDN博主「计算机视觉从零学」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_43889476/article/details/117880121


http://chatgpt.dhexx.cn/article/K8pwtI2s.shtml

相关文章

[c0,s0] = wavedec2(M1, N, wtype);

采用小波分解行 clear ; X1 imread(20170901204704.jpg); imshow(X1); figure; M1 double(X1) / 256; imshow(M1); N 4; wtype sym4; [c0,s0] wavedec2(M1, N, wtype); M1导入后为809*803*3,numel(M1) 1948881; 而length(c0) 2011320; 两者并非是按照小…

wav2vec--

Wav2vec: Unsupervised Pre-training for Speech Recognition 该模型非完整的ASR,而是一个将wav通过标记的、未标记的数据,通过无监督的方式进行训练,得到可以送入ASR中的向量;以提升ASR的准确率; Wav2vec首先训练一个…

二维小波变换——wrcoef2、upcoef2、detcoef2、appcoef2

文章目录 1.wrcoef22.upcoef23.detcoef24.appcoef2 1.wrcoef2 功能:从二维小波系数重构单分支 用法: X wrcoef2(‘type’,C,S,wname,N) 根据小波分解结构[C,S],计算N级重构系数矩阵。wname是包含小波名称的字符向量或字符串标量…

MATLAB 之 wavedec2函数详解

wavedec2函数: 1.功能:实现图像(即二维信号)的多层分解,多层,即多尺度. 2.格式:[c,s]wavedec2(X,N,wname) [c,s]wavedec2(X,N,Lo_D,Hi_D)(我不讨论它) 3.参数说明:对图像X用wname小波基函数实现N层分解, 这里的小波基函数应该根据实际情况选择,具体选择办法可以搜之…

wavedec2函数详解

zz: http://hi.baidu.com/hehui1500/blog/item/81ba18dea873430349540382.html 很多人对小波多级分解的wavedec2总是迷惑,今天就详释她! wavedec2函数: 1.功能:实现图像(即二维信号)的多层分解,多层,即多尺度. 2.格式:[c,s]wavedec2(X,N,w…

python小波变换 wavedec2函数 各个返回值详解

网上找了好多文章都没有提到这个东西,没有说明 wavedec2 函数各个返回值究竟是什么意思 我们先看看 wavedec2 函数的大概形式, pywt.wavedec2(data, wavelet, mode’symmetric’, levelNone, axes(-2, -1))data: 输入的数据wavelet: 小波基level: …

图像的变换——dwt、idwt、wcodemat、dwt2、idwt2、wavedec2、waverec2

文章目录 图像小波变换一、一维小波变换1. dwt函数2.idwt函数 二、二维小波变换1.wcodemat函数2.dwt2函数3.idwt2函数4.wavedec2函数5.waverec2函数 三、相关单词 图像小波变换 一、一维小波变换 1. dwt函数 功能: 单级一维离散小波变换 句法: [cA,c…

说说wavedec2函数

http://maiqiuzhizhu.blog.sohu.com/110325150.html wavedec2函数: 1.功能:实现图像(即二维信号)的多层分解. 多层,即多尺度. 2.格式:[c,s]wavedec2(X,N,wname) [c,s]wavedec2(X,N,Lo_D,Hi_D)(我不讨论它) 3.参数说明:对图像X用wname小波基函数实现N层分解, 这里的小波基函数应…

小波变换--dwt2 与wavedec2

https://www.cnblogs.com/xfzhang/p/7295041.html https://www.ilovematlab.cn/thread-45020-1-1.html dwt2是二维单尺度小波变换,其可以通过指定小波或者分解滤波器进行二维单尺度小波分解。而wavedec2是二维多尺度小波分解. 尺度可理解为级,即waved…

MapReduce编程概述

MapReduce是一个用于大规模数据集的并行处理的分布式计算的编程框架。MapReduce将一个数据处理过程拆分为Map和Reduce两部分:Map是映射,负责数据的过滤分发;Reduce是规约,负责数据的计算归并。开发人员只需通过编写map和reduce函数…

Mapreduce编程模型(一)

1.1Mapreduce模型简介 Mapreduce是一种可用于数据处理的编程模型,Hadoop上可以运行各种语言版本的Mapreduce程序。Mapreduce程序是并行运行的,采用了分治的思想。编程核心思想:键值对思想 Mapreduce只需要用Map和Reduce的思想即可解决问题&am…

MapReduce 编程实例:词频统计

文章目录 MapReduce 编程实例:词频统计一,准备数据文件(1)在虚拟机上创建文本文件(2)上传文件到HDFS指定目录 二,使用IDEA创建Maven项目三,添加相关依赖四,创建日志属性文…

mapreduce 编程思想

MapReduce源于Google一篇论文,它充分借鉴了分而治之的思想,将一个数据处理过程拆分为主要的Map(映射)与Reduce(化简)两步。用户不懂分布式计算框架的内部运行机制,只要能用Map和Reduce的思想描述清楚要处理的问题,即编写map()和re…

MapReduce编程规范及示例编写

1、Mapper类 用户自定义一个Mapper类继承Hadoop的Mapper类Mapper的输入数据是KV对的形式(类型可以自定义)Map阶段的业务逻辑定义在map()方法中Mapper的输出数据是KV对的形式(类型可以自定义) 注意:map()方法是对输入…

MapReduce编程快速入门

MapReduce编程规范 用户编写的程序分成三个部分:Mapper,Reducer,Driver(提交运行mr程序的客户端) Mapper阶段继承Mapper类 (1)用户自定义的Mapper要继承自己的父类 (2)Mapper的输入数据是KV对…

java mapreduce编程_Hadoop实验——MapReduce编程(1)

实验目的 通过实验掌握基本的MapReduce编程方法。 掌握用MapReduce解决一些常见的数据处理问题,包括数据去重、数据排序和数据挖掘等。 通过操作MapReduce的实验,模仿实验内容,深入理解MapReduce的过程,熟悉MapReduce程序的编程方…

MapReduce编程初级实践

一、实验目的 通过实验掌握基本的MapReduce编程方法;掌握用MapReduce解决一些常见的数据处理问题,包括数据去重、数据排序和数据挖掘等。 二、 实验平台 操作系统:ubuntu18 Hadoop版本:3.2.2 HBase版本:2.2.2 JDK版…

MapReduce编程练习

目录 编程实现按日期统计访问次数 2.编程实现按访问次数排序 获取成绩表最高分 编译jar包方法 编程实现按日期统计访问次数 (1) 定义输入/输出格式 社交网站用户的访问日期在格式上属于文本格式&#xff0c;访问次数为整型数值格式。其组成的键值对为<访问日…

云计算实验 MapReduce编程

一、实验题目 MapReduce编程 二、实验内容 本实验利用 Hadoop 提供的 Java API 进行编程进行 MapReduce 编程。 三、实验目标 掌握MapReduce编程。 理解MapReduce原理 【实验作业】简单流量统计 有如下这样的日志文件&#xff1a; 13726230503 00-FD-07-A4-72-B8:CMCC 120.19…

Hadoop实验4:MapReduce编程

目录 一. 【实验准备】 1.工作目录 2.打开eclipse并配置工作空间 二、准备工作 1. 新建项目 2. 准备测试数据 3. 添加 MapReduce 编程框架 三、Map过程 四、Reduce过程 五、执行MapReduce任务 六、实验结果 七、准备工作 1. 新建项目 2. 准备relation.dat 3. 添加…