2013-07-24 84 views
0

我有一個128x1500的圖像,我需要將其拆分成幾塊(matlab將其讀取爲1500x128)。但無論列或行如何定向,它都是一個比高的矩形更寬的矩形。我需要弄清楚如何將它分成10個左右不同的部分(所有高度相同)。該圖像是一個.tiff,所以這樣做的在線程序不接受它。我現在在matlab中工作,所以如果有一種方法可以做到這一點,那將是非常棒的,但任何方式都可以做到這一點非常有幫助。將圖像拆分成片段

+0

你想要什麼輸出?你想檢查matlab片段或保存到tiffs嗎? –

+0

將它們保存爲tiffs將是理想的! – 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因爲你指定你想要「相同的高度」。

+0

太好了,非常感謝! – Acoustic77

3

略有不同的是,從包含您的TIF的目錄開始:

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 

一旦你決定期望的輸出尺寸和tif_file_name指定的文件名設置N

+0

請注意,圖像數組中尾部列的數字「大小(img,1) - N * M」不會保存,但可以隨時更改。 –