具体的算法讲解可以去这里看:Sandbox法计算分形维数

function [r,average_num,DIMENSION,R_2] = sdbox_dim(varargin)
%% [scale,num,dim,r^2] = sandbox_dim(Image, NPoints)
% 该程序的功能是计算SandBox分形维数
%% 参数输入:1.二值图像矩阵;2.不同尺度的点数(并非最终点数,后面会调整)
Image = varargin{1};
NPoints = varargin{2};
if NPoints~=fix(NPoints)error('NPoints应为一个整数')
end
%% 计算质心,以及距质心最近边界的距离
[row,column] = size(Image);
points = find(Image==1);
[temp1,temp2] = ind2sub(size(Image), points);
Index_all = cat(2,temp1,temp2);
mass_center_r = fix(sum(Index_all(:,1))/size(Index_all,1));
mass_center_c = fix(sum(Index_all(:,2))/size(Index_all,1));
L_max = min(min([mass_center_r-1,row-mass_center_r]),min([mass_center_c-1,column-mass_center_c]));
%% 获得距离各个边界L_max长度的区域内的所有非零点的坐标
roi = Image(L_max+1:row-L_max,L_max+1:column-L_max);
Origins = find(roi==1);
[temp_x,temp_y] = ind2sub(size(roi), Origins);
Index = cat(2,temp_x,temp_y);
Index(:,1) = Index(:,1) + L_max;
Index(:,2) = Index(:,2) + L_max;
%% NPoints大于0时,尺度之间的递进关系为以10为底的幂次关系,否则为以1为步长的线性关系
Lmax = min(round(size(Image)./2));
if NPoints > 0logL = log10(1) : log10(Lmax)/NPoints : log10(Lmax);pLs = unique(round(10.^logL));
elsepLs = 1 : Lmax;
end
%% 计算各个起始点下不同尺度的盒子包含的像素点数,将同一尺度的盒子包含的像素点数相加记录在第一列
% 将该尺度出现的频次记录在第二列
num = [0 0];
for i = 1:size(Index,1)m = Index(i,1);n = Index(i,2) ;edge = min(min([m-1,size(Image,1)-m]),min([n-1,size(Image,2)-n]));Ltmp = pLs(pLs<=edge);for j = 1 : numel(Ltmp)L = Ltmp(j);subA = Image(m-L:m+L,n-L:n+L);if (size(num,1)>=L)num(L,1) = sum(sum(subA)) + num(L,1);num(L,2) = 1 + num(L,2);elsenum(L,1) = sum(sum(subA));num(L,2) = 1;endend
end
%% 保留有计数的scale,并将数到的像素点求平均
r = find(num(:,1)~=0);
nozero_num = num(num(:,1)~=0,:);
average_num = nozero_num(:,1)./nozero_num(:,2);
%% 曲线拟合求取斜率并画图显示
figure
[R_2,DIMENSION,B] = regression(log(r)',log(average_num)');
line_fit = DIMENSION*log(r)+B;
scatter(log(r),log(average_num));
hold on
plot(log(r),line_fit);
end

Matlab实现Sandbox方法计算分形维数相关推荐

  1. 从分形图片用Box counting方法计算分形维数的一个例子

    点击打开链接 l dimension of natural objects from digital images up vote42down votefavorite 18 This is a us ...

  2. 奥村方法计算机仿真,实验3-Okumura-Hata方法计算计算机仿真.docx

    文档介绍: . 课程实验报告 课程 3G移动通信实验 学院 通信学院 专业 通信工程 班级 13083414 学号 13081403 学生姓名 李倩 实验Okumura-Hata方法计算机仿真 [实验 ...

  3. 奥村模型计算机仿真,实验3Okumura-Hata方法计算计算机仿真.pdf

    课 程 实 验 报 告 课程 3G 移动通信实验 学院 通信学院 专业 通信工程 班级 学号 学生姓名 李倩 实验 Okumura-Hata 方法计算机仿真 [实验目的] 加深对奥村模型的理解: 能够 ...

  4. 计算机仿真实训操作开车步骤,实验3 Okumura-Hata方法计算计算机仿真

    <实验3 Okumura-Hata方法计算计算机仿真>由会员分享,可在线阅读,更多相关<实验3 Okumura-Hata方法计算计算机仿真(4页珍藏版)>请在人人文库网上搜索. ...

  5. qr带原点位移 matlab,qr方法计算中小型矩阵的全部特征值.doc

    qr方法计算中小型矩阵的全部特征值.doc 计算方法课程设计报告学生姓名学号学院班级题目QR方法计算中小型矩阵的全部特征值指导教师职称教授讲师实验师2015年12月31日目录目录I一.选题背景111Q ...

  6. 电动车动力性计算MATLAB程序,一种基于MATLAB的电动汽车经济性计算的模拟仿真方法与流程...

    技术领域 本发明属于电动汽车经济性计算的模拟仿真方法,具体涉及一种基于MATLAB的电动汽车经济性计算的模拟仿真方法. 背景技术: 电动汽车经济性(续驶里程)计算的传统方法分为两种,其一为使用exce ...

  7. dfa matlab用法,关于使用MF-DFA方法计算广义Hurst指数的MATLAB操作问题

    我在论坛上复制了一个代码,是使用MF-DFA方法计算广义Hurst指数的,但不知道需填入的各个变量的名称,我是零基础,但任务时间很紧,来不及现学,所以想先用来算个数,请各位高手指教,不胜感激! 请问括 ...

  8. matlab蒙特卡罗方法求体积_实验二-蒙特卡罗方法计算三维体积

    班级: 学号: 姓名: 实验时间: 2014 年 月 日 实验 项目 实验二 蒙特卡罗方法计算三维体积 所属 课程 数学实验 实 验 目 的 了解蒙特卡罗方法的原理,掌握随机数使用技术. 实 验 内 ...

  9. 欧式期权matlab编码蒙特卡罗方法,基于MATLAB的金融工程方法与实践第七章 基于蒙特卡洛方法的期权定价.ppt...

    蒙特卡洛的优缺点 MCMC方法的优点 分布假设更一般,描述市场因素可能变化的统计分布既可以是正态.对数正态的,也可以是带跳的扩散分布.t分布等. 随机生成风险因素的各种各样的未来假想情景,可在模型中融 ...

  10. gps数据处理matlab,基于Matlab的数据处理方法在GPS高程拟合中的应用

    基于Matlab的数据处理方法在GPS高程拟合中的应用 在分析GPS高程异常拟合模型实质的基础上,结合工程实例,顾及地球重力场的空间连续性特点,运用Matlab中的拟合插值函数Griddata等进行高 ...

最新文章

  1. Wiz开发 定时器的使用与处理
  2. 《C语言编程初学者指南》一2.9 理解运算符优先级
  3. CSS——如何清除浮动
  4. mkimage command not found
  5. Spoken English-口语-单词背诵 3步法
  6. linux下expdp定时备份_Linux 自动备份 Oracle 数据库 Shell 脚本
  7. Java抓取电脑屏幕
  8. LeetCode(221) Maximal Square
  9. python手机号信息查询身份证_Python使用xpath爬虫查询身份证信息和手机号信息并写入Excel表格...
  10. 山海经电子书古文/翻译白话文版发布,免费电子书。
  11. Hbase的table存储详解
  12. jquery填充列表内容
  13. 软件测试实例-如何测试一个杯子
  14. android 定位 闪退_Unity3D研究院之全方位定位Android闪退(九十三)
  15. uml的九种图例分析
  16. C++排序算法之归并排序
  17. 北航计算机学院非全日制双证研究生,北京航空航天大学有非全日制双证专业吗?...
  18. 区分指向数组元素的指针、指向数组的指针、指针数组
  19. Git问题:右键没有Git Bash Here的解决办法
  20. 为什么电源中经常用肖特基二极管

热门文章

  1. 用Excel做数据地图
  2. css解决打印不加粗BUG
  3. AI人工智能282G教学视频+PPT
  4. 大电流dcdc降压芯片20a_电源篇 - 降压电路(DCDC,非隔离
  5. ui自动化模拟键盘按键
  6. 论文阅读:More Data, More Relations, More Context and More Openness:A Review and Outlook for RE关系抽取的回顾与展望
  7. 蚂蚁金服测试开发工程师面试
  8. 地图生成工具使用步骤
  9. matlab 线性分析,线性系统稳定性分析的MATLAB分析方法.doc
  10. COAP协议全面分析