0

我有一个 128x1500 的图像,我需要将其分成几部分(matlab 将其读取为 1500x128)。但无论列或行的方向如何,它都是一个宽大于高的矩形。我需要弄清楚如何将它分成 10 个左右不同的部分(高度相同)。该图像是 .tiff,因此执行此操作的在线程序不接受它。我现在在 matlab 工作,所以如果有办法在那里做到这一点,那就太好了,但任何做到这一点的方法都会非常有帮助。

4

2 回答 2

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 因为你指定你想要“相同的高度”。

于 2013-07-24T21:42:59.283 回答
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.

于 2013-07-24T22:31:59.983 回答