|
編程白癡女
現(xiàn)在想用MATLAB求圖像的分形 下載了FRACLAB不會(huì)用 求學(xué)術(shù)帝助攻-1.jpg (4.88 KB, 下載次數(shù): 33)
下載附件
保存到相冊
2023-2-28 11:37 上傳
努力學(xué)習(xí)中 沒有人指導(dǎo) 看了書好久但還是不會(huì)編程 現(xiàn)在有的程序是下面這個(gè) 很多不明白的地方 求指教
A=imread('e:\1.jpg')
FF=size(A)
% 計(jì)算灰度矩陣的大。
for i=1:FF(1)
for j=1:FF(2)
if A(i,j)==0 % 等多種運(yùn)算是不支持“0”值的;
end
end
end
imwrite(A,'e:\2.jpg');
% 重新保存經(jīng)校正后灰度矩陣;
A=imread('e:\2.jpg');
% 讀入圖像,并轉(zhuǎn)化為矩陣
t=graythresh(A);
% 計(jì)算二值化閾值
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);
Y=reshape(interim1,side_length,numel(interim1)/side_length);
interim2=sum(Y);
Number=numel(nonzeros(interim2));
% 計(jì)數(shù)有像素(“1”)的盒子數(shù)
interim=sum(interim2');
%當(dāng)盒子邊長為side_length時(shí),統(tǒng)計(jì)出各個(gè)
% 盒子內(nèi)的“1”值之和“interim2”,以及所有盒子“1”值總和“interim”,
W(u,1)= Number;
u=u+1;
end
y=log(W);
x=log(2:110);
plot(x,y,'o');
Dbox=polyfit(x',y,1)
% 線性方程斜率的絕對(duì)值即為盒子維數(shù)
B=nonzeros(B);
Area % 給出像素的占有 |
|