求救!!一个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 展开
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 展开
2个回答
展开全部
首先说明一点,你的程序不是死循环。另外一点,matlab擅长的是矩阵而不是循环语句。最后一点,因为你的循环次数实在太多,本来读图就要一点时间,加之你的103*138约等于一万次的循环,必然让你觉得它陷入了死循环,你放一天一夜也许结果就出来了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
粗看没有死循环。
你的循环用得太多了。你多等等看看。
或者试一下:
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
你的循环用得太多了。你多等等看看。
或者试一下:
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))
试试
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询