Posted by
Jeremy Adler on
Dec 07, 2015; 12:35pm
URL: http://imagej.273.s1.nabble.com/Fractal-Dilation-Macro-tp5015153p5015165.html
You don't need a complicated macro.
All possible dilations are contained in the Distance Map made from the outline - and can be output using a histogram.
The histogram gives the area of a band at each radius and the cumulative histogram (could generate in Excel or a macro) gives the area at each radius.
A bigger problem is that many shapes do not produce a linear relationship in the final log log plot.
Adler J & Hancock D, Powder Technology, 1994, 78,191-196.
-----Original Message-----
From: ImageJ Interest Group [mailto:
[hidden email]] On Behalf Of SUBSCRIBE IMAGEJ Dini
Sent: den 7 december 2015 03:45
To:
[hidden email]
Subject: Fractal Dilation Macro
Hello All,
I am working on fractal dimension using Dilation method. I found a macro for Dilation method but the macro runs under NIH Image. When I run the macro on ImageJ, it did not work. How to change the command so that be able to be run on ImageJ?
Please find the macro below.
Regards,
Dini
=============================================================
FRACTAL DILATION MACRO
The FRACTAL DILATION Macro is a macro that runs under NIHImage, v. 1.58 and later. It performs the measurements that allows one to calculate the so-called "capacity" fractal dimension. The algorithm is called, in fractal parlance, the "dilation" method. It is meant to work on an image that is a one pixel wide, binary (black on white) border.
The output is a named file with 3 columns. The first is a list of the disc kernel sizes. Th 2nd is a list of the average counts [area] for all kernal sizes and the 3rd is the area/kernel size to give equivalent length.
macro 'Fractal Dilation';
var
iterations,i:integer;
tab:string;
begin
SaveState;
iterations:=64;
tab:=chr(9);
SetFont('Monaco');
SetFontSize(9);
ResetCounter;
SetBinaryCount(1);
NewTextWindow(concat(WindowTitle, '-Counts'), 140, 350);
MoveWindow(500,50);
Measure;
writeln(1:3, tab, histogram[255]:7, tab, histogram[255]:5);
for i:=1 to iterations do begin
Dilate;
Measure;
writeln(i*2+1:3, tab, histogram[255]:7, tab, histogram[255]/(i*2+1):5);
end;
RestoreState;
end;
--
ImageJ mailing list:
http://imagej.nih.gov/ij/list.html--
ImageJ mailing list:
http://imagej.nih.gov/ij/list.html