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

4 visualizaciones (últimos 30 días)
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 comentario
Daniel Shub
Daniel Shub el 29 de Abr. de 2013
You get the error because MATLAB you use plog, but MATLAB doesn't know what it is.

Iniciar sesión para comentar.

Respuestas (1)

Image Analyst
Image Analyst el 29 de Abr. de 2013
Editada: Image Analyst el 29 de Abr. de 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 comentario
Daniel Shub
Daniel Shub el 29 de Abr. de 2013
I thought plog(p) was a typo of plot at first, but now I see that it is p.*log(p). Nice catch.

Iniciar sesión para comentar.

Categorías

Más información sobre Get Started with MATLAB en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by