mat文件是一个156 * 192 * 25的3D矩阵。数据是mat文件中的一系列n = 25图像。我怎么能把这个3D矩阵转换成25个二维矩阵并独立显示它们?感谢〜如何将3D矩阵转换为多个2D矩阵?
0
A
回答
5
我建议不要分裂您的图片的堆栈,而不是简单地使用I(:,:,3)
比如你需要第三图像。
要显示你可以使用图片:
montage(permute(I,[1,2,4,3]))
要显示所有图像一起。因为montage
预计156*192*1*25
用于堆积的灰度图像,所以需要置换,第三个维度用于彩色通道。另外,以显示单独的图像使用:
imshow(I(:,:,3));
每个图像保存到一个单独的文件垫使用:
for ix=1:size(I,3)
M=matfile(sprintf('image%03d',ix),'writable',true);
M.image=I(:,:,ix);
end
1
使用mat2cell
命令,可以将3D值矩阵转换为一个阵列25
单元,其中每个单元保持156x192
2D值矩阵:
M = rand(156,192,25); %// simulate your 3D data matrix
Mcell = mat2cell(M,156,192,ones(1,25));
或者,使用arrayfun
命令:
Mcell = arrayfun(@(x) M(:,:,x), 1:25, 'UniformOutput', false)
您现在可以访问25
图像逐一为:
imageNum = 5; %// example: access image num. 5
image = Mcell{imageNum}; %// image: 156x192 value matrix
将图像保存在单元阵列中的一个好处是,您可以轻松地应用同样的过滤器将所有的图像,利用该cellfun
命令,例如:
h = fspecial('motion', 50, 45);
McellFiltered = cellfun(@(x) imfilter(x, h), Mcell, ...
'UniformOutput', false);
相关问题
- 1. 将3d矩阵重塑为2d矩阵
- 2. 将多类型2D矩阵转换为浮点矩阵?
- 3. 将包含矩阵的单元格转换为2d矩阵
- 4. 使用matlab将3d矩阵转换为4d矩阵
- 5. MATLAB将3D矩阵的高度向量评估为2D矩阵
- 6. 响应矩阵3D转换
- 7. 如何将3x3旋转矩阵转换为4x4矩阵?
- 8. 使用张量流将3D矩阵转换成二维矩阵
- 9. MATLAB:3D矩阵单元阵列转换
- 10. 使用2D矩阵作为numpy 3D矩阵的索引?
- 11. MATLAB:乘法2D矩阵与3D矩阵单元阵列
- 12. 如何将GPU(gpuR)矩阵转换为标准R矩阵?
- 13. 如何将doc-term矩阵转换为term-term矩阵?
- 14. 如何将共生矩阵转换为稀疏矩阵
- 15. 如何在MATLAB中将灰度矩阵转换为RGB矩阵?
- 16. 如何将列矩阵转换为行矩阵在MATLAB
- 17. 节省大量的2D矩阵转换成Python中的3D矩阵
- 18. 将矩阵市场转换为CRS转换(稀疏矩阵)
- 19. 将列转换为矩阵
- 20. 将RleViews转换为矩阵
- 21. 将矩阵转换为1维阵列
- 22. 将阵列数组转换为矩阵
- 23. 如何将矩阵转换为数组?
- 24. 如何将数组转换为矩阵?
- 25. 如何将表格转换为矩阵?
- 26. 如何将列表转换为矩阵?
- 27. 添加二维矩阵转换成3D矩阵
- 28. 在一个矩阵中堆叠子矩阵3d矩阵
- 29. 如何将矩阵转换为3D数组或反之亦然?
- 30. 如何将3D OpenGL矩阵转换为CoreAnimation CATransform3D?
你已经25点二维矩阵!你可以使用'varname(:,:,n)'来调用第n个元素......将其转换为单元阵列等是无用的! – bla
如果其中一个答案解决了您的问题,请点击复选标记考虑[接受它](http://meta.stackexchange.com/q/5234/179419)。这表明你已经找到了解决方案,这不再是一个悬而未决的问题。如果您的问题没有得到解答,请解释缺少的内容。 – Daniel