Can someone explain why I am getting the following error in my code?

1 view (last 30 days)
function [g]=EdgeDetector_procedure(f)
[M,N]=size(f);
g=f;
m = 3;
n = 3;
a0 = (m-1)/2;
b0 = (n-1)/2;
for y = b0+1 : N-b0;
for x = a0+1 : M-a0;
sum1 = 0;
for k=-b0:b0;
for j=-a0:a0;
if ( f(x,y) == f (x+j,y+k) )
sum1=sum1+1;
end;
end;
end;
p=sum1/9;
H=-plog(p);
d=log(1/9);
if(H<-d/9)
g(x,y)=0;
else
g(x,y)=1;
end;
end;
end;
?? Undefined function or method 'plog' for input arguments of type 'double'.
Error in ==> EdgeDetector_procedure at 20 H=-plog(p);

Answers (1)

Image Analyst
Image Analyst on 29 Apr 2013
Edited: Image Analyst on 29 Apr 2013
Try
H = -p .* log(p); % Calculate entropy.
By the way, there is an entropyfilt() entropy filter that you may want to check out.
  1 Comment
Daniel Shub
Daniel Shub on 29 Apr 2013
I thought plog(p) was a typo of plot at first, but now I see that it is p.*log(p). Nice catch.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!