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

 채택된 답변

Iain
Iain 2013년 7월 30일

0 개 추천

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

댓글 수: 1

Simon
Simon 2013년 7월 30일
That's exactly what I was looking for, thanks

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터 및 File Exchange에서 Images에 대해 자세히 알아보기

질문:

2013년 7월 30일

Community Treasure Hunt

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

Start Hunting!

Translated by