求救!!一个MATLAB的程序 一直死循环

AA=imread('e:\a.jpg')A=double(AA)c1=0c2=0c3=0R=zeros(103,138,3)s=[-1,-1,-1;-1,9,-1;-1... AA=imread('e:\a.jpg')
A=double(AA)
c1=0
c2=0
c3=0
R=zeros(103,138,3)
s=[-1,-1,-1;-1,9,-1;-1,-1,-1]/9
for i=1:1:103
for j=1:1:138
Sum=s.*A(i:i+2,j:j+2,1)
for m=1:1:3
for n=1:1:3
c1=c1+Sum(m,n)

end
end
R(i,j,1)=c1;
Sum=A(i:i+2,j:j+2,2).*s
for m=1:1:3
for n=1:1:3
c2=c2+Sum(m,n)

end
end
R(i,j,2)=c2
Sum=A(i:i+2,j:j+2,3).*s
for m=1:1:3
for n=1:1:3
c3=c3+Sum(m,n)

end
end
R(i,j,3)=c3
end
end
展开
 我来答
道士也拉风
2011-03-28 · TA获得超过202个赞
知道小有建树答主
回答量:135
采纳率:0%
帮助的人:170万
展开全部
首先说明一点,你的程序不是死循环。另外一点,matlab擅长的是矩阵而不是循环语句。最后一点,因为你的循环次数实在太多,本来读图就要一点时间,加之你的103*138约等于一万次的循环,必然让你觉得它陷入了死循环,你放一天一夜也许结果就出来了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wacs5
2011-03-28 · TA获得超过1.6万个赞
知道大有可为答主
回答量:3724
采纳率:82%
帮助的人:2805万
展开全部
粗看没有死循环。
你的循环用得太多了。你多等等看看。

或者试一下:
AA=imread('e:\a.jpg')
A=double(AA)
c1=0
c2=0
c3=0
R=zeros(103,138,3)
s=[-1,-1,-1;-1,9,-1;-1,-1,-1]/9
for i=1:1:103
for j=1:1:138
Sum=s.*A(i:i+2,j:j+2,1)
R(i,j,1)=sum(sum(Sum));

Sum=A(i:i+2,j:j+2,2).*s
R(i,j,2)=sum(sum(Sum));

Sum=A(i:i+2,j:j+2,3).*s
R(i,j,3)=sum(sum(Sum));
end
end
追问
试了下你的程序  出现

>> imshow(R)
??? Error using ==> image
TrueColor CData contains element out of range 0.0 C:\MATLAB6p5\toolbox\images\images\imshow.m
On line 104 ==> hh = image(xdata, ydata, cdata, 'BusyAction', 'cancel', ...

这个是什么 T T
追答
R是浮点数,不能imshow

imshow(uint8(R))
试试
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式