Filter löschen
Filter löschen

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

1 Ansicht (letzte 30 Tage)
Pritha
Pritha am 29 Apr. 2013
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);
  1 Kommentar
Daniel Shub
Daniel Shub am 29 Apr. 2013
You get the error because MATLAB you use plog, but MATLAB doesn't know what it is.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Image Analyst
Image Analyst am 29 Apr. 2013
Bearbeitet: Image Analyst am 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 Kommentar
Daniel Shub
Daniel Shub am 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.

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by