[原创]自己编的一个拼图程序
这两天着迷goolge earth抓图,编写了一个拼图的程序,主要是用到了imread imwrite和对话框几个知识点,很简单的。% try color map computer
%http://matlabspace.diy.myrice.com/webfiles/kidding/sp_01.htm
=uigetfile('*.bmp','选择要打开的第一个图像文件')
if ~any(p) ,return,end
act=['x=imread(''' filepath p ''',''bmp'');'];
eval(act)
x=double(x);
=uigetfile('*.bmp','选择要打开的第二个图像文件')
if ~any(p) ,return,end
act=['y=imread(''' filepath p ''',''bmp'');'];
eval(act)
prompt={'输入向左移动的像素个数'};
def={'125'};
dlgTitle='拼图';
lineNo=1;
answer=inputdlg(prompt,dlgTitle,lineNo,def);
use=answer{1};
imove=sscanf(use,'%f');
y=double(y);
=size(x);
=size(y);
nn=n+n2-imove;
nmid=int2str(nn);
nn=str2num(nmid);
%nn=uint8(nn);
nstar=nn-n2+1;
u=ones(m,nn,z);
u(1:end,1:n,1:end)=x(1:end,1:end,1:end);
u(1:end,nstar:end,1:end)=y(1:end,1:end,1:end);
u=uint8(round(u));
%i2=imcrop(x,);
imove=2*imove;
nn=nstar-imove;
uu=imcrop(u,[ nn 1 2*imove m ]);
figure(1)
image(uu)
daspect()
ButtonName=questdlg('您是否接受图片拼接的结果?', ...
'拼图', ...
'是保存结果','不重新拼图','是保存结果');
switch ButtonName,
case '是保存结果',
disp('write in file');
=uiputfile('*.bmp','选择要保存的图像文件')
if ~any(filename) ,return,end
f=findstr(filename,'.bmp')
if ~any(f)
filename=
end
filename
usepath=
act=['imwrite(u,''' usepath ''',''bmp'');'];
%act=['save ',path,' lonlat']
eval(act)
%imwrite(u,'caotry.bmp','bmp')
ok='保存文件成功';
disp(ok)
case '不重新拼图',
disp('star again')
return
end
[ 本帖最后由 suffer 于 2006-10-9 21:05 编辑 ] 不行呀,运行不了 原帖由 liwensheng 于 2006-11-12 13:08 发表
不行呀,运行不了
运行没有什么问题
如果不行的话请说明错误信息 filepath =
D:\WindowsXP Document\Document-FLiu\
??? Attempt to reference field of non-structure array.
Error in ==> imagesci\private\readbmp at 17
map = info.Colormap;
Error in ==> imread at 389
= feval(fmt_s.read, filename, extraArgs{:}); 我运行结果如下,也不行啊
filepath =
D:\applications\matlab71\work\
??? Attempt to reference field of non-structure array.
Error in ==> imagesci\private\readbmp at 17
map = info.Colormap;
Error in ==> imread at 308
= feval(fmt_s.read, filename, extraArgs{:}); ??? Subscripted assignment dimension mismatch
貌似我这个错误是最低级的个错误吧?可额是个新手哦,看不明白
页:
[1]