首先,我是MATLAB初学者。
我犯了这个错误:
错误:文件:Function1.m行:31柱:8
不支持使用“=”运算符。若要比较值是否相等,请使用“==”。若要指定名称-值参数,请检查名称是否是一个有效的标识符,且没有引号。
突出显示的行位于代码的最底部,如If R > = Threshold
另外,End行也有错误
第34行:End运算符必须在数组索引表达式中使用
如何修复错误?
我的代码:
function [EdgeImg, IndexImg] = Function1(InputImg, Threshold)
Four masks for the entire image
H = [-1 -1 -1; 2 2 2; -1 -1 -1];
V = H';
D45 = [2 -1 -1; -1 2 -1; -1 -1 2];
D135 = [-1 -1 2; -1 2 -1; 2 -1 -1];
Compute edge strengths and orientations using the four masks
R1 = imfilter(InputImg, H, 'symmetric');
R2 = imfilter(InputImg, V, 'symmetric');
R3 = imfilter(InputImg, D45, 'symmetric');
R4 = imfilter(InputImg, D135, 'symmetric');
%Initial Edgelmg and Indexlmh
EdgeImg=zero(size(InputImg));
IndexImg=len*ones(size(InpuImg));
%Now, loop applied through the pixels at edge using for
for k=1:s(Intlmg,1)
for m =1:s(Intlmg,2)
end
EdgeImg(IndxImg==len)=0;
figure;
subplot(1,2,1,0);
show(EdgeImg,img);
subplot(1,2,2,0);
show(IndexeImg,img);
end
[R,jip] = maximize([R1(k,m),R2(k,m),R3(k,m),R4(k,m)
If R > = Threshold
EdgeImg(k,m)=R;
IndexImg(k,m)=jip;
end
1条答案
按热度按时间lokaqttq1#
中间有空格的
> =
不是有效的MATLAB语法。为了评估“大于或等于”,等号i之前不应有空格。即>=
。类似地,“小于或等于”是<=
。a >= b
和a <= b
分别与ge(a,b)
和le(a,b)
同义,如果你想要它们的函数形式。请参阅documentation here.