找回密码
 注册
Simdroid-非首页
查看: 47|回复: 1

我写了一个求颜色梯度的程序,但是运行有错误,请高手帮忙看看!!!

[复制链接]
发表于 2010-10-17 09:42:37 | 显示全部楼层 |阅读模式 来自 江西赣州
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'的字样,请问哪里出错了,谢谢!!!
发表于 2010-10-17 19:16:26 | 显示全部楼层 来自 黑龙江哈尔滨
Simdroid开发平台
提示说的很清楚了,你的subf 不晓得是一个什么东西

评分

1

查看全部评分

回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-6 17:16 , Processed in 0.037552 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表