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

4 vues (au cours des 30 derniers jours)
Pritha
Pritha le 29 Avr 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 commentaire
Daniel Shub
Daniel Shub le 29 Avr 2013
You get the error because MATLAB you use plog, but MATLAB doesn't know what it is.

Connectez-vous pour commenter.

Réponses (1)

Image Analyst
Image Analyst le 29 Avr 2013
Modifié(e) : Image Analyst le 29 Avr 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 commentaire
Daniel Shub
Daniel Shub le 29 Avr 2013
I thought plog(p) was a typo of plot at first, but now I see that it is p.*log(p). Nice catch.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Get Started with MATLAB dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by