2013-07-24 5 views
0

조각으로 분할해야하는 128x1500 이미지가 있습니다 (matlab에서 1500x128로 읽음). 그러나 열이나 행의 방향과 관계없이 높이보다 넓은 사각형입니다. 나는 이것을 단지 10 개 또는 다른 조각 (모두 같은 높이)으로 나누는 방법을 알아야합니다. 이미지는 .tiff이므로이를 수행하는 온라인 프로그램은 허용하지 않습니다. 나는 지금 matlab에서 일하고있다. 그래서 거기에 그것을 할 수있는 방법이 있다면 그것은 좋을 것이다. 그러나 그것을하는 어떤 방법이라도 매우 도움이 될 것이다.조각으로 이미지 분할

+0

출력물을 원하십니까? MATLAB에서 파편을 검사하거나 TIFF로 저장 하시겠습니까? –

+0

티파니에 저장하는 것이 이상적 일 것입니다! – Acoustic77

답변

3
input = rand(1500,128,3); %read your .tiff here 

N = 8; 
h = 128/N; 

img = cell(N,1); 
for k = 1:N, 
    img{k} = input(:,(k-1)*h+1:k*h,:); 
end 

imshow(img{3}); 

"동일한 높이"를 원했기 때문에 N = 8을 사용했습니다. 당신의 TIF이 들어있는 디렉토리에서 시작하여 약간 다른

+0

대단히 고마워요! – Acoustic77

3

는 : 당신이 원하는 출력 크기를 결정하고 tif_file_name에서 파일 이름을 지정하면

N = 150; % width of individual images, final size: N x 128 (x3) 
img = imread(tif_file_name); 
M = floor(size(img,1)/N); 
img=mat2cell(img(1:M*N,:,:),N*ones(M,1),128,3); 
for ii=1:length(img) 
    imwrite(img{ii},['test' num2str(ii) '.tif'],'tif') 
end 

N을 설정합니다.

+0

이미지 배열에있는'size (img, 1) -N * M' 열의 숫자는 저장되지 않지만 쉽게 변경할 수 있습니다. –

관련 문제