如何使用简单的matlab for loop将图像划分为相等大小的块?
作为一个初学者,我尝试了但它显示错误。我使用mat2cell
并使用简单的计算做了同样的事情。
这是我的代码:
[rows, columns, numberOfColorChannels] = size(p);
r4 = int32(rows/4);
c4 = int32(columns/4);
% Extract images.
image1 = p(1:r4, 1:c4);
image2 = p(1:r4, c4+1:2*c4);
image3 = p(1:r4, 2*c4+1:3*c4);
image4 = p(1:r4, 3*c4+1:4*c4);
我只需要使用for循环。
答案 0 :(得分:1)
首先,如果您将x和y分成4个大小相等的部分,您将得到16个较小的图像。你需要理解这第一部分。
[rows, columns, numberOfColorChannels] = size(p);
r4 = int32(rows/4);
c4 = int32(columns/4);
output = zeros(16,r4,c4,numberOfColorChannels);
cnt = 1;
for i=1:4,
for j=1:4,
output(cnt,:,:,:) = p((i-1)*r4+1:i*r4, (j-1)*c4+1:j*c4);
cnt = cnt + 1;
end
end
代码基本上完成了你已经完成的工作,但是在两个方面。