将图像分割成碎片

时间:2013-07-24 21:24:01

标签: matlab split image-manipulation tiff

我有一个128x1500的图像,我需要分成几块(matlab将其读作1500x128)。但无论列或行如何定向,它都是一个比它高的矩形。我需要弄清楚如何将它分成10个不同的部分(所有相同的高度)。图像是.tiff,所以这样做的在线程序不接受它。我现在正在使用matlab工作,所以如果有一种方法可以做到这一点很棒,但任何方法都可以做到这一点。

2 个答案:

答案 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中指定文件名。