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联系的更多相关文章

  1. CocosCraetor中图像资源Texture和SpriteFrame的区别

    Texture是保存在GPU缓冲中的一张纹理.是由一张图片创建获得的. SpriteFrame是Texture+Rect,根据一张纹理材质来剪切获得. SpriteFrame是Texture+Rect ...

  2. [ZZ] matlab中小波变换函数dwt2和wavedec2 系数提取函数appcoef2和detcoef2

    https://zhidao.baidu.com/question/88038464.html DWT2是二维单尺度小波变换,其可以通过指定小波或者分解滤波器进行二维单尺度小波分解. 而WAVEDEC ...

  3. 4.keras实现-->生成式深度学习之用GAN生成图像

    生成式对抗网络(GAN,generative adversarial network)由Goodfellow等人于2014年提出,它可以替代VAE来学习图像的潜在空间.它能够迫使生成图像与真实图像在统 ...

  4. DEM、DTM和DSM的区别

    一.DTM(Digital Terrain Model) 数字地面模型是利用一个任意坐标系中大量选择的已知x.y.z的坐标点对连续地面的一个简单的统计表示,或者说,DTM就是地形表面形态属性信息的数字 ...

  5. html5进阶之canvas图像基础

    1.首先还是使用之前讲过的Image()函数来预加载图像. 在调用图像之前,需创建一个事件监听器,为其保证图像已经正确的加载. 如下图: 监听图片已经正确加载 2.把图像显示在画布上面,这里将不再使用 ...

  6. Win8 Metro(C#)数字图像处理--2.53图像傅立叶变换

    原文:Win8 Metro(C#)数字图像处理--2.53图像傅立叶变换  [函数名称] 1,一维FFT变换函数         Complex[] FFT(Complex[] sourceDat ...

  7. 「学习笔记」FFT 之优化——NTT

    目录 「学习笔记」FFT 之优化--NTT 前言 引入 快速数论变换--NTT 一些引申问题及解决方法 三模数 NTT 拆系数 FFT (MTT) 「学习笔记」FFT 之优化--NTT 前言 \(NT ...

  8. python详细图像仿射变换讲解

    仿射变换简介 什么是放射变换 图像上的仿射变换, 其实就是图片中的一个像素点,通过某种变换,移动到另外一个地方. 从数学上来讲, 就是一个向量空间进行一次线形变换并加上平移向量, 从而变换到另外一个向 ...

  9. 【Unity Shaders】Lighting Models —— 光照模型之Lit Sphere

    本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...

随机推荐

  1. 2016年12月5日 星期一 --出埃及记 Exodus 20:26

    2016年12月5日 星期一 --出埃及记 Exodus 20:26 And do not go up to my altar on steps, lest your nakedness be exp ...

  2. Java -Dfile.encoding=UTF-8 出现乱码问题原因分析

    这两天写了一个 Java 程序来玩,结果又遭遇了以前遇到过很多次的乱码问题,具体描述一下: 在 Mac 系统里面,常用的 Java 程序启动方式有如下几种: 1.通过 eclipse 执行 class ...

  3. Objective-C之category

    http://blog.csdn.net/siemenliu/article/details/7835808

  4. uTenux——软件底层驱动组织结构介绍

    经过第一节对uTenux初步认识和第二节对uTenux\AT91SAM3S4C开发板的硬件结构的介绍,这一节我们将要学习的是uTenux\AT91SAM3S4C的软件底层驱动. 在悠龙公司的官网或者u ...

  5. Using Post_Query Trigger in Oracle Forms

    When a query is open in the block, the Post-Query trigger fires each time Form Builder fetches a rec ...

  6. Servlet技术

    Java Applet和Java Servlet都有一个共同特点: 它们都不是独立的应用程序,都没有main( )方法: 它们都不是由用户或者程序员直接调用,而是生存在容器中,由容器管理,Applet ...

  7. C#:常规属性和自动实现的属性

    根据属性的实现方式,属性可分为自动实现的属性和常规属性. 常规属性需要具体的人为的实现get访问器或者set访问器,而且一般需要有一个字段与之相对应:而自动实现的属性的get和set访问器的实现部分被 ...

  8. poj 3348--Cows(凸包求面积)

    链接:http://poj.org/problem?id=3348 Cows Time Limit: 2000MS   Memory Limit: 65536K Total Submissions:  ...

  9. WebSphere MQ 入门指南

    WebSphere MQ 入门指南这是一篇入门指南.我们从最基本的概念说起: 基础概念 对于MQ,我们需要知道4个名词:队列管理器.队列.消息.通道:对于编程设计人员,通常更关心消息和队列,对于维护管 ...

  10. How to crack interviews ...

    Code practice: Leetcode: www.leetcode.com HackerRank: www.hackerrank.com Topcoder: https://www.topco ...