我想对循环中的图像做一些矩阵运算,我想单独存储每个合成图像矩阵。但是我很困惑,如果它可能在Matlab中声明和使用一个变量作为像C(int array[r][c][n]
)这样的矩阵数组。请指教。矩阵矩阵在Matlab中的数组?
回答
您可以使用3D矩阵来存储多个灰度图像或4D矩阵来存储多个彩色图像。这里有几个例子,假设你在for
循环中做了一些处理。
灰度图像
首先声明一个三维矩阵,其中前两个维度是你正在处理的任何图象的行和列。您需要确保所有的图像共享相同的行和列,因为MATLAB不支持不均匀的多维矩阵。因此,假设我们有N
图像,并且我们有rows
和cols
作为定义的单个图像的行和列。我还会假设您的图片以uint8
格式存储,但它们也可以是double
。因此:
results = uint8(zeros(rows,cols,N)); %// To store the images
%// Or do results = zeros(rows,cols,N); if double type
for idx = 1 : N
%// Read in your image
%//....
%// Process the image
%//....
%// Store the image for further analysis
results(:,:,idx) = ...; %// Place instruction here
end
要访问我个图像,你会简单地做:
im = results(:,:,i);
彩色图像
这是相同的原则,但我们有一个4D矩阵代替。我假设你有一个3通道彩色图像(即RGB)。你只需要将上面的代码扩展到4维。因此:
results = uint8(zeros(rows,cols,3,N)); %// To store the images
%// Or do results = zeros(rows,cols,N); if double type
for idx = 1 : N
%// Read in your image
%//....
%// Process the image
%//....
%// Store the image for further analysis
results(:,:,:,idx) = ...; %// Place instruction here
end
要访问我个图像,你会简单地做:
im = results(:,:,:,i);
大小不均?
如果您有一堆正在处理的图像,并且它们的大小并不相同,则可以使用cell
数组作为选项。你可以将它们看作是可以在每个元素中存储任何你想要的数据类型的容器。因此,我们可以做这样的事情,而不是:
results = cell(1,N); %// To store the images
for idx = 1 : N
%// Read in your image
%//....
%// Process the image
%//....
%// Store the image for further analysis
results{idx} = ...; %// Place instruction here
end
要访问我个图像,你会简单地做:
im = results{i};
注意区别在访问单元阵列相比,一个正常的矩阵。您改用大括号{}
。使用()
设计用于索引单元阵列并执行切片(即访问一大堆单元并将它们复制到新单元阵列中)。如果您想要实际图像本身,请使用{}
。
单元阵列是另一种选择。 – 2014-08-31 04:36:02
@ ParagS.Chandakkar - 我添加了一些关于单元阵列的东西。谢谢 – rayryeng 2014-08-31 04:44:50
- 1. MATLAB - 矩阵组合
- 2. Matlab填充矩阵数组
- 3. 在MATLAB矩阵
- 4. 矩阵在Matlab中
- 5. Matlab - 矩阵阵列
- 6. 从3D矩阵和matlab索引数组中提取2D矩阵
- 7. matlab中的矩阵
- 8. Matlab的变换2D矩阵3D矩阵
- 9. 在matlab中计算涉及矩阵的函数的Hessian矩阵
- 10. matlab中的稀疏矩阵数组
- 11. Matlab - 将矩阵乘以3D矩阵的每个矩阵
- 12. MATLAB从矩阵
- 13. Matlab大矩阵
- 14. Zeropad在matlab中的矩阵
- 15. cellarray在矩阵matlab
- 16. 以矩阵(在Matlab)
- 17. MATLAB - 用子矩阵创建矩阵
- 18. Matlab:重塑矩阵来分隔矩阵
- 19. 矩阵在Matlab中的重组
- 20. 新矩阵中的矩阵与矩阵的所有行组合
- 21. 在Matlab中将双矩阵转换为整数矩阵
- 22. Matlab的:从矩阵
- 23. 在matlab中重塑矩阵
- 24. 在matlab中拼贴矩阵
- 25. 在matlab中递增矩阵
- 26. 在Matlab中绘制矩阵
- 27. 在matlab中更改矩阵
- 28. 在MATLAB中转换矩阵
- 29. 在MATLAB中排序矩阵
- 30. 在Matlab中访问矩阵
当然,这是..你有没有考虑阅读手册,但(没有进攻,真的)? - >搜索“多维数组” – fuesika 2014-08-31 00:38:12