声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 5200|回复: 7

[编程技巧] Matlab中如何只把figure中的图像区域保存为图片文件

[复制链接]
发表于 2008-5-14 12:44 | 显示全部楼层 |阅读模式

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

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

x
Matlab中如何只把figure中的图像区域保存为图片文件


[ 本帖最后由 eight 于 2008-5-14 15:29 编辑 ]
回复
分享到:

使用道具 举报

发表于 2008-5-14 14:00 | 显示全部楼层
好像除了拷屏,
其它的方法都只是把图像区域保存的吧
发表于 2008-5-14 16:08 | 显示全部楼层

回复 楼主 的帖子

save as?

评分

1

查看全部评分

发表于 2008-5-14 16:33 | 显示全部楼层

回复 3楼 的帖子

那就多了
edit-->copy figure
save as
export setup-->export

评分

1

查看全部评分

发表于 2008-5-14 20:16 | 显示全部楼层
alt+printscrean
这个是只拷当前活动窗口
发表于 2008-5-14 23:15 | 显示全部楼层
呵呵
用qq截图
:lol
发表于 2008-5-21 22:10 | 显示全部楼层
  1. %%%%矩形区域选取%%%%%
  2. hf = figure(1);
  3. A = imread('board.tif');
  4. A = rgb2gray(A); %-此句注释后下面的处理就相当于对真彩色图像进行
  5. imshow(A)
  6. rect = getrect(hf);
  7. w = round(rect(3));
  8. h = round(rect(4));
  9. if w >= 1 & h >= 1
  10. r = [rect(1),rect(1)+w,rect(1)+w,rect(1);rect(2),rect(2),rect(2)+h,rect(2)+h];
  11. rectangle('Position',[rect(1),rect(2),w,h], 'edgecolor','red');
  12. figure(2);
  13. bw = roipoly(A,r(1,:),r(2,:));
  14. AA = reshape(A, [(size(A,1)*size(A,2)), size(A,3)]);
  15. BB = AA(bw, :);
  16. B = reshape(BB, [h, w, size(A,3)]);
  17. imshow(B);
  18. end

  19. %%%%任意形状区域选取%%%%%

  20. clear all
  21. A = imread('board.tif');
  22. A = rgb2gray(A); %-此句注释后下面的处理就相当于对真彩色图像进行
  23. figure(1)
  24. imshow(A);
  25. %[a,b] = ginput;
  26. button = 1;
  27. n = 0;
  28. a = [];
  29. b = [];
  30. hold on;
  31. while button == 1 % 输入数据点,以右键作结
  32. [xi,yi,button] = ginput(1);
  33. n = n + 1;
  34. if n > 1
  35. plot([xi,a(n-1,1)], [yi,b(n-1,1)], '-rs','LineWidth',1,...
  36. 'MarkerEdgeColor','k',...
  37. 'MarkerFaceColor','g',...
  38. 'MarkerSize',10);
  39. else
  40. plot(xi, yi, 's','LineWidth',2,...
  41. 'MarkerEdgeColor','k',...
  42. 'MarkerFaceColor','g',...
  43. 'MarkerSize',10);
  44. end
  45. a(n,1) = xi;
  46. b(n,1) = yi;
  47. end
  48. plot([xi,a(1,1)], [yi,b(1,1)], '-rs','LineWidth',2,...
  49. 'MarkerEdgeColor','k',...
  50. 'MarkerFaceColor','g',...
  51. 'MarkerSize',10);
  52. hold off;
  53. if length(a) >= 3
  54. va = round(a);
  55. vb = round(b);

  56. x = 1:size(A,1);
  57. y = 1:size(A,2);

  58. [Y,X] = meshgrid(y,x);
  59. in = inpolygon(Y(:),X(:),va,vb);

  60. AA = reshape(A, [size(A,1)*size(A,2),size(A,3)]);
  61. BB = repmat(uint8(255),size(AA));
  62. BB(in,:) = AA(in,:);
  63. B = reshape(BB, [size(A,1),size(A,2),size(A,3)]);

  64. figure(2)
  65. imshow(B);
  66. end
复制代码


选自eight总结贴。

选出感兴趣的区域后,把figure文件保存为需要的格式即可。

评分

1

查看全部评分

发表于 2011-11-17 16:54 | 显示全部楼层
以下命令仅取图像区域
f=getframe(gca);
imwrite(f.cdata,'f:\test2.png')

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-9-21 11:02 , Processed in 0.060920 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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