急急急!!!求助Matlab高手!我是新手,麻烦高手们帮忙看一下是哪里出错了!
错误提示???Undefinedfunctionormethod'xEnd'forinputargumentsoftype'double'.Errorin==>DIat5...
错误提示??? Undefined function or method 'xEnd' for input arguments of type 'double'.
Error in ==> DI at 54
d=sqrt((xEnd(i)-xEnd(j))^2+(yEnd(i)-yEnd(j))^2);
代码:
for i=1:x
for j=1:y
if(out1==1) %%%%%%%%out1是矩阵
xEnd(e)=i;
yEnd(e)=j;
end
end
end
E1=E;
for i=1:E-1
for j=i+1:E
d=sqrt((xEnd(i)-xEnd(j))^2+(yEnd(i)-yEnd(j))^2);
if d<16
E1=E1-2;
end
end
end
这是一段去除图像伪特征点的算法,xEnd(e)和yEnd(e)是用来提取坐标的函数。不知道声明的是否正确。我提取像素值为1的点的坐标,定义了两个函数,但是用这两个函数的时候出了问题。
高手们有没有比较好的去除伪特征点的方法?我做的手写体数字识别,现在正纠结于去除伪特征点的方法,我用for循环写了一些算法,但是运行得太慢。
多谢!!! 展开
Error in ==> DI at 54
d=sqrt((xEnd(i)-xEnd(j))^2+(yEnd(i)-yEnd(j))^2);
代码:
for i=1:x
for j=1:y
if(out1==1) %%%%%%%%out1是矩阵
xEnd(e)=i;
yEnd(e)=j;
end
end
end
E1=E;
for i=1:E-1
for j=i+1:E
d=sqrt((xEnd(i)-xEnd(j))^2+(yEnd(i)-yEnd(j))^2);
if d<16
E1=E1-2;
end
end
end
这是一段去除图像伪特征点的算法,xEnd(e)和yEnd(e)是用来提取坐标的函数。不知道声明的是否正确。我提取像素值为1的点的坐标,定义了两个函数,但是用这两个函数的时候出了问题。
高手们有没有比较好的去除伪特征点的方法?我做的手写体数字识别,现在正纠结于去除伪特征点的方法,我用for循环写了一些算法,但是运行得太慢。
多谢!!! 展开
2个回答
展开全部
我帮你修改了一下你试试,应该没有什么问题了。
End=zeros(2,x);
for i1=1:x
for j1=1:y
if(out1==1)
End(:,e)=[i1,j1];
end
end
end
d=zeros(E,E);
E1=E;
for i=1:E-1
for j=i+1:E
d(i,j)=norm(End(:,i)-End(:,j));
if d<16
E1=E1-2;
end
end
end
还有一种更简单的方法:
[m,n]=find(out1); %%提取像素值为1的点
d=zeros(E,E);
E1=E;
for i=1:E-1
for j=i+1:E
d(i,j)=sqrt((m(i)-m(j))^2+(n(i)-n(j))^2);
if d<yz
E1=E1-2;
end
end
end
这样经过向量化之后,你的程序也会快不少。
我跟你是同道中人,加油!
End=zeros(2,x);
for i1=1:x
for j1=1:y
if(out1==1)
End(:,e)=[i1,j1];
end
end
end
d=zeros(E,E);
E1=E;
for i=1:E-1
for j=i+1:E
d(i,j)=norm(End(:,i)-End(:,j));
if d<16
E1=E1-2;
end
end
end
还有一种更简单的方法:
[m,n]=find(out1); %%提取像素值为1的点
d=zeros(E,E);
E1=E;
for i=1:E-1
for j=i+1:E
d(i,j)=sqrt((m(i)-m(j))^2+(n(i)-n(j))^2);
if d<yz
E1=E1-2;
end
end
end
这样经过向量化之后,你的程序也会快不少。
我跟你是同道中人,加油!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询