我正在使用2D小波变换的Matlab项目中。我正在研究一种小波变换模量极大值方法(WTMM)。我使用Matlab小波工具箱。我对小波和WTMM方法有一些疑问:-我使用2D离散小波变换(也使用dwt2和wavedec2),但我不太了解dwt2输出近似值/垂直/水平/对角线的作用。我看到它们是低通和高通滤波器(https://www.clear.rice.edu/elec301/Projects02/artSpy/dwt.html)的结果,但是我应该使用哪个输出在图像上找到局部最大值?
[A,H,V,D] = dwt2(X,'wname')
我还在我的项目中使用多重分形形式。为了绘制比例函数,我必须首先绘制分区函数(根据本文的http://www.scholarpedia.org/article/Wavelet-based_multifractal_analysis,在“ WTMM方法”部分中)。但是我不知道该如何正确绘制。这是我的代码:
[A,H,D,V] = dwt2(im,'haar');
im_max = imregionalmax(abs(A)); % Modulus Maxima of the wavelet
Transform, using the Approximation
wavelet
figure, imshow(im_max);
%% Partition Function Z
Z = 0; % Initialization of the partition function
for q = -5:5
Z = Z + abs(im_max).^q ;% Definition of the partition function.
%Certainly wrong, I think q can't be the variable for the loop and
% im_max is not the correct input in abs.
end
a = 2; % scale factor. It is supposed to vary, I put it to 2 just for
% tests
tau = log(z)/log(a); % scaling function, in function of q according to
% the article
plot(tau,q);
感谢您的帮助
我只是偶然地偶然发现了您的问题,并强调了一些基本的内容:WTMM要求您计算连续小波,它不能用于离散基础。例如,您可以使用简单的墨西哥帽或高斯小波的三阶导数,并确保结果不会有太大变化。至于分区函数,您可能只选择了整个域上的小波模量之和。然而,事实表明,这种选择比计算最大值之和不稳定,特别是对于负q而言。因此,您需要采用整个比例尺“ a”,从奈奎斯特逆频率说出域大小的十分之一,找到每个范围的局部最大值,然后丢弃那些不能跨比例尺线连接的最大值。这有点棘手,这使得计算非常麻烦。当您达到越来越精细的比例时,就会出现越来越多的线条。您可以在[-1:6]中的q之类的合理范围内对每个q重复此操作,较小的q通常会给出不可靠的结果。一旦获得了这样的Z(a,q),就检查比例子范围是否有良好的缩放行为。幂律指数通常表示为tau(q):Z〜a ^ tau。这是自由能的热力学模拟。如果tau(q)接近直线,则表示为一个分形;如果tau(q)接近抛物线,则表示为多重。如果还有其他问题,则应两次执行上述步骤。为了获得频谱D(h)(或f(alpha)),除了进行勒让德变换外,还有很多分析工作,这在计算上也很不稳定。希望对您有帮助很长时间。