差分盒维数(differential box-counting,DBC),可以作为图像表面纹理粗糙程度的度量,因为它有很好的精确性和适用性,而且能满足计算效率和动态特性的要求。

处理流程:

对于一个M*M大小的图像,在三维空间中,(x,y)代表空间的位置,z代表其对应点的灰度值gray(x,y)。

1、 图像分块,s*s,r = s/M

2、 在每一个s*s的分块中,都有一个盒子柱s*s*s’。如果最大灰度值为G,通常为256,则G/s’ = M/s。

3、 计算每个分块的最大灰度值和最小灰度值,它们分别落在盒子k和l中,则

nr = k-l+1

4、 Nr = sum(nr), d = log(Nr) / log(1/r)

5、 对图像进行不同的分块,将最后结果进行最小二乘拟合。

QUESTION

1、 s’怎么理解?

s’表示需要多少个盒子覆盖整个灰度曲面。

2、 怎么理解灰度最大值和最小值落在盒子k和l中?

对图像进行分块,可能看成是对其按一定比例缩小的过程,对于灰度也要按照相同的比例缩小。比如分块大小为2*2,图像大小为256*256,则k = maxgray/(256/2),同样,l = mingray /(256/2)。

代码实现:

function fd=box_frac_dem(X);
% 差分盒维数
% Example:
%    X=double(imread('rice.tif'));
%    fd=box_frac_dem(X);
if size(X,1)~=size(X,2);  %M*N维图像,检查M和N是否相等
error('The size of X must NxN.');
end
B=size(X,1);
if mod(log2(B),1)>0;
error('The size of X must 2^n'); %图像的大小必须是2的N次方
end
t=log2(B); %假设图像大小为256*256,则t = 8
s=2.^(1:t); % s = 2,4,8,16,32,64,128,256 求2的幂
Nr=zeros(1,t); % nr = 0     0     0     0     0     0     0     0
for k=1:t;
d=s(k);   %设定不同的窗口大小
h=256/d; % Let B instead of 256 for the size [2^nX2^n]
for m=1:h;
for n=1:h;
A=X(d*(m-1)+[1:d],d*(n-1)+[1:d]);  %分块,存储到A
mn=min(A(1:end));   %最小灰度值
mx=max(A(1:end));  %最大灰度值
nr=fix(mx/d)-fix(mn/d)+1;  %取整运算
Nr(k)=Nr(k)+nr;
end
end
end
r=B./s;
p=polyfit(log10(r),log10(Nr),1); %最小二乘拟合
fd=p(1);

一维空间的分数维大于1.0小于2.0,二维空间的分数为大于2.0小于3.0。

参考文献:

An efficient differential box-counting approach to compute fractal dimension of image

差分盒维数的计算方法相关推荐

  1. OpenCV图像处理(3)——盒维数计算

    计算分形盒子维 //************************// //计算分形盒子维 //*** yangxin_szu 2013_03_28 ***// //valarray与 MFC 有一 ...

  2. matlab盒子分形维数_分形:盒子维数

    今天主要想说的是,分形中的差分盒子维数的原理,基于分形的基础概念就不在这里说啦. 分形维数可以用于定量描述图像表面的空间复杂程度,能够定量的表现图像的纹理特征. 采用不同的维数进行纹理特征描述时,精度 ...

  3. 矩阵的迹\矩阵的秩\伴随矩阵\共轭矩阵,基底、维数与秩,相对某个基底的坐标计算方法

    矩阵的迹(Trace)    n × n n\times n n×n的方阵A的n个对角线元素的和称为方阵A的迹,记作tr(A). A = ( a 11 ⋯ a 1 n ⋮ ⋮ a n 1 ⋯ a n ...

  4. 机器学习隐私研究新进展:数据增强风险被低估,新算法“降服”维数依赖

    编者按:如今,数据是推动人工智能创新的核心要素.但数据的安全和隐私问题限制了数据充分释放其潜能.一直以来,微软都倡导打造负责任的人工智能,并正在开发和利用多种技术以提供更强大的隐私保护.确保数据安全. ...

  5. 机器学习:维数约减算法PCA(主成分分析法)原理、实现与应用

    文章目录 算法目标 预处理 算法过程 逆过程 主成分数kkk的选取 应用 算法目标 PCA的目标就是实现维数约减,即在尽可能保留信息的同时减少数据的维度.通过维数约减,我们可以实现数据压缩节省存储空间 ...

  6. sierpinski三角形的维数_谢宾斯基三角形的几种生成方法

    简介 谢宾斯基三角形(Sierpinski triangle)是一种分形,由波兰数学家谢宾斯基在1915年提出.它是一种自相似集. 几种生成方法 方法一:去掉中心 取一个实心的三角形(多数用等边三角形 ...

  7. 分类问题中的“维数灾难” - robotMax

    分类问题中的"维数灾难" - robotMax 在看机器学习的论文时,经常会看到有作者提到"curse of dimensionality",中文译为" ...

  8. 解决softmax后列和不为1的bug记录 :问题原因为 s为1维的,来除torch.exp(x)(64x10)时候,维数不对应,需要将s也要转换为2维的即维数为(64x1),才可以广播按行对应相除

    def softmax(x):     ## TODO: Implement the softmax function here     #print("torch.exp(x)=" ...

  9. 对tf.reduce_mean API的理解就是求平均值,reduce指的是一串数据求平均值后维数降低了,可不是吗,一串向量变成了一个数,维数自然降低了

    tf.math.reduce_mean(input_tensor, axis=None, keepdims=False, name=None ) 对tf.reduce_mean的理解就是求平均值,re ...

最新文章

  1. MegEngine 框架设计
  2. 【青少年编程】【二级】绘制方形螺旋
  3. Which of the following statement(s) equal(s) value 1 in C programming language?
  4. PAT甲级题目翻译+答案 AcWing(哈希表)
  5. iOS应用内购买(In App Purchase)总结
  6. 设计一个具有等待队列的连接池
  7. iframe css练习
  8. 前端学习(1556):ng-blnd指令
  9. 淘宝发布年度十大同款:钟南山哑铃、奥特曼变身器、嫦娥五号暖宝宝入选
  10. Ms sql pivot unpivot
  11. 拓端tecdat|R语言使用随机技术差分进化算法优化的Nelson-Siegel-Svensson模型
  12. 拓端tecdat|R语言文本主题模型之潜在语义分析(LDA:Latent Dirichlet Allocation)
  13. 【新手基础教程】maix asr(自动语音识别)
  14. 学python用linux_用树莓派学习Linux及Python真的高效吗?
  15. 自训练和半监督学习介绍
  16. 在树莓派开发板上进行ROS开发+语音交互系统设计
  17. 限制性立方样条(Restricted Cubic Spline)
  18. RK3288 资源汇总
  19. 什么是 .com 域名?含义和用途又是什么?
  20. Java 基本数据类型 编码方式(小记1.7)

热门文章

  1. VLC如何播放灵派直播编码器SRT流
  2. Mac安装虚拟机(parallels desk或者VmwareFusion)搭建Openstack服务器管理,安装开源的 pritunl 进行服务器连接
  3. 少女前线立绘拆包、合成教程
  4. 分享个堡垒前线辅助脚本,能快速升级刷金币的工具
  5. 2022年热门职业排行
  6. 特别好用的网站、APP备份下
  7. 创意小游戏《蛇它虫》团队专访:玩法画面均是新意
  8. linux批量结束进程
  9. 【blender雕刻】物体模式下应用缩放后法线颠倒
  10. PHP 服务器端解决axios 跨域问题