马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
这两天着迷goolge earth抓图,编写了一个拼图的程序,主要是用到了imread imwrite和对话框几个知识点,很简单的。
- % try color map computer
- %[url]http://matlabspace.diy.myrice.com/webfiles/kidding/sp_01.htm[/url]
- [p,filepath]=uigetfile('*.bmp','选择要打开的第一个图像文件')
- if ~any(p) ,return,end
- act=['x=imread(''' filepath p ''',''bmp'');'];
- eval(act)
- x=double(x);
- [p,filepath]=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);
- [m n z]=size(x);
- [mm n2 zz]=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,[60 40 1000 800]);
- imove=2*imove;
- nn=nstar-imove;
- uu=imcrop(u,[ nn 1 2*imove m ]);
- figure(1)
- image(uu)
- daspect([7 7 1])
- ButtonName=questdlg('您是否接受图片拼接的结果?', ...
- '拼图', ...
- '是保存结果','不重新拼图','是保存结果');
- switch ButtonName,
- case '是保存结果',
- disp('write in file');
- [filename,filepath]=uiputfile('*.bmp','选择要保存的图像文件')
- if ~any(filename) ,return,end
- f=findstr(filename,'.bmp')
- if ~any(f)
- filename=[filename,'.bmp']
- end
- filename
- usepath=[filepath,filename]
- act=['imwrite(u,''' usepath ''',''bmp'');'];
- %act=['save ',path,' lon lat']
- eval(act)
- %imwrite(u,'caotry.bmp','bmp')
- ok='保存文件成功';
- disp(ok)
-
- case '不重新拼图',
- disp('star again')
- return
- end
复制代码
[ 本帖最后由 suffer 于 2006-10-9 21:05 编辑 ] |