📄 boxcount-matlab.txt
字号:
clc;
clear all;
L=imread('55.bmp');
L=rgb2gray(L);
level = graythresh(L);
X=im2bw(L,level);
imshow(X);
[m n]=size(X);
if size(X,1)~=size(X,2)
error('The size of X must be N*N.'); %长和宽必须要相等
end
B=size(X,1);
if mod(log2(B),1)>0
error('The size of X must be 2^n.'); %边长必须为2的指数
end
t=log2(B);%r的个数
s=2.^(1:t);
Nr=zeros(1,t); %r下的盒子个数
for k=1:t
d=s(k);
%第k个边长
h=B/d; %h*h个格子
for m=1:h
for n=1:h
A=X(d*(m-1)+(1:d),d*(n-1)+(1:d)); %取(m,n)的格子
if sum(sum(A))>=1
Nr(k)=Nr(k)+1;
end
% 格子数
end
end
end
r=B./s;
p=polyfit(log10(r),log10(Nr),1); % 线性拟合,得到一次多项式的系数,
fd=p(1);%拟合多项式的一次项系数
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -