matlab7双击后无反应,Matlab为什么点了运行却没有反应?(附上了程序)
我编了一个简单的小程序,不过点击run后软件没有任何反应,就跟没点run一样,然后再打开其他正确的m文件也一样没反应,谁知道这是为什么吗?这是个简单的拼接程序,从第二幅图中选取一个特征窗口,然后跟第一幅图比较计算,最后拼接在一起。a1=imread('he1.bmp');a2=imread('he2.bmp');%读两幅需要拼接的图[n1,m1]=size(a1);[n2,m2]=size(a2)
我编了一个简单的小程序,不过点击run后软件没有任何反应,就跟没点run一样,然后再打开其他正确的m文件也一样没反应,谁知道这是为什么吗?
这是个简单的拼接程序,从第二幅图中选取一个特征窗口,然后跟第一幅图比较计算,最后拼接在一起。
a1=imread('he1.bmp');
a2=imread('he2.bmp');%读两幅需要拼接的图
[n1,m1]=size(a1);
[n2,m2]=size(a2);
size_y=min(n1,n2);
size_x=min(m1,m2);%对图进行裁剪
tic;%计时
x=a2(1:100,1:100);%选取了特征窗口
[x1,x2]=size(x);
i=1;
j=1;
min=2^32;
while(j<=size_y-x1)
while(i<=size_x-x2)
y=a1(j:j+x1-1,i:i+x2-1);
sub=x-y;
s=sum(sum(sub.*sub));
if(s
min=s;
aim_y=j;
aim_x=i;
end
i=i+x2;
end
i=1;
j=j+x1;
end
xx1=round(x1/2);
xx2=round(x2/2);
while(xx1>=1&xx2>=1)
for j=-1:1
for i=-1:1
try_x=aim_x+i*xx2;
try_y=aim_y+j*xx1;
if(try_x>0&try_x<=size_x-x2&try_y>0&try_y<=size_y-x1)
y=a1(try_y:try_y+x1-1,try_x:try_x+x2-1);
sub=x-y;
s=sum(sum(sub.*sub));
if(s
min=s;
aim_y=try_y;
aim_x=try_x;
end
end
end
end
xx1=round(xx1/2);
xx2=round(xx2/2);
end
width=size_x+aim_x;
high=size_y+aim_y;
z=ones(width,high)*255;
for(i=1:width)
for(j=1:high)
if(j<=aim_y&i<=size_x)
z(i,j)=a1(i,j);
end
if(j>aim_y&j<=size_y)
if(i<=size_x)
z(i,j)=a1(i,j);
else
z(i,j)=a2(i-aim_x,j-aim_y);
end
end
if(j>size_x&i>=aim_x)
z(i,j)=a2(i-aim_x,j-aim_y);
end
end
end
toc;%计时结束
imshow(z);
[本帖最后由 小小妖妖 于 2009-12-10 20:48 编辑]
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)