我将大图像拆分成较小的块,因为在MATLAB中处理图像整体所花费的时间非常多。现在,在我分割图像并完成我需要的处理之后,我需要从这些块重新加入图像。我该怎么做?
这是我分割图像的方式:
k=1;
for i=1:floor(nCol/6):(5*nCol/6)
for j=1:floor(nRow/6):(5*nRow/6)
im{k}=I(i:floor(i+nCol/6),j:floor(j+nRow/6),1:3);
k=k+1;
end
end
for i=1:k-1
part=some_function(im{i});
现在这部分是一个图像本身的数组..即使用
来访问它for i=1:length(part)
figure; imshow(part{1}{i});
基本上这部分包含已经处理的块的部分并且被分成许多部分。所以基本上首先我需要将部分组合成一个图像并将所有部分组合成一个完整的图像。我希望你理解我的意思。
答案 0 :(得分:0)
通常MATLAB中的图像只是矩阵。因此,您可以使用通常的水平和垂直连接命令将它们粘合在一起:
WholeImage = [ NorthWest NorthEast; ...
SouthWest SouthEast ];
假设您的图像被分成四个部分,这会将它们重新组合在一起。
如果您将其分解为可变数量的碎片并将碎片存储在单元格数组中,那么cell2mat
应该有助于将碎片粘合在一起。
答案 1 :(得分:0)
如果您已将图像拆分为通道(例如RGB),则可以使用cat command,如下所示:
img = cat(3,R,G,B);