Compute fun handler for blockproc

3 visualizzazioni (ultimi 30 giorni)
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.

Risposta accettata

Walter Roberson
Walter Roberson il 10 Mag 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 Commenti
Constantin Alin
Constantin Alin il 11 Mag 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 il 11 Mag 2018
fun = @(block_struct) BoxCountfracDim(block_struct.data);
out = blockproc(img, [16 16], fun, 'trim', false);
imagesc(out);

Accedi per commentare.

Più risposte (1)

Constantin Alin
Constantin Alin il 11 Mag 2018
Thank you so much for your answers. It's work, but in some region of Matrix i have NaN values. Why ?
  2 Commenti
Walter Roberson
Walter Roberson il 11 Mag 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 il 11 Mag 2018
Thanks, i understand Now.

Accedi per commentare.

Prodotti


Release

R2016a

Community Treasure Hunt

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

Start Hunting!

Translated by