matlab保存画框图像去白边

在matlab图像处理中,为了标识出图像的目标区域来,需要利用plot函数或者rectangle函数,这样标识目标后,就保存图像。

一般saves保存的图像存在白边,可以采用imwrite对图像进行保存,保留原始图像大小。

代码如下:

    set(gca,'units','pixels','Visible','off');
    axes('position', [0 0 1.0 1.0]);
    [rows cols]=size(img);
    imshow(img);
    hold on
     s = regionprops(logicmap);
      for r = 1:length(s)   
           plot(s(r).Centroid(:,1), s(r).Centroid(:,2), 'r*')
           rectangle('Position',s(r).BoundingBox,'EdgeColor','r');
       end
     frame=getframe(gcf,[0,0,cols,rows]);
     im=frame2im(frame);
     imwrite(im,'a.jpg','jpg');%可以修改保存的格式

保存结果如下:

附加:在matlab2012,win7情况下,上述保存图像的方法还是会存在白边,

可采用如下方法设置figure与图像一致,图像能填充显示窗口,并进行画框保存。

% 显示
set
(gcf,'Position',[400,400,cols,rows]); %设置figure位置和大小
imshow(videoclip(:,:,nrames),
'border','tight','initialmagnification','fit'); %图像填充figure axis normal;
% 保存
frame=getframe(gcf,[0,0,cols,rows]);
im=frame2im(frame);
imwrite(im,outdir);
posted @ 2013-07-23 18:36  微雪  阅读(12041)  评论(2编辑  收藏  举报