|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
在运行函数时出现了如下的提示<BR>??? Index exceeds matrix dimensions.<BR>函数代码如下:<BR>function idxLocalMax=cannyFindLocalMaxima(direction,ix,iy,mag);<BR>[m,n,o]=size(mag);<BR>switch direction<BR> case 1<BR> idx=find((iy<=0&ix>-iy)|(iy>=0&ix<-iy));<BR> case 2<BR> idx=find((ix>0&-iy>=ix)|(ix<0&-iy<=ix));<BR> case 3<BR> idx=find((ix<=0&ix>iy)|(ix>=0&ix<iy));<BR> case 4<BR> idx=find((iy<0&ix<=iy)|(iy>0&ix>=iy));<BR>end<BR>ixv=ix(idx);<BR>iyv=iy(idx);<BR>gradmag=mag(idx);<BR>switch direction<BR> case 1<BR> d=abs(iyv./ixv);<BR> gradmag1=mag(idx+m).*(1-d)+mag(idx+m-1).*d;<BR> gradmag2=mag(idx-m).*(1-d)+mag(idx-m+1).*d;<BR> case 2<BR> d=abs(ixv./iyv);<BR> gradmag1=mag(idx-1).*(1-d)+mag(idx+m-1).*d;<BR> gradmag2=mag(idx+1).*(1-d)+mag(idx-m+1).*d;<BR> case 3<BR> d=abs(ixv./iyv);<BR> gradmag1=mag(idx-1).*(1-d)+mag(idx-m-1).*d;<BR> gradmag2=mag(idx+1).*(1-d)+mag(idx+m+1).*d;<BR> case 4<BR> d=abs(iyv./ixv);<BR> gradmag1=mag(idx-m).*(1-d)+mag(idx-m-1).*d;<BR> gradmag2=mag(idx+m).*(1-d)+mag(idx+m+1).*d;<BR>end<BR>idxLocalMax=idx(gradmag>=gradmag1&gradmag>=gradmag2);<BR>请问该如何解决 |
|