声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3636|回复: 5

[共享资源] [原创]自己编的一个拼图程序

[复制链接]
发表于 2006-6-28 18:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
这两天着迷goolge earth抓图,编写了一个拼图的程序,主要是用到了imread imwrite和对话框几个知识点,很简单的。

  1. % try color map computer
  2. %[url]http://matlabspace.diy.myrice.com/webfiles/kidding/sp_01.htm[/url]
  3. [p,filepath]=uigetfile('*.bmp','选择要打开的第一个图像文件')
  4. if ~any(p) ,return,end
  5. act=['x=imread(''' filepath p ''',''bmp'');'];
  6. eval(act)
  7. x=double(x);
  8. [p,filepath]=uigetfile('*.bmp','选择要打开的第二个图像文件')
  9. if ~any(p) ,return,end
  10. act=['y=imread(''' filepath p ''',''bmp'');'];
  11. eval(act)
  12. prompt={'输入向左移动的像素个数'};
  13. def={'125'};
  14. dlgTitle='拼图';
  15. lineNo=1;
  16. answer=inputdlg(prompt,dlgTitle,lineNo,def);
  17. use=answer{1};
  18. imove=sscanf(use,'%f');
  19. y=double(y);
  20. [m n z]=size(x);
  21. [mm n2 zz]=size(y);
  22. nn=n+n2-imove;
  23. nmid=int2str(nn);
  24. nn=str2num(nmid);
  25. %nn=uint8(nn);
  26. nstar=nn-n2+1;
  27. u=ones(m,nn,z);
  28. u(1:end,1:n,1:end)=x(1:end,1:end,1:end);
  29. u(1:end,nstar:end,1:end)=y(1:end,1:end,1:end);
  30. u=uint8(round(u));
  31. %i2=imcrop(x,[60 40 1000 800]);
  32. imove=2*imove;
  33. nn=nstar-imove;

  34. uu=imcrop(u,[ nn 1 2*imove m ]);
  35. figure(1)
  36. image(uu)
  37. daspect([7 7 1])

  38. ButtonName=questdlg('您是否接受图片拼接的结果?', ...
  39.                          '拼图', ...
  40.                          '是保存结果','不重新拼图','是保存结果');
  41. switch ButtonName,
  42. case '是保存结果',
  43.          disp('write in file');
  44. [filename,filepath]=uiputfile('*.bmp','选择要保存的图像文件')
  45. if ~any(filename) ,return,end
  46. f=findstr(filename,'.bmp')
  47. if ~any(f)
  48. filename=[filename,'.bmp']
  49. end
  50. filename
  51. usepath=[filepath,filename]
  52. act=['imwrite(u,''' usepath ''',''bmp'');'];
  53. %act=['save ',path,' lon  lat']
  54. eval(act)
  55. %imwrite(u,'caotry.bmp','bmp')
  56. ok='保存文件成功';
  57. disp(ok)
  58.          
  59.        case '不重新拼图',

  60.          disp('star again')
  61.        return
  62.      end
复制代码

[ 本帖最后由 suffer 于 2006-10-9 21:05 编辑 ]
回复
分享到:

使用道具 举报

发表于 2006-11-12 13:08 | 显示全部楼层
不行呀,运行不了
发表于 2006-11-13 10:25 | 显示全部楼层
原帖由 liwensheng 于 2006-11-12 13:08 发表
不行呀,运行不了


运行没有什么问题

如果不行的话请说明错误信息
发表于 2007-6-11 17:31 | 显示全部楼层
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
    [X, map] = feval(fmt_s.read, filename, extraArgs{:});
发表于 2007-6-11 18:37 | 显示全部楼层
我运行结果如下,也不行啊

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
    [X, map] = feval(fmt_s.read, filename, extraArgs{:});
发表于 2007-7-14 09:45 | 显示全部楼层
??? Subscripted assignment dimension mismatch
貌似我这个错误是最低级的个错误吧?可额是个新手哦,看不明白
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-18 10:13 , Processed in 0.056624 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表