如何在imshow matlab中自动裁剪图像区域

时间:2015-11-22 02:31:44

标签: matlab matlab-figure imshow

我使用下面的代码来显示图中的6个图片。但是,输出包含一些不需要的区域。我想裁剪图像如下图所示。这意味着我想裁剪它,以便ROI包含我的6张照片。谢谢所有

这是我的代码

%% read images in a cell array
imgs = cell(6,1);
for i=1:6
    imgs{i} = imread( sprintf('AT3_1m4_%02d.tif',i) );
end

figure(1)
spaceH=0.01;spaceV=0.06;marTop=0.3;marBot=0.08; 
 padding=0.0;margin=0.0;marginL=0.0;
yoffset = 12;
set(gcf,'units','normalized','outerposition',[0 0 1 1])
% set(gcf,'color','w');
for i=1:6
    subaxis(2,3,i,'SpacingHoriz', spaceH, ...
            'SpacingVert',spaceV, 'PL',padding,'PR',padding,'mt',... 
            marTop,'mb',marBot,'ML',marginL,'MR',margin); title('Original'); 
   imshow(imgs{i},[0 255], 'InitialMag',90, 'Border','tight');
   xlb{i} = xlabel(['(' char(96+i) ')'],'FontSize', 16);
   xp = get(xlb{i}, 'position');
   xp(2) = xp(2) - yoffset; % update y-position
   set(xlb{i}, 'position', xp); % assign new position
end

这是我当前的图片

enter image description here

我希望输出为

enter image description here

1 个答案:

答案 0 :(得分:0)

你的问题是这个命令:

set(gcf,'units','normalized','outerposition',[0 0 1 1])

你强迫窗口达到一定的大小。

您可以做的是以下内容: 1.注释掉这条线。 2.执行你的代码。 3.找出窗口需要的大小并进行扩展。