2015-11-22 2 views
0

Я использовал ниже код, чтобы показать 6 фото на рисунке. Однако выход содержит некоторые нежелательные области. Я хочу обрезать изображение, как показано ниже. Это означает, что я хочу обрезать его, чтобы ROI содержал мои 6 фотографий. Спасибо всемКак автоматически обрезать область изображения в imshow matlab

Это мой код

%% 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

Вы видели это (http://www.mathworks.com/matlabcentral/fileexchange/34055-tightfig)? –

ответ

0

Ваша проблема заключается в команда:

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

Вы форсируете окно определенного размера.

Что вы можете сделать, это следующее: 1. Прокомментируйте строку. 2. Выполните свой код. 3. Узнайте, в каком размере должно быть ваше окно, и масштабируйте его.

+0

Нет, я использовал его для увеличения фигуры. После этого я обрезаю нежелательный регион. Размер моего окна неизвестен. Это автоматически урожай –

Смежные вопросы