我有一个128x1500的图像,我需要分成几块(matlab将其读作1500x128)。但无论列或行如何定向,它都是一个比它高的矩形。我需要弄清楚如何将它分成10个不同的部分(所有相同的高度)。图像是.tiff,所以这样做的在线程序不接受它。我现在正在使用matlab工作,所以如果有一种方法可以做到这一点很棒,但任何方法都可以做到这一点。
答案 0 :(得分: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,因为你指定你想要“相同的高度”。
答案 1 :(得分: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
确定所需的输出尺寸后设置N
并在tif_file_name
中指定文件名。