【发布时间】:2017-04-07 16:31:26
【问题描述】:
我有尺寸为 400 x 500 的二维矩阵,每个矩阵都显示一个图像。我的流程包含两个步骤:
1) 我必须对这些图像进行分区(将矩阵拆分为大小相等的子矩阵)
2) 我必须将这些拆分中的每一个保存在一个矩阵中
第一步完成,矩阵尺寸从 2D-->3D 变化(最后一个索引显示分割索引)
现在对于第 2 步,我有 100 张图像,我想要有 4 个维度的矩阵,其中最后一个索引显示图像的数量
示例:用于访问图像 40 的拆分 3:[:,:,3,40]
我已经尝试使用 permut 和 reshape 但没有成功
这是我的代码
nCol = 10;
nRow = 4;
K=dir(p);
Len=length(K);
for i=3:Len
x1=imread(strcat(p,'\',K(i).name));
[m,n,d1]=size(x1);
if d1==1
x=double(x1);
else
x=double(rgb2gray(x1));
end
x=imresize(x,NN);
%% determined width and height of divided matrix %%%%%%%%%%%%%%%%%%%%%%%%%%
m = size(x,1)/nRow;
n = size(x,2)/nCol;
T = permute(reshape(permute(reshape(x, size(x, 1), n, []), [2 1 3]), n, m, []), [2 1 3]);
Im=[Im T(:,:,:,i-2)];
end
任何想法都将不胜感激。
【问题讨论】:
-
如果您在
T中有新图像的3D 矩阵,是否可以通过将最后一行更改为Im(:,:,:,i-2)=T来将其存储在Im中? -
@Wolfie 我试过了,但没有答案!
-
来自 Python,正要告诉你修复缩进 :)
-
@Some Guy 在下面给出了一个很好的答案。了解您打算如何处理处理后的图像以了解输出格式是否重要会很有帮助。