필터 지우기
필터 지우기

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

조회 수: 1 (최근 30일)
Pritha
Pritha 2013년 4월 29일
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
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
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
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!

Translated by