• 基于WTMM算法的图像多重分形谱计算matlab仿真


    目录

    1.算法运行效果图预览

    2.算法运行软件版本

    3.部分核心程序

    4.算法理论概述

    4.1、WTMM算法概述

    4.2、WTMM算法原理

    4.2.1 二维小波变换

    4.2.2 模极大值检测

    4.2.3 多重分形谱计算

    5.算法完整程序工程


    1.算法运行效果图预览

    2.算法运行软件版本

    matlab2022a

    3.部分核心程序

    1. .........................................................................
    2. %%
    3. %对保存的多张图片读取并调用WTMM方法求图像的多重分形谱,对得到的结果保存其特征值
    4. if sel == 1
    5. k = 1;
    6. for i=1:2*n1*n2;
    7. if i<=n1*n2
    8. k = i;
    9. folder = 'save_images\1\';
    10. lists = dir('save_images\1\*.jpg');
    11. end
    12. if i<=2*n1*n2 & i>n1*n2
    13. k = i - n1*n2;
    14. folder = 'save_images\2\';
    15. lists = dir('save_images\2\*.jpg');
    16. end
    17. i
    18. %read an image
    19. I = imread(fullfile(folder,lists(k).name));
    20. %调用分形函数
    21. [qt,rt,ft,fft,Dt,feature_data] = func_Wavelet_multifractal(I);
    22. q{i} = qt;
    23. r{i} = rt;
    24. f{i} = ft;
    25. ff{i} = fft;
    26. D{i} = Dt;
    27. Feature{i} = feature_data;
    28. end
    29. save result.mat q r f ff D Feature
    30. K = 120;
    31. figure;
    32. plot(r{K},f{K},'-r>',...
    33. 'LineWidth',1,...
    34. 'MarkerSize',6,...
    35. 'MarkerEdgeColor','k',...
    36. 'MarkerFaceColor',[0.9,0.9,0.0]);
    37. xlabel('奇异指数a');
    38. ylabel('多重分行谱f(a)')
    39. grid on;
    40. figure;
    41. plot(q{K}+2,D{K},'-r>',...
    42. 'LineWidth',1,...
    43. 'MarkerSize',6,...
    44. 'MarkerEdgeColor','k',...
    45. 'MarkerFaceColor',[0.9,0.9,0.0]);
    46. xlabel('q');
    47. ylabel('D(q)')
    48. grid on;
    49. figure
    50. plot(q{K},r{K},'-r>',...
    51. 'LineWidth',1,...
    52. 'MarkerSize',6,...
    53. 'MarkerEdgeColor','k',...
    54. 'MarkerFaceColor',[0.9,0.9,0.0]);
    55. title('q和阿尔法a');
    56. xlabel('权重因子q');
    57. ylabel('奇异指数a');
    58. grid on;
    59. figure;
    60. plot(q{K},f{K},'-r>',...
    61. 'LineWidth',1,...
    62. 'MarkerSize',6,...
    63. 'MarkerEdgeColor','k',...
    64. 'MarkerFaceColor',[0.9,0.9,0.0]);
    65. title('q和f(a) ');
    66. xlabel('权重因子q');
    67. ylabel('多重分行谱f(a)');
    68. grid on;
    69. end
    70. %%
    71. %调用分类器对特征参数进行分类
    72. if sel == 0
    73. load result.mat %q r f ff Feature
    74. K = 120;
    75. figure;
    76. plot(r{K},f{K},'-r>',...
    77. 'LineWidth',1,...
    78. 'MarkerSize',6,...
    79. 'MarkerEdgeColor','k',...
    80. 'MarkerFaceColor',[0.9,0.9,0.0]);
    81. xlabel('奇异指数a');
    82. ylabel('多重分行谱f(a)')
    83. grid on;
    84. figure;
    85. plot(q{K}+2,D{K},'-r>',...
    86. 'LineWidth',1,...
    87. 'MarkerSize',6,...
    88. 'MarkerEdgeColor','k',...
    89. 'MarkerFaceColor',[0.9,0.9,0.0]);
    90. xlabel('q');
    91. ylabel('D(q)')
    92. grid on;
    93. figure
    94. plot(q{K},r{K},'-r>',...
    95. 'LineWidth',1,...
    96. 'MarkerSize',6,...
    97. 'MarkerEdgeColor','k',...
    98. 'MarkerFaceColor',[0.9,0.9,0.0]);
    99. title('q和阿尔法a');
    100. xlabel('权重因子q');
    101. ylabel('奇异指数a');
    102. grid on;
    103. figure;
    104. plot(q{K},f{K},'-r>',...
    105. 'LineWidth',1,...
    106. 'MarkerSize',6,...
    107. 'MarkerEdgeColor','k',...
    108. 'MarkerFaceColor',[0.9,0.9,0.0]);
    109. title('q和f(a) ');
    110. xlabel('权重因子q');
    111. ylabel('多重分行谱f(a)');
    112. grid on;
    113. for i = 1:length(Feature)
    114. P(i) = Feature{i}(3);
    115. end
    116. T = [1*ones(1,length(Feature)/2),2*ones(1,length(Feature)/2)];
    117. t1 = clock; %计时开始
    118. net = fitnet(65);
    119. net.trainParam.epochs = 1000; %设置训练次数
    120. net.trainParam.goal = 0.0001; %设置性能函数
    121. net.trainParam.show = 1; %每10显示
    122. net.trainParam.Ir = 0.005; %设置学习速率
    123. net = train(net,P,T); %训练BP网络
    124. datat = etime(clock,t1);
    125. Nets = net;
    126. view(Nets);
    127. figure;
    128. plot(P,'b-*');
    129. y = sim(net,P);
    130. figure;
    131. stem(y,'-bs',...
    132. 'LineWidth',1,...
    133. 'MarkerSize',6,...
    134. 'MarkerEdgeColor','k',...
    135. 'MarkerFaceColor',[0.9,0.0,0.0]);
    136. hold on
    137. plot(T,'-mo',...
    138. 'LineWidth',1,...
    139. 'MarkerSize',6,...
    140. 'MarkerEdgeColor','k',...
    141. 'MarkerFaceColor',[0.5,0.9,0.0]);
    142. hold on
    143. legend('预测数据','实际数据');
    144. title('输出1为第一类,输出2为第二类(即可对比实际的健康部分和肿瘤部分)');
    145. disp('预测正确率');
    146. error = 0;
    147. for i = 1:length(y)
    148. if i <= length(y)/2
    149. if y(i) > 1.5
    150. error = error + 1;
    151. end
    152. else
    153. if y(i) < 1.5
    154. error = error + 1;
    155. end
    156. end
    157. end
    158. 1-error/length(y)
    159. end
    160. 17_003m

    4.算法理论概述

            基于WTMM算法的图像多重分形谱计算是一种利用小波变换模极大值(WTMM)方法,对图像进行多重分形分析的方法。下面将详细介绍这种方法的原理和数学公式。

    4.1、WTMM算法概述

           分形理论是一种研究自然界中不规则、复杂现象的数学工具,而多重分形则是分形理论的一个重要分支,用于描述具有不同奇异程度的分形结构。在图像处理中,多重分形分析可以帮助我们更好地理解图像的纹理、边缘等特征,以及它们在不同尺度下的表现。

           WTMM算法是一种基于小波变换模极大值的方法,用于计算图像的多重分形谱。该方法主要利用小波变换对图像进行多尺度分解,提取出图像在不同尺度下的边缘信息。然后,通过对这些边缘信息进行统计分析,计算出图像的多重分形谱。

    具体来说,WTMM算法的计算步骤如下:

    1. 对图像进行二维小波变换,得到一系列小波系数。
    2. 对每个尺度下的小波系数进行模极大值检测,提取出图像的边缘信息。
    3. 对提取出的边缘信息进行统计分析,计算出图像的多重分形谱。

    4.2、WTMM算法原理

    WTMM算法的数学公式主要包括以下几个部分:

    4.2.1 二维小波变换

           对图像f(x,y)进行二维小波变换,可以得到一系列小波系数Wf(x,y),其中下标f表示小波变换的类型,如Haar小波、Daubechies小波等。二维小波变换的数学公式可以表示为:

    Wf(x,y)=∫∫f(u,v)ψf(x−u,y−v)dudvWf(x,y) = \int \int f(u,v) \psi_f(x-u,y-v) du dvWf(x,y)=∫∫f(u,v)ψf​(x−u,y−v)dudv

    其中,ψf(x,y)是小波基函数。

    4.2.2 模极大值检测

           对每个尺度下的小波系数进行模极大值检测,可以提取出图像的边缘信息。具体地,对于每个像素位置(x,y),如果满足以下两个条件:

    |Wf(x,y)|≥|Wf(x+1,y)|,|Wf(x,y)|≥|Wf(x−1,y)|,|Wf(x,y)|≥|Wf(x,y+1)|,|Wf(x,y)|≥|Wf(x,y−1)||W_f(x,y)| \geq |W_f(x+1,y)|, |W_f(x,y)| \geq |W_f(x-1,y)|,|W_f(x,y)| \geq |W_f(x,y+1)|, |W_f(x,y)| \geq |W_f(x,y-1)||Wf​(x,y)|≥|Wf​(x+1,y)|,|Wf​(x,y)|≥|Wf​(x−1,y)|,|Wf​(x,y)|≥|Wf​(x,y+1)|,|Wf​(x,y)|≥|Wf​(x,y−1)|

    则称该像素位置为模极大值点。

    4.2.3 多重分形谱计算

          通过对提取出的边缘信息进行统计分析,可以计算出图像的多重分形谱。具体地,可以用以下公式计算多重分形谱:

    α=lim⁡ε→0log⁡|Wf(x,y)|log⁡ε\alpha = \lim_{\varepsilon \to 0} \frac{\log |W_f(x,y)|}{\log \varepsilon}α=limε→0​logεlog⁡|Wf​(x,y)|​

           其中,ε是小波变换的尺度参数,α是奇异指数,用于描述图像在不同尺度下的奇异程度。通过对所有模极大值点的奇异指数进行统计分析,可以得到图像的多重分形谱。

    5.算法完整程序工程

    OOOOO

    OOO

    O

  • 相关阅读:
    VMware16.1.2安装及密钥
    Python turtle 模块可以编写游戏,是真的吗?
    【安全】网络安全态势感知
    金仓数据库KingbaseES安全指南--6.13. 关于身份验证的常见问题
    UCI手写数字的数据降维
    协议(网络协议)
    SQL中WITH RECURSIVE的用法
    一个未经压缩的图片(bmp)的大小
    如何与ChatGPT愉快地聊天
    java图片压缩库调研
  • 原文地址:https://blog.csdn.net/aycd1234/article/details/133721629