curvelet下载的curvelet工具包,有以下三个文件:fdct_usfft_matlab、fdct_wrapping_matlab、mecv三个文件夹添加到matlab路径中即可。

curvelet matlab示例代码理解:

1. fdct_wrapping

 function C = fdct_wrapping(x, is_real, finest, nbscales, nbangles_coarse)
% fdct_wrapping.m - Fast Discrete Curvelet Transform via wedge wrapping - Version 1.0
%
% Inputs
% x M-by-N matrix 输入为MxN的矩阵
%
% Optional Inputs
% is_real Type of the transform 转化的类型
% 0: complex-valued curvelets 复数值的曲波变化
% 1: real-valued curvelets 实数值的曲波变化
% [default set to 0] 默认设置为0
% finest Chooses one of two possibilities for the coefficients at the
% finest level: 选择一种表示方式计算最优级的系数
% 1: curvelets 曲波变化
% 2: wavelets 小波变化
% [default set to 2] 默认设置为2
% nbscales number of scales including the coarsest wavelet level
% 包含最粗小波级在内的伸缩数
% [default set to ceil(log2(min(M,N)) - 3)]
% nbangles_coarse
% number of angles at the 2nd coarsest level, minimum 8,
% 第二粗糙级的角度数,最小为8
% must be a multiple of 4. [default set to 16]
% 必须为4的倍数,默认为16
% Outputs
% C Cell array of curvelet coefficients.
% C{j}{l}(k1,k2) is the coefficient at
% - scale j: integer, from finest to coarsest scale,
% 从最佳尺度到最粗尺度
% - angle l: integer, starts at the top-left corner and
% increases clockwise,
% 从左上角开始顺时针增长
% - position k1,k2: both integers, size varies with j
% and l.
% If is_real is 1, there are two types of curvelets,
% 'cosine' and 'sine'. For a given scale j, the 'cosine'
% coefficients are stored in the first two quadrants (low
% values of l), the 'sine' coefficients in the last two
% quadrants (high values of l).
%
% See also ifdct_wrapping.m, fdct_wrapping_param.m
%
% By Laurent Demanet, 2004

  

2. DCT基本示例代码理解

% fdct_wrapping_demo_basic.m -- Displays a curvelet both in the spatial and frequency domains.

m = 1024;
n = 1024; X = zeros(m,n); %forward curvelet transform
disp('Take curvelet transform: fdct_wrapping');
tic; C = fdct_wrapping(X,0,2,8,64); toc; %tic toc配合使用测量程序运行时间 %specify one curvelet
s = 7; %从1开始增大,空间域变细,频率域变粗
w = 10;%从1(左上角)开始增大,空间域顺时针旋转,与笛卡尔corona相对应
[A,B] = size(C{s}{w});%尺度为s,方向为w,的矩阵大小
a = ceil((A+1)/2);
b = ceil((B+1)/5);
C{s}{w}(a,b) = 1; %该尺度、方向中心位置元素设置为1 %adjoint curvelet transform
disp('Take adjoint curvelet transform: ifdct_wrapping');
tic; Y = ifdct_wrapping(C,0); toc;%进行反曲波变化,得到空间域图像 %display the curvelet
F = ifftshift(fft2(fftshift(Y)));
subplot(1,2,1); colormap gray; imagesc(real(Y)); axis('image'); ...
title('a curvelet: spatial viewpoint');
subplot(1,2,2); colormap gray; imagesc(abs(F)); axis('image'); ...
title('a curvelet: frequency viewpoint'); %get parameters
[SX,SY,FX,FY,NX,NY] = fdct_wrapping_param(C);

  示例代码流程: 
* 首先创建了一副空图像,对其进行DCT变化,得到其系数C(可以理解为一个四维矩阵,由于每个二维矩阵维度不同,故使用cell数据结构),当然C中的元素全为0。 
* 之后将其尺度s、角度为w的二维矩阵C{s}{w}中心元素设置为1,对C进行IDCT变换,得到其空间域的图像Y。 
* 之后对Y做傅里叶变换,得到其频率域图像F。绘制Y与F的图像。

2.1 变化后系数矩阵维度的理解

下表显示了对图像做C = fdct_wrapping(X,0,2,6,16);变换后,得到系数C的详细信息,其中原始图片大小为512*512。最内层即Coarse是由低频系数组成的一个矩阵,最外层Fine是高频系数组成的矩阵。

层次 尺度系数 方向参量的个数 矩阵的形式
Coarse C{1} 1 21*21
Detail C{2} 16 18*22 16*22 22*18 22*16
  C{3} 32 34*22 32*22 22*32 22*34
  C{4} 32 67*44 64*43 64*44 44*64 43*64 44*67
  C{5} 64 131*44 128*43 128*44 44*128 43*128 44*131
Fine C{6} 1 512*512

2.2 尺度数s的影响

下图显示了对图像做C = fdct_wrapping(X,0,2,6,16);变换后,s=1:6,w=1下的空间域与频域的图像。可以看出: 
1. 随着s增大,即尺度由最佳尺度变为最粗尺度时,空间域的“针”图形组件变细,而频率域的“针”图像逐渐变粗。这个可以由空间域和频率域具有一定的对称性得知,空间域越“胖”,频率域越“瘦”。 
2. 尺度s值越大,代表的的越是高信息。

 

2.2 角度数w的影响

下图显示了对图像做C = fdct_wrapping(X,0,2,6,16);变换后,s=5,w=1:10:60下的空间域与频域的图像。可以看出: 
w=1时,“楔形”位于左上角位置,随着w增大,“楔形”顺时针转动。由于空间限制,只贴出部分图片。

 

2.3 位置a b(其元素值为1)的影响

下图所示为对原始图像进行C = fdct_wrapping(X,0,2,total_s,16);,改变C{5}{1}(a,b)=1;,a b取值变化时所对应空间域与频率域的图像,可以看出: 
a b的改变并不会对频率域图像造成影响,而在空间域上“针”状物体会根据a b的值发生相应的位移

3 curvelet的性质

  • 小波变换是一种具有较强时、频局部分析功能的非平稳信号分析方法成功地应用于信号的特征提取领域,曲波变换作为新一代的多尺度几何分析工具取得了较好的识别效果,它考虑了尺度、位置、角度信息使其在表达图像中的曲线时明显优于小波变换。
  • Curvelet变换各向异性的特点更适合分析图像中的曲线或直线状边缘特征。
  • 符合生理学研究指出的“最优”图像表示方法应该具有的三种特征,多分辨、带通、具有方向性

MATLAB工具包——curvelet变换的理解(转)的更多相关文章

  1. Matlab实现Hough变换检測图像中的直线

    Hough变换的原理: 将图像从图像空间变换至參数空间.变换公式例如以下: 变换以后,图像空间与參数空间存在下面关系: 图像空间中的一点在參数空间是一条曲线,而图像空间共线的各点相应于參数空间交于一点 ...

  2. Matlab---傅里叶变换---通俗理解(二)

    1.用Matlab进行傅立叶变换 FFT是离散傅里叶变换的高速算法,能够将一个信号变换到频域.有些信号在时域上是非常难看出什么特征的,可是假设变换到频域之后,就非常easy看出特征了.这就是非常多信号 ...

  3. Matlab实现Hough变换检测图像中的直线 分类: 图像处理 2014-06-14 22:07 641人阅读 评论(0) 收藏

    Hough变换的原理: 将图像从图像空间变换至参数空间,变换公式如下: 变换以后,图像空间与参数空间存在以下关系: 图像空间中的一点在参数空间是一条曲线,而图像空间共线的各点对应于参数空间交于一点的各 ...

  4. Hilbert-Huang Transform: matlab 希尔伯特-黄变换: matlab实现

    关于Hilbert-Huang的matlab实现,材料汇总,比较杂...感谢所有网络上的贡献者们:) 核心:以下代码计算HHT边际谱及其对应频率 工具包要求:G-Rilling EMD Toolbox ...

  5. 遗传算法MATLAB工具包简介

    下面介绍的函数都是Sheriffed大学遗传算法工具包内的常用函数 复制矩阵 B=rep(A,RepN) 1 A表示要被复制的矩阵,RepN包含每个方向的复制次数,RepN(1)代表纵向复制次数,Re ...

  6. MATLAB与三大变换

    运行 Simulink 有三种方式: z 在 MATLAB 的命令窗口直接键入“Simulink”并回车: z 单击 MATLAB 工具条上的 Simulink 图标: z 在 MATLAB 菜单上选 ...

  7. Matlab 中 arburg 函数的理解与实际使用方法

    1. 理解 1.1 Matlab 帮助: a = arburg(x,p)返回与输入数组x的p阶模型相对应的归一化自回归(AR)参数. 如果x是一个向量,则输出数组a是一个行向量. 如果x是矩阵,则参数 ...

  8. OpenGL模型视图变换、投影变换、视口变换的理解

    OpenGL中不设置模型,投影,视口,所绘制的几何图形的坐标只能是-1到1(X轴向右,Y轴向上,Z轴垂直屏幕向外). 产生目标场景的过程类似于用照相机进行拍照: (1)把照相机固定在三角架上,并让他对 ...

  9. matlab中cell array的理解

    1. matlab中有一个函数iscell() 用于判断一个数组是不是cell array 参考:MATLAB Function Reference iscell Determine whether ...

随机推荐

  1. 好看的原生UI

    我前端可以说是0基础,作显示页面的时候自己设置各种CSS一是麻烦,二是难看,所以找UI组件, 比较流行的组件如ELEMENT之类都需要安装或者依赖其他框架如VUE,为了省事,决定使用原生UI组件, 本 ...

  2. Scrapy爬虫day2——简单运行爬虫

    设置setting.py 修改机器人协议 ROBOTSTXT_OBEY = False 设置User-Agent DEFAULT_REQUEST_HEADERS = { 'Accept': 'text ...

  3. [考试反思]1109csp-s模拟测试106:撞词

    (撞哈希了用了模拟测试28的词,所以这次就叫撞词吧) 蓝色的0... 蓝色的0... 都该联赛了还能CE呢... 考试结束前15分钟左右,期望得分300 然后对拍发现T2伪了写了一个能拿90分的垃圾随 ...

  4. NOIP模拟 31

    补坑 skyh又AK 赛时榜搜索我的姓: 下一条 ... 自闭了. (只是表达对B哥强烈的崇敬) (如果B哥介意我把名字贴出来请联系我删掉) T1一打眼,好像就一个gcd 康了眼大样例,觉得没啥问题 ...

  5. Hbase与Oracle的比较

    http://blog.csdn.net/lucky_greenegg/article/details/47070565 转自:http://www.cnblogs.com/chay1227/arch ...

  6. 使用Samba服务实现Linux与Windows系统之间的文件共享

    使用Samba服务口令验证方式可以让共享文件更加的安全,做到仅让信任的用户访问,而且验证过程也很简单,要想使用口令验证模式,我们需要先需要创建Samba服务独立的数据库. 第一步:安装Samba服务软 ...

  7. T-SQL Part VII: CROSS JOIN

    虽然不能确定是不是只有个SQL Server提供了Cross Join的功能,貌似W3School的SQL教程中是没有的 SQL教程.而Wikipedia中倒是有,也是最新的SQL:2011SQL:2 ...

  8. nyoj 263-精 挑 细 选 (sort(P, P+m, cmp); bool cmp(node a, node b)...)

    263-精 挑 细 选 内存限制:64MB 时间限制:3000ms 特判: No 通过数:14 提交数:26 难度:1 题目描述: 小王是公司的仓库管理员,一天,他接到了这样一个任务:从仓库中找出一根 ...

  9. ubunit 16 安装pip

    pip是一个用来安装和管理python包的工具.已经内置到python2.7.9和python3.4及其以上的版本里. python2.7执行: sudo apt-get install python ...

  10. 使用Charles设置https代理到http以及证书安装(服务端篇)

    1.下载ssl证书到[登录],并且设置证书[始终信任] 2.SSL Proxying设置,Location为*,可以抓全部接口的https请求 参考:https://www.jianshu.com/p ...