Can someone explain why I am getting the following error in my code?
조회 수: 1 (최근 30일)
이전 댓글 표시
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
Daniel Shub
2013년 4월 29일
You get the error because MATLAB you use plog, but MATLAB doesn't know what it is.
답변 (1개)
Image Analyst
2013년 4월 29일
편집: Image Analyst
2013년 4월 29일
Try
H = -p .* log(p); % Calculate entropy.
By the way, there is an entropyfilt() entropy filter that you may want to check out.
댓글 수: 1
Daniel Shub
2013년 4월 29일
I thought plog(p) was a typo of plot at first, but now I see that it is p.*log(p). Nice catch.
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!