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