24小时热门版块排行榜    

查看: 1099  |  回复: 2

华丽家族

新虫 (初入文坛)

[交流] 图片分形维数计算 已有2人参与

如何用盒子法计算图片分形维数?具体流程?

发自小木虫Android客户端
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feixiaolin

荣誉版主 (文坛精英)

优秀版主


小木虫: 金币+0.5, 给个红包,谢谢回帖
我以前发过C、matlab资源

发自小木虫Android客户端
2楼2018-05-05 11:02:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

metlab2018

新虫 (初入文坛)


小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
2楼: Originally posted by feixiaolin at 2018-05-05 11:02:21
我以前发过C、matlab资源

老师,我有个分形维数的程序有些地方不明白,想请教一下您!小弟不胜感激!
A=imread('e:\1.jpg');% 读入图像,并转化为矩阵
t=graythresh(A);% 计算二值化阈值
B=im2bw(A,t);% 输出图像的二值化矩阵%
image(B);
[x,y]=size(B); u=1;% 图像尺寸
V=nonzeros(B);
Area=sum(V)/(x*y);
for side_length=2:110% 定义观测尺度,即正方形(盒子)边长
Hang=mod(x,side_length);
Lie=mod(y,side_length);
C=B(1:x-Hang,1:y-Lie);% 若图像大小“x×y”不能被正方形%“side_length ×side_length”整除,则舍去多余的“边幅”部分;
[m,n]=size(C);
X=reshape(C,side_length, numel(C)/side_length);interim1=sum(X);% 计数有像素(“1”)的盒子数Y=reshape(interim1,side_length,numel(interim1)/side_length);
interim2=sum(Y);
Number=numel(nonzeros(interim2));
interim=sum(interim2');%当盒子边长为side_length时,统计出各个 % 盒子内的“1”值之和“interim2”,以及所有盒子“1”值总和“interim”,
W(u,1)= Number;
u=u+1;
endy=log(W);
x=log(2:110);
plot(x,y,'o');
Dbox=polyfit(x',y,1)% 线性方程斜率的绝对值即为盒子维数
B=nonzeros(B); Area % 附带给出图形(像素为1),占整个图幅的面积比例

上面是分形维数的程序,但是有几个地方不明白,side_length=2:110% 定义观测尺度,即正方形(盒子)边长,这个110是什么意思?????还有2应该是盒子边长吧?
3楼2018-09-27 19:18:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 华丽家族 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见