This is a useful topic. A college physics lab, medical diagnostics, urban growth, etc. - there is a lot of applications. On this site by Paul Bourke about Google Earth fractals we can get a high resolution images (in this post they are low res - import from source for experiments). For example, around Lake Nasser in Egypt:
img = Import["http://paulbourke.net/fractals/googleearth/egypt2.jpg"]
The simplest method I know is Box Counting Method which has a lot of shortcomings. We start from extracting the boundary - which is the fractal object:
{Binarize[img], iEdge = EdgeDetect[Binarize[img]]}
Now we could partition image into boxes and see how many boxes have at least 1 white pixel. This is a very rudimentary implementation:
MinS = Floor[Min[ImageDimensions[iEdge]]/2]; data = ParallelTable[{1/size, Total[Sign /@ (Total[#, 2] & /@ (ImageData /@ Flatten[ImagePartition[iEdge, size]]))]}, {size, 10, MinS/2, 10}];
From this the slope is 1.69415 which is a fractal dimension that makes sense
line = Fit[Log[data], {1, x}, x]
13.0276 + 1.69415 x
Plot[line, {x, -6, -2}, Epilog -> Point[Log[FDL]], PlotStyle -> Red, Frame -> True, Axes -> False]
Benchmark: if I run this on high res of Koch snowflake i get something like ~ 1.3 with more exact number being 4/log 3 ≈ 1.26186.
Question: can we improve or go beyond the above box counting method?
All approaches are acceptable if they find fractal dimension from any image of natural fractal.