Simple_Fractal_Dimension_for_Images.m
上传用户:makun0805
上传日期:2013-12-24
资源大小:1k
文件大小:1k
源码类别:

分形几何

开发平台:

Matlab

  1. function Simple_Fractal_Dimension_for_Images(xyimg)
  2. % Input: xyimg is image with 256*256
  3. yyimg=im2bw(xyimg,0.5);
  4. xximg=~yyimg;
  5. for ii=0:7
  6. e(ii+1)=2^ii;
  7. ne(ii+1)=0;
  8. cboxs=256/e(ii+1);
  9. for i=1:cboxs
  10. xi=(i-1)*e(ii+1)+1;
  11. for j=1:cboxs
  12. yi=(j-1)*e(ii+1)+1;
  13. ne_tp=0;
  14. for xk=xixi+e(ii+1)-1)
  15. for yk=yiyi+e(ii+1)-1)
  16. if xximg(xk,yk)==0
  17. ne_tp=1;
  18. end
  19. end
  20. end
  21. if ne_tp==1
  22. ne(ii+1)=ne(ii+1)+1;
  23. end
  24. end
  25. end
  26. end
  27. elog=log(256./e);
  28. nelog=log(ne);
  29. c=polyfit(elog,nelog,1);
  30. sfd=c(1);
  31. xx=min(elog):0.1:max(elog);
  32. yy=c(1).*xx+c(2);
  33. subplot(1,2,1);
  34. imshow(xyimg);
  35. subplot(1,2,2);
  36. plot(elog,nelog,'+:',xx,yy,'-');
  37. grid;
  38. xlabel('log(e)');
  39. ylabel('log(N(e))');
  40. title(['Fractal Dimension: Df is ' num2str(sfd,'%11.5g')]);
  41. axis([0 6 0 10]);