Entropy of subsections of an image

I have a grayscale image, which I am trying to take 3x3 sections of and find the entropy, and based on the value, make the centre pixel white or black.
The problem I have is that the code I am using is unacceptably slow - running a single, low res image takes several seconds. the code looks something like this:
for j = 2:m-1
for i = 2:n-1
E = entropy(im(j-1:j+1, i-1:i+1));
if E < threshold
ime(j, i) = 1;
else
ime(j, i) = 0;
end
end
end
where the grayscale image im is of size [m, n], as is the binary image ime. Any suggestions on how to improve it? Arrayfun may help, but i have no idea how to use it properly

 Accepted Answer

Try
E = entropyfilt(im,ones(3,3));
ime = E < threshold;

1 Comment

That's exactly what I was looking for, thanks

Sign in to comment.

More Answers (0)

Categories

Find more on Image Processing and Computer Vision in Help Center and File Exchange

Asked:

on 30 Jul 2013

Community Treasure Hunt

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

Start Hunting!