fractal1.m

来自「是用分形盒维数算图像的分维数」· M 代码 · 共 51 行

M
51
字号
clear all;
IG = imread('D:\mr_06.jpg');
BW=im2bw(IG,0.36);
figure;
imshow(BW);
title('Binary Image');
B=size(BW,1);%IG的大小
if mod(log2(B),1)>0;
    error('The size of image must be 2^n');
end
t=log2(B);%t为2的t次方
s=2.^(1:t);%s为盒子大小
bn=(1:t);
%Nr=zeros(1,t);%t阶零矩阵
r=B./s; %盒子个数
sum=0;
figure;
for i=1:t; %盒子从2*2到2^t*2^t
   d=s(i); %d为s(i)盒子大小
   h=B/d;%对应某个盒子大小的所有盒子个数
   Bx=zeros(d);
   for m=1:h; %找到覆盖的盒子个数
       for n=1:h; 
           A=BW(d*(m-1)+d,d*(n-1)+d);
           if(A~=Bx)
               sum=sum+1;
           end
           %mn=min(A(1:end)); 
           %mx=max(A(1:end)); 
           %nr=fix(mx/d)-fix(mn/d)+1; 
           %Nr(i)=Nr(i)+nr;
       end
   end 
   bn(i)=sum;
   sum=0;             
end
x=-log10(s);
y=log10(bn);
plot(x,y,'+');
lsline;p=polyfit(x,y,1);
fd=p(1)
hold on;
z=y./x;







⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?