Code covered by the BSD License  

Highlights from
Multi-Scale Analysis of Area Fractions Characterization GUI

image thumbnail
from Multi-Scale Analysis of Area Fractions Characterization GUI by Mark Tschopp
Characterizes a binary microstructure using the multi-scale analysis of area fractions technique.

compute_homogeneous_length_scale(I)
function [ResStats] = compute_homogeneous_length_scale(I)

% Particles are white, i.e. value = 1
% Matrix is black, i.e. value = 0
% Modifying

I = double(I)/max(max(double(I)));
if mean(mean(I(:,:))) >= 0.5; I = 1 - I; end

% Rest of code

ImageX = double(I);
ImageY = double(I);
Image_Box = double(I);

ImagePower = log2(length(I(1,:)));
ResStats = zeros(ImagePower,9);

% Subsequent passes
for n = 1:ImagePower

% Accumulate statistics
    ResStats(n,1) = length(Image_Box(:,1));
    ResStats(n,2) = std(double(Image_Box(:)));
    ResStats(n,3) = mean(double(Image_Box(:)));
    ResStats(n,4) = 2^ImagePower/length(Image_Box(:,1));
    ResStats(n,5) = ResStats(n,2)/ResStats(n,3);
    ResStats(n,6) = std(double(ImageX(:)));
    ResStats(n,7) = ResStats(n,6)/ResStats(n,3);
    ResStats(n,8) = std(double(ImageY(:)));
    ResStats(n,9) = ResStats(n,8)/ResStats(n,3);

% Calculate new images
    Image_Box = 0.25*(Image_Box(1:2:end,1:2:end)+Image_Box(1:2:end,2:2:end)...
        +Image_Box(2:2:end,1:2:end)+Image_Box(2:2:end,2:2:end));
    ImageX = 0.5*(ImageX(1:2:end,:)+ImageX(2:2:end,:));
    ImageY = 0.5*(ImageY(:,1:2:end)+ImageY(:,2:2:end));

end

Contact us at files@mathworks.com