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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Surface and Mesh Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!