如何将一组图像(512*512
分成四个相等的图像;每个都是256*256
,并重复150
个图像吗?
I = imread(['file',num2str(i),'.tif']);
I1 = I(1:size(I,1)/2,1:size(I,2)/2,:);
I2 = I(size(I,1)/2+1:size(I,1),1:size(I,2)/2,:);
I3 = I(1:size(I,1)/2,size(I,2)/2+1:size(I,2),:);
I4 = I(size(I,1)/2+1:size(I,1),size(I,2)/2+1:size(I,2),:);
答案 0 :(得分:2)
我手边没有matlab,因此可能会有一些错误,但是这个想法会成立:
您必须选择如何存储分割后的图像。例如,您可以使用单元格。我假定您的图像称为file1.tif,file2.tif等。
num_imgs = 150; %The total ammount of images you have
cropped_imgs = cell(1,num_imgs) %create empty 1 by 150 cell
%create a for loop to repeat over all images
for k in 1:num_imgs:
I = imread(['file',num2str(k),'.tif']); %load your image
sz = size(I,1)/2; %get half the size, assuming it's a square image
%split images and pack into 1 by 4 cell
cropped_imgs{k} = {I(1:sz, 1:sz), I(1:sz, sz+1:end), I(sz+1:end, 1:sz), I(sz+1:end, sz+1:end)}
end
现在,您可以通过对第二张图像编号127进行cropped_imgs{127}{2}
之类的操作来访问它们。希望这会有所帮助,但请认真研究一下问题,然后再发布问题。也许更好的存储图像的方法是在150 x 4的单元格中并通过cropped_imgs{127,2}
访问它们,但这取决于您的喜好。
编辑:如果您问如何以不太明确的方式分割图像,则可以尝试将imcrop
与给定的矩形一起使用并移动矩形:
num_imgs = 150; %The total ammount of images you have
cropped_imgs = cell(4,num_imgs) %create empty 4 by 150 cell
%create a for loop to repeat over all images
for k in 1:num_imgs:
I = imread(['file',num2str(k),'.tif']); %load your image
sz = size(I)/2; %get half the size, assuming it's a square image
%split images and pack into 1 by 4 cell
cropped_imgs{k,1} = imcrop(I,[0,0,sz]);
cropped_imgs{k,2} = imcrop(I,[sz(1),0,sz]);
cropped_imgs{k,3} = imcrop(I,[0,sz(1),sz]);
cropped_imgs{k,4} = imcrop(I,[sz,sz]);
end