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

请教一个多function的问题

[复制链接]
发表于 2010-11-30 16:09:42 | 显示全部楼层 |阅读模式 来自 江西赣州
function imgrad=shiyan1
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);
end
function 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值梯度的问题,我现在遇到一个问题,我想往里面继续写程序,希望对求出来的梯度矩阵进行处理,但是遇到点麻烦,第一,找不到梯度矩阵的名称。第二,我在后面继续写程序,貌似是在对第2个function里面的内容进行操作,无法对梯度矩阵进行操作,请高手帮忙解下惑,多谢!!!
发表于 2010-11-30 18:02:05 | 显示全部楼层 来自 河北廊坊
Simdroid开发平台
你这程序的结构有问题,少一个end,也不知道加在什么地方
你自己好好看看书,看subf是子函数还是内嵌函数
回复 不支持

使用道具 举报

发表于 2010-11-30 22:42:58 | 显示全部楼层 来自 黑龙江哈尔滨
这程序结果,无语了,
我看还是楼主自己好好查吧,别人都望而却步了...
回复 不支持

使用道具 举报

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

本版积分规则

Simapps系列直播

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

GMT+8, 2024-10-5 07:20 , Processed in 0.045672 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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