Compute fun handler for blockproc

3 views (last 30 days)
Hello, i want to compute a function handler for blockproc() like
fun = @(block_struct) ...
FD(block_struct.data) * ones(size(block_struct.data));
A = blockproc(I,[16 16],fun)
to process a imagine I and then calculate Box Counting in every blocks. My question is how to compute handler (fun) to do that ? Thanks in advance.

Accepted Answer

Walter Roberson
Walter Roberson on 10 May 2018
Make FD a function that accepts one variable that is an array of data, and have it do the box counting on that array.
Just watch out for incomplete blocks: along the bottom edge and the right edge you will get blocks that are not 16 x 16 unless the size of the image happens to be an exact multiple of 16 in each direction.
  4 Comments
Constantin Alin
Constantin Alin on 11 May 2018
The code returns a matrix of the same size as the original image (512x512) and returns the same fractal dimension everywhere. A is a matrix 512x512 double.
Walter Roberson
Walter Roberson on 11 May 2018
fun = @(block_struct) BoxCountfracDim(block_struct.data);
out = blockproc(img, [16 16], fun, 'trim', false);
imagesc(out);

Sign in to comment.

More Answers (1)

Constantin Alin
Constantin Alin on 11 May 2018
Thank you so much for your answers. It's work, but in some region of Matrix i have NaN values. Why ?
  2 Comments
Walter Roberson
Walter Roberson on 11 May 2018
BoxCountfracDim produces NaN if all of the entries in the input it is passed are zero. It produces NaN+NaN*i if the sum of the entries is negative.
Constantin Alin
Constantin Alin on 11 May 2018
Thanks, i understand Now.

Sign in to comment.

Products


Release

R2016a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!