Compute fun handler for blockproc

3 次查看(过去 30 天)
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.

采纳的回答

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

请先登录,再进行评论。

更多回答(1 个)

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

请先登录,再进行评论。

产品


版本

R2016a

Community Treasure Hunt

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

Start Hunting!

Translated by