- 积分
- 0
- 注册时间
- 2010-3-13
- 仿真币
-
- 最后登录
- 1970-1-1
|
a=imread('klj.jpg');imshow(a);[x y]=ginput(2);x=round(x);y=round(y);n1=abs(x(1)-x(2))+1;n2=abs(y(1)-y(2))+1;[n which_max]=max([n1,n1]);imgrad=ones(3,n);for i=1:3 b=a(:,:,i); if y(1)<y(2)&&x(1)<x(2) if which_max==1 xx=x(1):x(2); yy=subf(x,y,xx); else yy=y(1):y(2); xx=subf(x,y,yy); end elseif y(1)<y(2)&&x(1)>x(2) if which_max==1 xx=x(2):x(1); yy=subf(x,y,xx); else yy=y(1):y(2); xx=subf(x,y,yy); end elseif y(1)>y(2)&&x(1)<x(2) if which_max==1 xx=x(1):x(2); yy=subf(x,y,xx); else yy=y(2):y(1); xx=subf(x,y,yy); end elseif y(1)>y(2)&&x(1)>x(2) if which_max==1 xx=x(2):x(1); yy=subf(x,y,xx); else yy=y(2):y(1); xx=subf(x,y,yy); end end ind=sub2ind(size(b),yy,xx); data=b(ind); data=double(data); imgrad(i,:)=gradient(data);endfunction coordinate=subf(x,y,input)k=(y(1)-y(2))/(x(1)-x(2));if abs(x(1)-x(2))>=abs(y(1)-y(2)) coordinate=k*(input-x(1))+y(1); coordinate=round(coordinate);else coordinate=(input-y(1))/k+x(1); coordinate=round(coordinate);end 我用以上内容想求一个图片的颜色变化的三维RGB梯度,但是运行之后出现
??? Undefined function or method 'subf' for input arguments of type 'double'的字样,请问哪里出错了,谢谢!!! |
|