图像fft和wavelet变换矩阵和向量区别 dwt2和wavedec2联系
1. 对于小波变换,dwt2 :单级离散2维小波变换
wavedec2 :多级2-D小波分解
matlab中这两者联系是都能对图像进行小波分解,区别是dwt2是二维单尺度小波变换,只能对输入矩阵X一次分解。wavedec2是二维多尺度小波分解,对输入矩阵X进行N次分解。
经本人实验验证,若图像矩阵是2^n大小,wavedec2执行一次语句就是dwt2进行n次。
2. 图像矩阵形式进行变换和图像转变为向量形式进行变换,效果其实是一样的。
详情请参见具体代码:
img = imread('lena256.bmp');
img = double(img);
ft2 = fft2(img);
figure(1);
subplot(221);
imshow(ft2);
title('图(a)二维离散傅里叶变换语句实现');
N = 256;
F = fft(eye(N,N));
%F = real(F);
%figure(2);
subplot(222);
imshow(F);
title('图(b)一维傅里叶变换矩阵示意图');
%F1 = F';
ft1 = F*img*F';
%ft1 = ft1*F1;
%figure(3);
subplot(223);
imshow(ft1);
title('图(c)二维离散傅里叶变换矩阵形式实现');
%result = (ft1==ft2);
%isequal(ft1,ft2);
w = DWT(N);
%a=full(w);
DW1 = w*img*w';
figure(2);
subplot(321);
imshow(DW1);
title('小波变换矩阵实现示意图')
subplot(322);
imshow(full(w));
title('小波变换矩阵示意图')
%[cA,cD] = dwt(img,'sym8');
[c,s] = wavedec2(img,1,'haar');
%[c,s] = wavedec2(img,1,'sym8');
[cA,cH,cV,cD] = dwt2(img,'haar');
%[cA,cH,cV,cD] = dwt2(img,'sym8');
[cA1,cH1,cV1,cD1] = dwt2(cA,'haar');
[cA2,cH2,cV2,cD2] = dwt2(cA1,'haar');
[cA3,cH3,cV3,cD3] = dwt2(cA2,'haar');
[cA4,cH4,cV4,cD4] = dwt2(cA3,'haar');
[cA5,cH5,cV5,cD5] = dwt2(cA4,'haar');
[cA6,cH6,cV6,cD6] = dwt2(cA5,'haar');
%cA = [cA1,cH1;cV1,cD1];
cA5 = [cA6,cH6;cV6,cD6];
cA4 = [cA5,cH5;cV5,cD5];
cA3 = [cA4,cH4;cV4,cD4];
cA2 = [cA3,cH3;cV3,cD3];
cA1 = [cA2,cH2;cV2,cD2];
cA = [cA1,cH1;cV1,cD1];
%cA = [cA1,]
subplot(323);
imshow(cA);
subplot(324);
imshow(cH);
subplot(325);
imshow(cV);
subplot(326);
imshow(cD);
figure(3)
subplot(321);
DW2 = [cA,cH;cV,cD];
imshow(DW2)
subplot(322);
c = reshape(c,256,256);
imshow(c);
图像fft和wavelet变换矩阵和向量区别 dwt2和wavedec2联系的更多相关文章
- CocosCraetor中图像资源Texture和SpriteFrame的区别
Texture是保存在GPU缓冲中的一张纹理.是由一张图片创建获得的. SpriteFrame是Texture+Rect,根据一张纹理材质来剪切获得. SpriteFrame是Texture+Rect ...
- [ZZ] matlab中小波变换函数dwt2和wavedec2 系数提取函数appcoef2和detcoef2
https://zhidao.baidu.com/question/88038464.html DWT2是二维单尺度小波变换,其可以通过指定小波或者分解滤波器进行二维单尺度小波分解. 而WAVEDEC ...
- 4.keras实现-->生成式深度学习之用GAN生成图像
生成式对抗网络(GAN,generative adversarial network)由Goodfellow等人于2014年提出,它可以替代VAE来学习图像的潜在空间.它能够迫使生成图像与真实图像在统 ...
- DEM、DTM和DSM的区别
一.DTM(Digital Terrain Model) 数字地面模型是利用一个任意坐标系中大量选择的已知x.y.z的坐标点对连续地面的一个简单的统计表示,或者说,DTM就是地形表面形态属性信息的数字 ...
- html5进阶之canvas图像基础
1.首先还是使用之前讲过的Image()函数来预加载图像. 在调用图像之前,需创建一个事件监听器,为其保证图像已经正确的加载. 如下图: 监听图片已经正确加载 2.把图像显示在画布上面,这里将不再使用 ...
- Win8 Metro(C#)数字图像处理--2.53图像傅立叶变换
原文:Win8 Metro(C#)数字图像处理--2.53图像傅立叶变换 [函数名称] 1,一维FFT变换函数 Complex[] FFT(Complex[] sourceDat ...
- 「学习笔记」FFT 之优化——NTT
目录 「学习笔记」FFT 之优化--NTT 前言 引入 快速数论变换--NTT 一些引申问题及解决方法 三模数 NTT 拆系数 FFT (MTT) 「学习笔记」FFT 之优化--NTT 前言 \(NT ...
- python详细图像仿射变换讲解
仿射变换简介 什么是放射变换 图像上的仿射变换, 其实就是图片中的一个像素点,通过某种变换,移动到另外一个地方. 从数学上来讲, 就是一个向量空间进行一次线形变换并加上平移向量, 从而变换到另外一个向 ...
- 【Unity Shaders】Lighting Models —— 光照模型之Lit Sphere
本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...
随机推荐
- IDEA打war包
一 第一步创建一个web application:expolded 选择当前项目 二 新建一个web application: Archive 选择刚刚新建的Expoded “For ‘...... ...
- for循环以及复杂if else 例题
for循环语句 例一. 请输入一个整数,求1加到这个整数的和 例二 请从1到100 以内和7 有关的数字 例三,请设计一个游戏,前20关每关的分数是本身,21到30 是10分每关.31到40是20分每 ...
- web错误
“/Web”应用程序中的服务器错误. 服务器 'LD-PC' 上的 MSDTC 不可用. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误 ...
- shell 中的>文件重定向符 和 标准输入、输出、错误以及 2&1 的含义*
http://www.cnblogs.com/chenmh/p/5382044.html 问:其中 的2>&1是怎么回事? . test.sh > test.log 2>&a ...
- BZOJ 1061 志愿者招募(最小费用最大流)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1061 题意:申奥成功后,布布经过不懈努力,终于 成为奥组委下属公司人力资源部门的主管.布 ...
- 只用css来美化的上传表单按钮(抄的迅雷的)
<!DOCTYPE html><html><head><meta charset="utf-8" /><title>文件 ...
- Hadoop分布式部署——要点
这里只记录几个要点,比较容易出问题的地方. 1.各服务器必须有相同的用户(便于使用相同的用户ssh登录)2.ssh互通,配置无密码登录ssh-keygen -t rsa,将id_rsa.pub的内容相 ...
- 【转载】UML类图知识整理
原文:UML类图知识整理 UML类图 UML,进阶必备专业技能,看不懂UML就会看不懂那些优秀的资料. 这里简单整理 类之间的关系 泛化关系(generalization) 泛化(generalize ...
- java中判断从数据库中取出的字段是否为空
方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低.1:if(s == null || s.equals(""));方法二: 比较字符串长度, 效率高, 是我知道的最好一 ...
- Oracle数据库名、实例名、数据库域名、数据库服务名、全局数据库名的辨析
我也是看着各位大婶的博客然后一点点的来学习,不求全会,留个印象 数据库名 数据库名就是一个数据库的标识,用参数DB_NAME表示. 如果一台机器上安装了多个数据库,那么每一个数据库都有一个数据库名. ...