图像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>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...
随机推荐
- HTTP断点续传的基本原理
转自:http://blog.csdn.net/sendy888/article/details/1719105 断点续传是我们现在经常接触的概念,那么HTTP协议是如何支持断点续传的呢.我们先从一个 ...
- java-以月为单位,得到一年中某一个月份的范围
简单说:得到某一月份的第一天,第一小时,第一分钟,第一秒和某一月份的最后一天,最后一小时,最后一分钟,最后一秒. 实现: //月初 private Date getBeginTimeOfMonth(i ...
- 查看linux发行版本、内核版本命令
查看linux发行版本: $lsb_release -a 查看linux内核版本: $cat /proc/version 或 $uname -a
- 关于nodejs4.0 npm乱码以及离线全局安装时要注意的问题
近期nodejs更新的到了4.~版本,融合了io.js,升级了v8引擎,对于之前的操作有些变化,在这里提醒大家注意: 1.npm在install和remove时发生乱码,并报出"runTop ...
- C#获取当前日期时间(转)
我们可以通过使用DataTime这个类来获取当前的时间.通过调用类中的各种方法我们可以获取不同的时间:如:日期(2008-09-04).时间(12:12:12).日期+时间(2008-09-04 12 ...
- SQL事务回滚样例
选课系统,当同意学号选课数量超过则回滚事务,符合条件则正常插入数据 --开始一个事务处理Begin Tran T1 --执行插入操作insert into Courselist values('201 ...
- 【leetcode❤python】 Maximum Depth of Binary Tree
#-*- coding: UTF-8 -*- # Definition for a binary tree node.# class TreeNode(object):# def __init ...
- 【leetcode❤python】141. Linked List Cycle
#-*- coding: UTF-8 -*- #Method:快慢指针法,建立虚表头,快指针走两步,慢指针走一步,若存在环,则快指针会追上慢指针# Definition for singly-link ...
- ubuntu下ssh登陆阿里云服务器(ubuntu系统)中文乱码问题
研究了几天终于解决了... 原文地址: http://blog.csdn.net/a__yes/article/details/50489456 问题描述: 阿里云的服务器ubuntu系统,wind ...
- 【VB6笔记-02】从Command中获取链接参数
Public Sub GetParameters() Dim Para As String Para = Command$() gstrUserID = GetCommandPara(Para, ) ...