Compute fun handler for blockproc

3 visualizaciones (últimos 30 días)
Constantin Alin
Constantin Alin el 10 de Mayo de 2018
Comentada: Constantin Alin el 11 de Mayo de 2018
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.

Respuesta aceptada

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

Iniciar sesión para comentar.

Más respuestas (1)

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

Iniciar sesión para comentar.

Productos


Versión

R2016a

Community Treasure Hunt

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

Start Hunting!

Translated by