主要内容

三维数据的小波分析

这个例子展示了如何使用三维小波分析工具分析三维数据,以及如何沿着给定的切片显示低通和高通组件。这个例子集中在磁共振图像上。

这种分析的一个关键特征是跟踪图像的最优,或至少是一个良好的基于小波的稀疏性,即足以用于诊断质量重建的最小转换系数百分比。

为了说明这一点,我们保持3D MRI的近似,以显示复杂性的降低。如果从最大的变换系数对图像进行变换和重建,并由医学专家评估图像质量的清晰度,则结果可以得到改善。

我们将看到,小波变换对大脑图像的有效和准确的重建只涉及5-10%的系数。

加载和显示3D MRI数据

首先,加载wmri.mat这个文件是由MATLAB®自带的MRI数据集构建的。

负载wmri

我们现在显示一些沿着原始大脑数据的z方向的切片。

地图=粉色(90);idxImages = 1:3:大小(X, 3);图(“DefaultAxesXTick”[],“DefaultAxesYTick”[],...“DefaultAxesFontSize”8“颜色”' w ') colormap(地图)k = 1:9 j = idxImages(k);次要情节(3 3 k)图像(X (:,:, j))包含([“Z =”int2str (j)))如果k = = 2标题(“一些沿着原始大脑数据z方向的切片”结束结束

图中包含9个轴对象。axis对象1包含一个image类型的对象。沿着原始大脑数据的z方向的一些切片包含了一个类型为image的对象。axis对象3包含一个image类型的对象。axis对象4包含一个image类型的对象。axis对象5包含一个类型为image的对象。axis对象6包含一个image类型的对象。axis对象7包含一个image类型的对象。axis对象8包含一个image类型的对象。axis对象9包含一个image类型的对象。

现在我们切换到y方向切片。

Perm = [1 3 2];XP =排列(X,烫);图(“DefaultAxesXTick”[],“DefaultAxesYTick”[],...“DefaultAxesFontSize”8“颜色”' w ') colormap(地图)k = 1:9 j = idxImages(k);次要情节(3 3 k)图像(XP (:,:, j))包含([“Y =”int2str (j)))如果k = = 2标题('沿着y方向的一些切片'结束结束

图中包含9个轴对象。axis对象1包含一个image类型的对象。沿着y方向的一些切片包含一个类型为image的对象。axis对象3包含一个image类型的对象。axis对象4包含一个image类型的对象。axis对象5包含一个类型为image的对象。axis对象6包含一个image类型的对象。axis对象7包含一个image类型的对象。axis对象8包含一个image类型的对象。axis对象9包含一个image类型的对象。

清晰的XP

多层三维小波分解

计算3级三维数据的小波分解。

n = 3;%分解水平w =“sym4”近对称子波WT = wavedec3 (X n w);%多级三维小波分解。

多层三维小波重构

从系数、近似值和等级1到3的细节重建。

=细胞(1,n);D =细胞(1,n);A{k} = waverec3(WT,“一个”、k);%近似值(低通分量)D {k} = waverec3 (WT,' d '、k);%详细信息(高通组件)结束

检查重建是否完美。

呃= 0 (1,n);E = double(X)-A{k}-D{k};犯错(k) = max (abs (E (:)));结束disp (err)
1.0e-09 * 0.3043 0.3043 0.3043

显示低通和高通组件

沿着z方向重建的近似和细节如下所示。

nbIMG = 6;idxImages_New = [1 7 10 16 19 25];ik = 1: iimg j = idxImages_New(ik);图(“DefaultAxesXTick”[],“DefaultAxesYTick”[],...“DefaultAxesFontSize”8“颜色”' w ') colormap(地图)labstr = [int2str(K)]:n' - z = 'int2str (j)];次要情节(2 n, k)图像({k} (:,:, j))包含([“一个”labstr])如果k = = 2标题([“1到3级的近似和细节-切片=”num2str (j)))结束次要情节(2 n, k + n)显示亮度图像(abs (D {k} (:,:, j)))包含([' D 'labstr])结束结束

图中包含6个轴对象。axis对象1包含一个image类型的对象。axis对象2包含一个image类型的对象。轴对象3的标题近似和细节在级别1至3 -切片= 1包含类型为图像的对象。axis对象4包含一个image类型的对象。axis对象5包含一个类型为image的对象。axis对象6包含一个image类型的对象。

图中包含6个轴对象。axis对象1包含一个image类型的对象。axis对象2包含一个image类型的对象。轴对象3的标题近似和细节在级别1至3 -切片= 7包含类型为图像的对象。axis对象4包含一个image类型的对象。axis对象5包含一个类型为image的对象。axis对象6包含一个image类型的对象。

图中包含6个轴对象。axis对象1包含一个image类型的对象。axis对象2包含一个image类型的对象。轴对象3的标题近似和细节在级别1至3 -切片= 10包含类型为图像的对象。axis对象4包含一个image类型的对象。axis对象5包含一个类型为image的对象。axis对象6包含一个image类型的对象。

图中包含6个轴对象。axis对象1包含一个image类型的对象。axis对象2包含一个image类型的对象。轴对象3的标题近似和细节在级别1至3 -切片= 16包含一个类型为图像的对象。axis对象4包含一个image类型的对象。axis对象5包含一个类型为image的对象。axis对象6包含一个image类型的对象。

图中包含6个轴对象。axis对象1包含一个image类型的对象。axis对象2包含一个image类型的对象。轴对象3的标题近似和细节在级别1至3 -切片= 19包含类型为图像的对象。axis对象4包含一个image类型的对象。axis对象5包含一个类型为image的对象。axis对象6包含一个image类型的对象。

图中包含6个轴对象。axis对象1包含一个image类型的对象。axis对象2包含一个image类型的对象。轴对象3的标题近似和细节在级别1至3 -切片= 25包含一个类型为图像的对象。axis对象4包含一个image类型的对象。axis对象5包含一个类型为image的对象。axis对象6包含一个image类型的对象。

2级原始数据和近似值的3D显示

3D原始数组X的大小为(128 x 128 x 27) = 442368.我们可以用3D显示器来显示它。

图(“DefaultAxesXTick”[],“DefaultAxesYTick”[],...“DefaultAxesFontSize”8“颜色”' w ') xr = x;Ds = smooth3 (XR);童燕齐=补丁(等值面(Ds, 5),“FaceColor”(1。主板市场),“EdgeColor”“没有”);hcap =补丁(isocaps (XR, 5),“FaceColor”的插值函数“EdgeColor”“没有”);colormap (map) daspect (gca,[1 1。4])lightangle (305, 30);无花果= gcf;fig.Renderer =“zbuffer”;照明冯氏isonormals hcap (Ds,童燕齐)。AmbientStrength = 6;童燕齐。SpecularColorReflectance = 0;童燕齐。SpecularExponent = 50;甘氨胆酸ax =;斧子。视图= (215,30);斧子。盒=“上”;轴标题(“原始数据”

图中包含一个轴对象。标题为Original Data的axes对象包含2个patch类型的对象。

第2级近似系数的三维阵列,其尺寸为(22 x 22 x 9) = 4356,小于原始数据规模的1%。利用这些系数,我们可以重建A2,即第2级的近似,这是对原始三维阵列的一种压缩。A2也可以用3D显示器显示。

图(“DefaultAxesXTick”[],“DefaultAxesYTick”[],...“DefaultAxesFontSize”8“颜色”' w ') xr = a {2};Ds = smooth3 (XR);童燕齐=补丁(等值面(Ds, 5),“FaceColor”(1。主板市场),“EdgeColor”“没有”);hcap =补丁(isocaps (XR, 5),“FaceColor”的插值函数“EdgeColor”“没有”);colormap (map) daspect (gca,[1 1。4])lightangle (305, 30);无花果= gcf;fig.Renderer =“zbuffer”;照明冯氏isonormals hcap (Ds,童燕齐)。AmbientStrength = 6;童燕齐。SpecularColorReflectance = 0;童燕齐。SpecularExponent = 50;甘氨胆酸ax =;斧子。视图= (215,30);斧子。盒=“上”;轴标题(“近似于第2级”

图中包含一个轴对象。级别2的标题为“近似”的axis对象包含2个类型为patch的对象。

总结

这个例子展示了如何使用三维小波函数来分析三维数据。小波分析应用,waveletAnalyzer,让您更容易地执行相同的步骤,例如在不同的切片上使用动画模拟3D可视化。