主要内容

dualtree3

三维双树复小波变换

描述

一个d= dualtree3(x的三维双树复小波变换x在最高水平上,地板(log2 (min(大小(x))))

一个d= dualtree3(x水平返回三维双树小波变换到水平

例子

一个d= dualtree3(___名称,值除以前语法中的任何输入参数外,还使用名称-值对参数指定选项。

例子

一个d= dualtree3(___, ' excludeL1 ')不包括一级小波(细节)系数。排除一级小波系数可以加快算法速度,节省内存。第一级不表现出第二级及更高级别的方向选择性。双树小波变换只有在包含一级小波系数的情况下才具有完全重构性质。如果未指定此选项,或追加“includeL1”,则函数包含一级系数。

例子

全部折叠

生成一个容量数据集。绘制上面看到的数据的几个横截面。数据不是对称的x-轴或y设在。

Xl = 64;Xx = linspace(-5,5,xl);[x,y,z] = meshgrid(xx);G = (x+3*y)./(1+exp((x.²+2*y.²+z.²)-10));k = 1:16次要情节(4 4 k)冲浪(xx, xx, G (:,: 4 * k))视图(2)阴影插值函数标题(['z = 'num2str (xx (4 * k), 2)])结束

图中包含16个轴对象。标题z = -4.5的Axes对象1包含一个surface类型的对象。标题z = -3.9的Axes对象2包含一个surface类型的对象。标题z = -3.3的Axes对象3包含一个surface类型的对象。标题为z = -2.6的Axes对象4包含一个surface类型的对象。标题为z = -2的坐标轴对象5包含一个surface类型的对象。标题z = -1.3的Axes对象6包含一个surface类型的对象。标题z = -0.71的Axes对象7包含一个surface类型的对象。标题z = -0.079的Axes对象8包含一个surface类型的对象。标题z = 0.56的Axes对象9包含一个surface类型的对象。 Axes object 10 with title z = 1.2 contains an object of type surface. Axes object 11 with title z = 1.8 contains an object of type surface. Axes object 12 with title z = 2.5 contains an object of type surface. Axes object 13 with title z = 3.1 contains an object of type surface. Axes object 14 with title z = 3.7 contains an object of type surface. Axes object 15 with title z = 4.4 contains an object of type surface. Axes object 16 with title z = 5 contains an object of type surface.

计算数据的三维双树变换直到第4级。指定Hilbert Q-shift滤波器对长度为14。

[a,d] = dualtre3 (G,4,“FilterLength”14);

为选定的子带绘制一级小波系数的实部和虚部。系数具有与数据相同的方向性。虚数部分是实部的移位形式。

M = 1;k = 1:8次要情节(4 4 2 * k - 1)冲浪(真实(d {m} (:,:, 3 * k)))视图(2)阴影插值函数标题(['Re d\{1\}, n = 'int2str (3 * k)])次要情节(4 4 2 * k)冲浪(图像放大(d {m} (:,:, 3 * k)))视图(2)阴影插值函数标题(['Im d\{1\}, n = 'int2str (3 * k)])结束

图中包含16个轴对象。轴对象1的标题为R e blank d {1}, blank n blank = blank 3包含一个类型为surface的对象。坐标轴对象2,标题I m blank d {1}, blank n blank = blank 3包含一个类型为surface的对象。轴对象3与标题R e空白d{1},空白n空白=空白6包含一个类型为surface的对象。轴对象4与标题I m空白d{1},空白n空白=空白6包含一个类型为surface的对象。轴对象5与标题R e空白d{1},空白n空白=空白9包含一个类型为surface的对象。轴对象6,标题I m空白d{1},空白n空白=空白9包含一个类型为surface的对象。轴对象7与标题R e空白d{1},空白n空白=空白1 2包含一个类型为surface的对象。坐标轴对象8,标题I m blank d {1}, blank n blank = blank 1 2包含一个类型为surface的对象。轴对象9与标题R e空白d{1},空白n空白=空白1 5包含一个类型为surface的对象。 Axes object 10 with title I m blank d { 1 } , blank n blank = blank 1 5 contains an object of type surface. Axes object 11 with title R e blank d { 1 } , blank n blank = blank 1 8 contains an object of type surface. Axes object 12 with title I m blank d { 1 } , blank n blank = blank 1 8 contains an object of type surface. Axes object 13 with title R e blank d { 1 } , blank n blank = blank 2 1 contains an object of type surface. Axes object 14 with title I m blank d { 1 } , blank n blank = blank 2 1 contains an object of type surface. Axes object 15 with title R e blank d { 1 } , blank n blank = blank 2 4 contains an object of type surface. Axes object 16 with title I m blank d { 1 } , blank n blank = blank 2 4 contains an object of type surface.

对二级系数重复上述步骤。当层数增加1时,小波系数数组沿前两个维度减小一半。

M = 2;k = 1:8次要情节(4 4 2 * k - 1)冲浪(真实(d {m} (:,:, 3 * k)))视图(2)阴影插值函数标题(['Re d\{2\}, n = 'int2str (3 * k)])次要情节(4 4 2 * k)冲浪(图像放大(d {m} (:,:, 3 * k)))视图(2)阴影插值函数标题(['Im d\{2\}, n = 'int2str (3 * k)])结束

图中包含16个轴对象。轴对象1的标题为R e blank d {2}, blank n blank = blank 3包含一个类型为surface的对象。坐标轴对象2,标题I m blank d {2}, blank n blank = blank 3包含一个类型为surface的对象。轴对象3与标题R e空白d{2},空白n空白=空白6包含一个类型为surface的对象。轴对象4与标题I m空白d{2},空白n空白=空白6包含一个类型为surface的对象。轴对象5与标题R e空白d{2},空白n空白=空白9包含一个类型为surface的对象。轴对象6,标题I m空白d{2},空白n空白=空白9包含一个类型为surface的对象。轴对象7与标题R e空白d{2},空白n空白=空白1 2包含一个类型为surface的对象。坐标轴对象8,标题I m blank d {2}, blank n blank = blank 1 2包含一个类型为surface的对象。轴对象9与标题R e空白d{2},空白n空白=空白1 5包含一个类型为surface的对象。 Axes object 10 with title I m blank d { 2 } , blank n blank = blank 1 5 contains an object of type surface. Axes object 11 with title R e blank d { 2 } , blank n blank = blank 1 8 contains an object of type surface. Axes object 12 with title I m blank d { 2 } , blank n blank = blank 1 8 contains an object of type surface. Axes object 13 with title R e blank d { 2 } , blank n blank = blank 2 1 contains an object of type surface. Axes object 14 with title I m blank d { 2 } , blank n blank = blank 2 1 contains an object of type surface. Axes object 15 with title R e blank d { 2 } , blank n blank = blank 2 4 contains an object of type surface. Axes object 16 with title I m blank d { 2 } , blank n blank = blank 2 4 contains an object of type surface.

反转转换,指定相同的过滤器对长度。检查重建是否完美。

Xrec = idualtree3(a,d,“FilterLength”14);马克斯(abs (xrec (:) - g (:)))
Ans = 1.4211e-14

加载一组人类头部的核磁共振测量数据。截断数据,使其在第三维上是均匀的。计算三维双树变换,排除一级小波系数。

负载wmri[A,D] = dualtree3(X(:,:,1:26),2,“excludeL1”);

通过反转变换重构数据。将最终级别的比例系数显式设置为0。显示均匀间隔的重建图像的选择。

imrec = idualtree3(A*0,D);colormapKj = 1:9 subplot(3,3, Kj) surf(imrec(:,:,3* Kj -2))着色插值函数视图(2)轴结束

输入参数

全部折叠

输入数据,指定为真实的3-D数组。所有的三个维度x必须是偶数且大于等于4。

数据类型:|

转换级别,指定为大于或等于2且小于或等于的正整数地板(log2 (min(大小(x))))

数据类型:|

名称-值参数

的可选逗号分隔对名称,值参数。的名字参数名称和价值对应的值。的名字必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“LevelOneFilter”、“legall’,‘FilterLength’,6在级别1中使用缩放长度为5的LeGall分析滤波器和小波长度为3的LeGall分析滤波器,在级别2和更大的级别使用长度为6的Q-shift滤波器计算变换。

希尔伯特Q-shift滤波器对的长度,指定为逗号分隔的对组成“FilterLength”6、10、14、16或18中的一个。dualtree3采用正交希尔伯特q移滤波器对的长度“FilterLength”适用于级别2及以上。

数据类型:|

一级双正交分析滤波器,指定为由逗号分隔的对组成“LevelOneFilter”和字符向量或字符串。默认情况下,dualtree31级使用长度为5(缩放滤波器)和7(小波滤波器)的近对称双正交小波滤波器。

数据类型:字符|字符串

输出参数

全部折叠

最终级缩放(低通)系数,作为实值矩阵返回。

数据类型:

小波系数,以1 × -形式返回水平单元阵列。三维双树变换每层有28个小波子带。

数据类型:
复数支持:万博1manbetx是的

参考文献

[1]陈,H.和n.g.金斯伯里。“非刚性三维体的高效配准”IEEE®图像处理汇刊.第21卷,2012年1月,第262-272页。

[2] Kingsbury, n.g.“用于移不变分析和信号滤波的复小波”。应用与计算谐波分析杂志, 2001年5月,第10卷第3期,第234-253页。

在R2017a中引入