MATLAB Answers


44 views (last 30 days)
Abbas Cheddad
Abbas Cheddad on 12 Mar 2011
Hi, I am using Matlab built in function "adapthisteq" which apparently implements the CLAHE algorithm. However, I am a bit confused regarding the size of the tiles in the parameters and its influence. When I use tiles {8x8} the algorithm runs faster than that of {256x256}. Normally, when we divide the image into smaller tiles we end up with large number of processed windows which slows down the underlying algorithm like for example the "blockproc" function. It looks like the "adapthisteq" is actually implementing an {8x8} tile size when the user enters {256x256} that is because:
  • The final result has a semi-visible grid of roughly the size of {8x8}
  • The output on images resembles more to {8x8} implementation of CLAHE in other languages Java, C++.
I hope to hear from you soon.
Cheers. Cheddad


Oleg Komarov
Oleg Komarov on 12 Mar 2011
And the question is?
Abbas Cheddad
Abbas Cheddad on 13 Mar 2011
I thought the issue highlighted above is fairly self-explanatory but to summarize, the question is two fold:
-Why adapthiseq with {256x256} size tiles runs slower than that of {8x8}?
-Why the output of {256x256} execution of adapthiseq on images shows a grid with smaller blocks, e.g., {8x8}?

Sign in to comment.

Answers (1)

Teja Muppirala
Teja Muppirala on 28 Mar 2011
The 'numtiles' argument in ADAPTHISTEQ refers to the number of tiles to break the entire image into, and not the actual pixel size of each tile itself. For example, if your image size was 800 x 800, then when you say
adapthisteq(I,[8 8])
you are block processing on 100 pixels by 100 pixels sized blocks. Similarly,
adapthisteq(I,[100 100])
would operate on 8 pixels by 8 pixels sized blocks at a time. This takes much longer, since now you have to do 10000 blocks.

  1 Comment

Abbas Cheddad
Abbas Cheddad on 28 Mar 2011
Thank you for the answer. Alright, I see what you mean, but isn't that confusing to have that in brackets in a similar fashion as MATLAB does in blockproc function? It was much easier to let users see it in its block based conventional way I think.
adapthisteq(I,[8 8]) % divide the image into 8x8 blocks longer time
adapthisteq(I,[100 100]) %divide the image into 100x100 blocks faster

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!